(CommandList
  children: [
    (C {(Lit_Other ":")} {(self)} {(extracting)} {(archive)} {(generator)} {(KW_For for)} {(ratz)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:COMMAND) op:Equal rhs:{(sear)} spids:[72])]
      spids: [72]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:args) op:Equal rhs:{(SQ )} spids:[76])]
      spids: [76]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:cc) op:Equal rhs:{(DQ ("ncc -O -Y-Os"))} spids:[78])]
      spids: [78]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:cmd) op:Equal rhs:{(DQ (dir))} spids:[83])]
      spids: [83]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:dyn) op:Equal rhs:{(-D_DLL)} spids:[88])]
      spids: [88]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ico) op:Equal rhs:{(SQ )} spids:[91])]
      spids: [91]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:opt) op:Equal rhs:{(SQ )} spids:[93])]
      spids: [93]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:out) op:Equal rhs:{(install.exe)} spids:[95])]
      spids: [95]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:src) op:Equal rhs:{(SQ )} spids:[98])]
      spids: [98]
    )
    (Case
      to_match: 
        {
          (CommandSubPart
            command_list: 
              (CommandList
                children: [
                  (Subshell
                    child: 
                      (CommandList
                        children: [
                          (Sentence
                            child: (C {(getopts)} {(SQ <"[-][123:xyz]">)} {(opt)} {(--xyz)})
                            terminator: <Op_Semi ";">
                          )
                          (C {(echo)} {(0) ($ VSub_Name "$opt")})
                        ]
                      )
                    redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[122])]
                    spids: [104 120]
                  )
                ]
              )
            left_token: <Left_Backtick "`">
            spids: [103 124]
          )
        }
      arms: [
        (case_arm
          pat_list: [{(0123)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ARGV0)
                  op: Equal
                  rhs: {(DQ ("-a ") ($ VSub_Name "$COMMAND"))}
                  spids: [131]
                )
              ]
              spids: [131]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:USAGE)
                  op: Equal
                  rhs: 
                    {
                      (SQ <"\n"> <"[-?\n"> <"@(#)$Id: sear (AT&T Labs Research) 2011-03-04 $\n"> <"]\n">) ($ VSub_Name "$USAGE_LICENSE") 
                      (SQ <"\n"> <"[+NAME?sear - generate a win32 ratz self extracting archive]\n"> 
                        <"[+DESCRIPTION?"> <Lit_EscapedChar "\\b"> <sear> <Lit_EscapedChar "\\b"> 
                        <" generates a win32 self extracting archive that\n"> <"    can be used to install win32 files and applications. "> <Lit_EscapedChar "\\b"> <pax> 
                        <Lit_EscapedChar "\\b"> <"(1) is used\n"> <"    to generate a "> <Lit_EscapedChar "\\b"> <tgz> <Lit_EscapedChar "\\b"> <" ("> 
                        <Lit_EscapedChar "\\b"> <tar> <Lit_EscapedChar "\\b"> <"(1) "> <Lit_EscapedChar "\\b"> <gzip> <Lit_EscapedChar "\\b"> 
                        <"(1)) archive from the\n"> <"    "> <Lit_EscapedChar "\\a"> <file> <Lit_EscapedChar "\\a"> 
                        <" operands that is appended to the self extracting archive. If\n"> <"    no "> <Lit_EscapedChar "\\a"> <file> <Lit_EscapedChar "\\a"> 
                        <" operands are specified then the standard input is read.\n"> <"    "> <Lit_EscapedChar "\\b"> <pax> <Lit_EscapedChar "\\b"> <"(1) options (like "> 
                        <Lit_EscapedChar "\\b"> <--verbose> <Lit_EscapedChar "\\b"> <") may be specified after a "> <Lit_EscapedChar "\\b"> <--> 
                        <Lit_EscapedChar "\\b"> <"\n"> <"    operand but before the first "> <Lit_EscapedChar "\\a"> <file> <Lit_EscapedChar "\\a"> 
                        <" operand.]\n"> <"[+?When the self extracting archive is executed it creates a temporary\n"> 
                        <"    directory and unpacks each "> <Lit_EscapedChar "\\a"> <file> <Lit_EscapedChar "\\a"> <". If "> <Lit_EscapedChar "\\b"> <--command> 
                        <Lit_EscapedChar "\\b"> <"="> <Lit_EscapedChar "\\a"> <command> <Lit_EscapedChar "\\a"> <" was\n"> 
                        <"    specified when the archive was generated then "> <Lit_EscapedChar "\\a"> <command> <Lit_EscapedChar "\\a"> <" is executed\n"> <"    by "> 
                        <Lit_EscapedChar "\\b"> <CMD.EXE> <Lit_EscapedChar "\\b"> <". The temporary directory is then removed.]\n"> <"[+?"> 
                        <Lit_EscapedChar "\\b"> <.exe> <Lit_EscapedChar "\\b"> <" files generated by "> <Lit_EscapedChar "\\b"> <sear> 
                        <Lit_EscapedChar "\\b"> <"(1) are fully functional\n"> <"    "> <Lit_EscapedChar "\\b"> <ratz> <Lit_EscapedChar "\\b"> 
                        <"(1) executables, so any "> <Lit_EscapedChar "\\b"> <ratz> <Lit_EscapedChar "\\b"> <" option may be used on a\n"> <"    "> 
                        <Lit_EscapedChar "\\b"> <sear> <Lit_EscapedChar "\\b"> <" file. This allows "> <Lit_EscapedChar "\\b"> <sear> 
                        <Lit_EscapedChar "\\b"> <" file contents to be examined and\n"> 
                        <"    extracted without executing any embedded installation scripts.]\n"> <"[a:args|arguments?The arguments appended to the "> <Lit_EscapedChar "\\b"> <CMD.EXE> 
                        <Lit_EscapedChar "\\b"> <" command\n"> <"    string after the runtime sear operands are appended.]:[args]\n"> 
                        <"[b:bootstrap?Bootstrap-sepcific link.]\n"> <"[c:cc?The C compiler command and flags are set to "> <Lit_EscapedChar "\\a"> <cc> 
                        <Lit_EscapedChar "\\a"> <".]:[cc:=">
                      ) ($ VSub_Name "$cc") 
                      (SQ <"]\n"> <"[i:icon?The resource icon is set to "> <Lit_EscapedChar "\\a"> 
                        <icon> <Lit_EscapedChar "\\a"> <". The default is a 32 or 64\n"> 
                        <"    bit icon.]:[icon:=$INSTALLROOT/lib/sear/sear??.ico]\n"> <"[m:meter?Set the "> <Lit_EscapedChar "\\b"> <ratz> <Lit_EscapedChar "\\b"> <"(1) "> 
                        <Lit_EscapedChar "\\b"> <--meter> <Lit_EscapedChar "\\b"> <" option when the archive is\n"> <"    extracted.]\n"> 
                        <"[o:output?The self extracting file name is "> <Lit_EscapedChar "\\a"> <file> <Lit_EscapedChar "\\a"> <".]:[file:=">
                      ) ($ VSub_Name "$out") 
                      (SQ <"]\n"> <"[r:ratz?The "> <Lit_EscapedChar "\\b"> <ratz> <Lit_EscapedChar "\\b"> 
                        <"(1) source file is set to\n"> <"    "> <Lit_EscapedChar "\\a"> <path> <Lit_EscapedChar "\\a"> 
                        <".]:[path:=$INSTALLROOT/lib/sear/ratz.c]\n"> <"[x:command?The "> <Lit_EscapedChar "\\b"> <CMD.EXE> <Lit_EscapedChar "\\b"> 
                        <" command string to run after the top level\n"> <"    files have been read into the temporary directory.]:[command:=">
                      ) ($ VSub_Name "$cmd") 
                      (SQ <"]\n"> <"[v:verbose?Set the "> <Lit_EscapedChar "\\b"> <ratz> 
                        <Lit_EscapedChar "\\b"> <"(1) "> <Lit_EscapedChar "\\b"> <--verbose> <Lit_EscapedChar "\\b"> <" option when the archive is\n"> 
                        <"    extracted.]\n"> <"\n"> <"[ -- pax-options ] [ file ] ...\n"> <"\n"> <"[+EXIT STATUS?]{\n"> <"\t[+0?Success.]\n"> 
                        <"\t[+>0?An error occurred.]\n"> <"}\n"> <"[+SEE ALSO?"> <Lit_EscapedChar "\\b"> <ratz> <Lit_EscapedChar "\\b"> <"(1), "> 
                        <Lit_EscapedChar "\\b"> <gunzip> <Lit_EscapedChar "\\b"> <"(1), "> <Lit_EscapedChar "\\b"> <pax> <Lit_EscapedChar "\\b"> <"(1), "> 
                        <Lit_EscapedChar "\\b"> <CMD.EXE> <Lit_EscapedChar "\\b"> <"(m$)]\n">
                      )
                    }
                  spids: [138]
                )
              ]
              spids: [138]
            )
          ]
          spids: [128 129 350 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ARGV0) op:Equal rhs:{(DQ )} spids:[355])]
              spids: [355]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:USAGE)
                  op: Equal
                  rhs: {(DQ ("c:[command]i:[icon]o:[output]r:[ratz-src] [ file ] ..."))}
                  spids: [360]
                )
              ]
              spids: [360]
            )
          ]
          spids: [352 353 366 -1]
        )
      ]
      spids: [101 126 368]
    )
    (FuncDef
      name: usage
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:OPTIND) op:Equal rhs:{(0)} spids:[378])]
              spids: [378]
            )
            (C {(getopts)} {($ VSub_Name "$ARGV0")} {(DQ ($ VSub_Name "$USAGE"))} {(OPT)} {(SQ <"-?">)})
            (C {(exit)} {(2)})
          ]
          spids: [375]
        )
      spids: [371 374]
    )
    (While
      cond: [(C {(getopts)} {($ VSub_Name "$ARGV0")} {(DQ ($ VSub_Name "$USAGE"))} {(OPT)})]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Name "$OPT")}
              arms: [
                (case_arm
                  pat_list: [{(a)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:args)
                          op: Equal
                          rhs: 
                            {(-D_SEAR_ARGS) (Lit_Other "=") 
                              (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                                ($ VSub_Name "$OPTARG") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                              )
                            }
                          spids: [428]
                        )
                      ]
                      spids: [428]
                    )
                  ]
                  spids: [425 426 438 -1]
                )
                (case_arm
                  pat_list: [{(b)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:dyn) op:Equal rhs:{(SQ )} spids:[444])]
                      spids: [444]
                    )
                  ]
                  spids: [441 442 447 -1]
                )
                (case_arm
                  pat_list: [{(c)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cc)
                          op: Equal
                          rhs: {($ VSub_Name "$OPTARG")}
                          spids: [453]
                        )
                      ]
                      spids: [453]
                    )
                  ]
                  spids: [450 451 457 -1]
                )
                (case_arm
                  pat_list: [{(i)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ico)
                          op: Equal
                          rhs: {($ VSub_Name "$OPTARG")}
                          spids: [463]
                        )
                      ]
                      spids: [463]
                    )
                  ]
                  spids: [460 461 467 -1]
                )
                (case_arm
                  pat_list: [{(m)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:opt)
                          op: Equal
                          rhs: {(${ VSub_Name opt) (m)}
                          spids: [473]
                        )
                      ]
                      spids: [473]
                    )
                  ]
                  spids: [470 471 480 -1]
                )
                (case_arm
                  pat_list: [{(o)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:out)
                          op: Equal
                          rhs: {($ VSub_Name "$OPTARG")}
                          spids: [486]
                        )
                      ]
                      spids: [486]
                    )
                    (AndOr
                      children: [
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobNEqual
                              left: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name out>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VOp1_DPound
                                        arg_word: {("*") (Lit_Slash /)}
                                      )
                                    spids: [492 497]
                                  )
                                }
                              right: {(Lit_Other "*") (.) (Lit_Other "?") (Lit_Other "*")}
                            )
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:out)
                              op: Equal
                              rhs: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name out>
                                    suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(.)})
                                    spids: [511 515]
                                  ) (.exe)
                                }
                              spids: [510]
                            )
                          ]
                          spids: [510]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  spids: [483 484 519 -1]
                )
                (case_arm
                  pat_list: [{(r)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:src)
                          op: Equal
                          rhs: {($ VSub_Name "$OPTARG")}
                          spids: [525]
                        )
                      ]
                      spids: [525]
                    )
                  ]
                  spids: [522 523 529 -1]
                )
                (case_arm
                  pat_list: [{(x)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cmd)
                          op: Equal
                          rhs: {($ VSub_Name "$OPTARG")}
                          spids: [535]
                        )
                      ]
                      spids: [535]
                    )
                  ]
                  spids: [532 533 539 -1]
                )
                (case_arm
                  pat_list: [{(v)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:opt)
                          op: Equal
                          rhs: {(${ VSub_Name opt) (v)}
                          spids: [545]
                        )
                      ]
                      spids: [545]
                    )
                  ]
                  spids: [542 543 552 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [(C {(usage)})]
                  spids: [555 556 561 -1]
                )
              ]
              spids: [418 422 564]
            )
          ]
          spids: [416 566]
        )
    )
    (C {(shift)} 
      {
        (ArithSubPart
          anode: 
            (ArithBinary
              op_id: Arith_Minus
              left: (ArithVarRef name:OPTIND)
              right: (ArithWord w:{(Lit_Digits 1)})
            )
          spids: [570 575]
        )
      }
    )
    (If
      arms: [
        (if_arm
          cond: [(DBracket expr:(LogicalNot child:(WordTest w:{($ VSub_Name "$src")})))]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:f) op:Equal rhs:{(ratz.c)} spids:[590])]
              spids: [590]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:src)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(dirname)} {(-r)} 
                                {(lib/) ($ VSub_Name "$COMMAND") (/) ($ VSub_Name "$f")}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [595 604]
                      )
                    }
                  spids: [594]
                )
              ]
              spids: [594]
            )
            (If
              arms: [
                (if_arm
                  cond: [(DBracket expr:(LogicalNot child:(WordTest w:{($ VSub_Name "$src")})))]
                  action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ($ VSub_Name "$COMMAND") (": ") ($ VSub_Name "$f") 
                            (": cannot locate ratz source")
                          )
                        }
                      ]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[629])]
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [-1 618]
                )
              ]
              spids: [-1 638]
            )
          ]
          spids: [-1 588]
        )
        (if_arm
          cond: [
            (DBracket
              expr: (LogicalNot child:(BoolUnary op_id:BoolUnary_f child:{($ VSub_Name "$src")}))
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ($ VSub_Name "$COMMAND") (": ") ($ VSub_Name "$src") (": cannot read ratz source"))
                }
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[663])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [640 652]
        )
      ]
      spids: [-1 671]
    )
    (If
      arms: [
        (if_arm
          cond: [(DBracket expr:(LogicalNot child:(WordTest w:{($ VSub_Name "$ico")})))]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:w)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [{(uname)} {(-i)}]
                                redirects: [
                                  (Redir
                                    op_id: Redir_Great
                                    fd: 2
                                    arg_word: {(/dev/null)}
                                    spids: [691]
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [686 693]
                      )
                    }
                  spids: [685]
                )
              ]
              spids: [685]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:w)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name w>
                        suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ("*")})
                        spids: [697 702]
                      )
                    }
                  spids: [696]
                )
              ]
              spids: [696]
            )
            (AndOr
              children: [
                (DBracket
                  expr: 
                    (LogicalOr
                      left: 
                        (BoolBinary
                          op_id: BoolBinary_GlobDEqual
                          left: {($ VSub_Name "$w")}
                          right: {(32)}
                        )
                      right: 
                        (BoolBinary
                          op_id: BoolBinary_GlobDEqual
                          left: {($ VSub_Name "$w")}
                          right: {(64)}
                        )
                    )
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:w) op:Equal rhs:{(SQ )} spids:[725])]
                  spids: [725]
                )
              ]
              op_id: Op_DPipe
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:f)
                  op: Equal
                  rhs: {(sear) ($ VSub_Name "$w") (.ico)}
                  spids: [728]
                )
              ]
              spids: [728]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ico)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(dirname)} {(-r)} 
                                {(lib/) ($ VSub_Name "$COMMAND") (/) ($ VSub_Name "$f")}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [735 744]
                      )
                    }
                  spids: [734]
                )
              ]
              spids: [734]
            )
            (If
              arms: [
                (if_arm
                  cond: [(DBracket expr:(LogicalNot child:(WordTest w:{($ VSub_Name "$ico")})))]
                  action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ($ VSub_Name "$COMMAND") (": ") ($ VSub_Name "$f") 
                            (": cannot locate icon source")
                          )
                        }
                      ]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[769])]
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [-1 758]
                )
              ]
              spids: [-1 778]
            )
          ]
          spids: [-1 683]
        )
        (if_arm
          cond: [
            (DBracket
              expr: (LogicalNot child:(BoolUnary op_id:BoolUnary_f child:{($ VSub_Name "$ico")}))
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {(DQ ($ VSub_Name "$COMMAND") (": ") ($ VSub_Name "$ico") (": cannot read icon"))}
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[803])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [780 792]
        )
      ]
      spids: [-1 811]
    )
    (AndOr
      children: [
        (DBracket expr:(WordTest w:{($ VSub_Name "$opt")}))
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:cc)
              op: Equal
              rhs: 
                {
                  (DQ ($ VSub_Name "$cc") (" -D_SEAR_OPTS=") 
                    (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (-) ($ VSub_Name "$opt") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                  )
                }
              spids: [821]
            )
          ]
          spids: [821]
        )
      ]
      op_id: Op_DAmp
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:cc)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$cc") (" ") ($ VSub_Name "$dyn"))}
          spids: [831]
        )
      ]
      spids: [831]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:tmp)
          op: Equal
          rhs: {(/tmp/sear) ($ VSub_Dollar "$$")}
          spids: [839]
        )
      ]
      spids: [839]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:obj)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name src>
                suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{("*") (Lit_Slash /)})
                spids: [844 849]
              )
            }
          spids: [843]
        )
      ]
      spids: [843]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:obj)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name obj>
                suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(".*")})
                spids: [852 856]
              ) (.o)
            }
          spids: [851]
        )
      ]
      spids: [851]
    )
    (C {(trap)} {(SQ <"rm -f \"$obj\" $tmp.*">)} {(0)} {(1)} {(2)} {(3)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:res)
          op: Equal
          rhs: {($ VSub_Name "$tmp") (.res)}
          spids: [873]
        )
      ]
      spids: [873]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:libs) op:Equal rhs:{(-ladvapi32)} spids:[877])]
      spids: [877]
    )
    (C {(typeset)} {(-H)} {(Lit_VarLike "host_ico=") ($ VSub_Name "$ico")} 
      {(Lit_VarLike "host_rc=") ($ VSub_Name "$tmp") (.rc)} {(Lit_VarLike "host_res=") ($ VSub_Name "$tmp") (.res)}
    )
    (SimpleCommand
      words: [
        {(print)}
        {(-r)}
        {
          (DQ ("sear ICON ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
            (BracedVarSub
              token: <VSub_Name host_ico>
              suffix_op: 
                (PatSub
                  pat: {(EscapedLiteralPart token:<Lit_EscapedChar "\\\\">)}
                  replace: 
                    {(EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) 
                      (EscapedLiteralPart token:<Lit_EscapedChar "\\\\">)
                    }
                  do_all: True
                  do_prefix: False
                  do_suffix: False
                )
              spids: [902 910]
            ) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
          )
        }
      ]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{($ VSub_Name "$tmp") (.rc)} spids:[914])]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Pipeline
              children: [
                (C {(rc)} {(-x)} {(-r)} {(-fo) (DQ ($ VSub_Name "$host_res"))} 
                  {(DQ ($ VSub_Name "$host_rc"))}
                )
              ]
              negated: True
            )
          ]
          action: [(C {(exit)} {(1)})]
          spids: [-1 938]
        )
      ]
      spids: [-1 944]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (AndOr
              children: [
                (Pipeline
                  children: [
                    (C {($ VSub_Name "$cc")} {(-D_SEAR_SEEK) (Lit_Other "=") (0)} 
                      {(-D_SEAR_EXEC) (Lit_Other "=") 
                        (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Name "$cmd") 
                          (EscapedLiteralPart
                            token: <Lit_EscapedChar "\\\"">
                          )
                        )
                      } {(DQ ($ VSub_Name "$args"))} {(-c)} {(DQ ($ VSub_Name "$src"))}
                    )
                  ]
                  negated: True
                )
                (Pipeline
                  children: [
                    (C 
                      {
                        (BracedVarSub
                          token: <VSub_Name cc>
                          suffix_op: 
                            (PatSub
                              pat: {(-Bstatic)}
                              replace: {}
                              do_all: False
                              do_prefix: False
                              do_suffix: False
                            )
                          spids: [979 984]
                        )
                      } {(--mt-output) (Lit_Other "=") (DQ ($ VSub_Name "$out") (.manifest))} 
                      {(--mt-name) (Lit_Other "=") 
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name out>
                            suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(".*")})
                            spids: [996 1000]
                          )
                        )
                      } {(--mt-administrator)} {(-o)} {(DQ ($ VSub_Name "$out"))} {(DQ ($ VSub_Name "$obj"))} 
                      {(DQ ($ VSub_Name "$res"))} {($ VSub_Name "$libs")}
                    )
                  ]
                  negated: True
                )
              ]
              op_id: Op_DPipe
            )
          ]
          action: [(C {(exit)} {(1)})]
          spids: [-1 1021]
        )
      ]
      spids: [-1 1027]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (DBracket
              expr: (BoolUnary op_id:BoolUnary_f child:{(DQ ($ VSub_Name "$out") (.manifest))})
            )
          ]
          action: [
            (C {(mv)} {(DQ ($ VSub_Name "$out") (.manifest))} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name out>
                    suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(".*")})
                    spids: [1052 1056]
                  ) (.manifest)
                )
              }
            )
            (SimpleCommand
              words: [
                {(ed)}
                {(-)}
                {
                  (DQ 
                    (BracedVarSub
                      token: <VSub_Name out>
                      suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(".*")})
                      spids: [1066 1070]
                    ) (.manifest)
                  )
                }
              ]
              redirects: [
                (HereDoc
                  op_id: Redir_DLessDash
                  fd: -1
                  body: {("/<dependency>/,/<\\/dependency>/d\n") ("w\n") ("q\n")}
                  do_expansion: False
                  here_end: "!"
                  was_filled: True
                  spids: [1074]
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Pipeline
                      children: [
                        (C {($ VSub_Name "$cc")} 
                          {(--mt-input) (Lit_Other "=") 
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name out>
                                suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(".*")})
                                spids: [1089 1093]
                              ) (.manifest)
                            )
                          } {(-o)} {(DQ ($ VSub_Name "$out"))} {(DQ ($ VSub_Name "$obj"))} {(DQ ($ VSub_Name "$res"))} 
                          {($ VSub_Name "$libs")}
                        )
                      ]
                      negated: True
                    )
                  ]
                  action: [(C {(exit)} {(1)})]
                  spids: [-1 1114]
                )
              ]
              spids: [-1 1121]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:mt)
                  op: Equal
                  rhs: 
                    {
                      (DQ ("--mt-input=") 
                        (BracedVarSub
                          token: <VSub_Name out>
                          suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(".*")})
                          spids: [1127 1131]
                        ) (".manifest --mt-delete")
                      )
                    }
                  spids: [1124]
                )
              ]
              spids: [1124]
            )
          ]
          spids: [-1 1042]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:mt) op:Equal rhs:{(SQ )} spids:[1137])]
          spids: [1137]
        )
      ]
      spids: [1135 1139]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:size)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (SimpleCommand
                        words: [{(wc)} {(-c)}]
                        redirects: [
                          (Redir
                            op_id: Redir_Less
                            fd: -1
                            arg_word: {(DQ ($ VSub_Name "$out"))}
                            spids: [1147]
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [1142 1152]
              )
            }
          spids: [1141]
        )
      ]
      spids: [1141]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (AndOr
              children: [
                (Pipeline
                  children: [
                    (C {($ VSub_Name "$cc")} 
                      {(-D_SEAR_SEEK) (Lit_Other "=") 
                        (ArithSubPart
                          anode: (ArithWord w:{($ VSub_Name "$size")})
                          spids: [1162 1165]
                        )
                      } 
                      {(-D_SEAR_EXEC) (Lit_Other "=") 
                        (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Name "$cmd") 
                          (EscapedLiteralPart
                            token: <Lit_EscapedChar "\\\"">
                          )
                        )
                      } {(DQ ($ VSub_Name "$args"))} {(-c)} {(DQ ($ VSub_Name "$src"))}
                    )
                  ]
                  negated: True
                )
                (Pipeline
                  children: [
                    (C {($ VSub_Name "$cc")} {($ VSub_Name "$mt")} {(-o)} {(DQ ($ VSub_Name "$out"))} 
                      {(DQ ($ VSub_Name "$obj"))} {(DQ ($ VSub_Name "$res"))} {($ VSub_Name "$libs")}
                    )
                  ]
                  negated: True
                )
              ]
              op_id: Op_DPipe
            )
          ]
          action: [(C {(exit)} {(1)})]
          spids: [-1 1210]
        )
      ]
      spids: [-1 1216]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (DBracket
              expr: (BoolUnary op_id:BoolUnary_f child:{(DQ ($ VSub_Name "$out") (.manifest))})
            )
          ]
          action: [(C {(rm)} {(-f)} {(DQ ($ VSub_Name "$out") (.manifest))})]
          spids: [-1 1231]
        )
      ]
      spids: [-1 1242]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:files) op:Equal rhs:{(0)} spids:[1244])]
      spids: [1244]
    )
    (SimpleCommand
      words: [{(pax)} {(-x)} {(tgz)} {(-w)} {(DQ ($ VSub_At "$@"))}]
      redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(DQ ($ VSub_Name "$out"))} spids:[1259])]
    )
  ]
)