(CommandList
  children: [
    (C {(set)} {(-e)})
    (FuncDef
      name: usage
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ("Usage:\n") ($ VSub_Number "$0") 
                        (" [-o <file>] [-u <uid>] [-g <gid>] {-d | <cpio_source>} ...\n") ("\t-o <file>      Create compressed initramfs file named <file> using\n") 
                        ("\t\t       gen_init_cpio and compressor depending on the extension\n") ("\t-u <uid>       User ID to map to user ID 0 (root).\n") 
                        ("\t\t       <uid> is only meaningful if <cpio_source> is a\n") ("\t\t       directory.  ") (Right_DoubleQuote "\"") (squash) (Right_DoubleQuote "\"") 
                        (" forces all files to uid 0.\n") ("\t-g <gid>       Group ID to map to group ID 0 (root).\n") 
                        ("\t\t       <gid> is only meaningful if <cpio_source> is a\n") ("\t\t       directory.  ") (Right_DoubleQuote "\"") (squash) (Right_DoubleQuote "\"") 
                        (" forces all files to gid 0.\n") ("\t<cpio_source>  File list or directory for cpio archive.\n") 
                        ("\t\t       If <cpio_source> is a .cpio file it will be used\n") ("\t\t       as direct input to initramfs.\n") ("\t-d             Output the default cpio list.\n") 
                        ("\n") ("All options except -o and -l may be repeated and are interpreted\n") 
                        ("sequentially and immediately.  -u and -g states are preserved across\n") ("<cpio_source> options so an explicit ") (Right_DoubleQuote "\"") ("-u 0 -g 0") 
                        (Right_DoubleQuote "\"") (" is required\n") ("to reset the root/group mapping.\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [47]
                )
              ]
            )
          ]
          spids: [43]
        )
      spids: [39 42]
    )
    (FuncDef
      name: field
      body: 
        (BraceGroup
          children: [
            (Sentence child:(C {(shift)} {($ VSub_Number "$1")}) terminator:<Op_Semi ";">)
            (C {(echo)} {($ VSub_Number "$1")})
          ]
          spids: [96]
        )
      spids: [92 95]
    )
    (FuncDef
      name: list_default_initramfs
      body: (BraceGroup children:[(C {(Lit_Other ":")})] spids:[116])
      spids: [112 115]
    )
    (FuncDef
      name: default_initramfs
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLessDash
                  fd: -1
                  body: 
                    {
                      (DQ ("# This is a very simple, default initramfs\n") ("\n") 
                        ("dir /dev 0755 0 0\n") ("nod /dev/console 0600 0 0 c 5 1\n") ("dir /root 0700 0 0\n") 
                        ("# file /kinit usr/kinit/kinit 0755 0 0\n") ("# slink /init kinit 0755 0 0\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [137]
                )
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {(${ VSub_Name output)}
                  spids: [140]
                )
              ]
            )
          ]
          spids: [132]
        )
      spids: [128 131]
    )
    (FuncDef
      name: filetype
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:argv1)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [165]
                )
              ]
              spids: [163]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other "[")} {(-L)} {(DQ (${ VSub_Name argv1))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(echo)} {(DQ (slink))})]
                  spids: [-1 191]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other "[")} {(-f)} {(DQ (${ VSub_Name argv1))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(echo)} {(DQ (file))})]
                  spids: [201 216]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other "[")} {(-d)} {(DQ (${ VSub_Name argv1))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(echo)} {(DQ (dir))})]
                  spids: [226 241]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-b)} {(DQ (${ VSub_Name argv1))} {(-o)} {(-c)} 
                          {(DQ (${ VSub_Name argv1))} {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(echo)} {(DQ (nod))})]
                  spids: [251 276]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other "[")} {(-p)} {(DQ (${ VSub_Name argv1))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(echo)} {(DQ (pipe))})]
                  spids: [286 301]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other "[")} {(-S)} {(DQ (${ VSub_Name argv1))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(echo)} {(DQ (sock))})]
                  spids: [311 326]
                )
              ]
              else_action: [(C {(echo)} {(DQ (invalid))})]
              spids: [336 346]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [160]
        )
      spids: [156 159]
    )
    (FuncDef
      name: list_print_mtime
      body: (BraceGroup children:[(C {(Lit_Other ":")})] spids:[360])
      spids: [356 359]
    )
    (FuncDef
      name: print_mtime
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:my_mtime) op:Equal rhs:{(DQ (0))} spids:[377])]
              spids: [375]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other "[")} {(-e)} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:my_mtime)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(find)} {(DQ ($ VSub_Number "$1"))} {(-printf)} 
                                            {
                                              (DQ ("%T@") 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar "\\n">
                                                )
                                              )
                                            }
                                          )
                                          (C {(sort)} {(-r)})
                                          (C {(head)} {(-n)} {(1)})
                                        ]
                                        negated: False
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub "$(">
                                spids: [401 428]
                              )
                            }
                          spids: [400]
                        )
                      ]
                      spids: [400]
                    )
                  ]
                  spids: [-1 397]
                )
              ]
              spids: [-1 431]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ("# Last modified: ") (${ VSub_Name my_mtime))}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {(${ VSub_Name output)}
                  spids: [444]
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ )}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {(${ VSub_Name output)}
                  spids: [456]
                )
              ]
            )
          ]
          spids: [372]
        )
      spids: [368 371]
    )
    (FuncDef
      name: list_parse
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(KW_Bang "!")} {(-L)} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "]")})
                (AndOr
                  children: [
                    (C {(echo)} 
                      {
                        (DQ ($ VSub_Number "$1") (" ") 
                          (EscapedLiteralPart
                            token: <Lit_EscapedChar "\\\\">
                          )
                        )
                      }
                    )
                    (C {(Lit_Other ":")})
                  ]
                  op_id: Op_DPipe
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [469]
        )
      spids: [465 468]
    )
    (FuncDef
      name: parse
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:location)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [519]
                )
              ]
              spids: [517]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: 
                    {
                      (DQ (/) 
                        (BracedVarSub
                          token: <VSub_Name location>
                          suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(${ VSub_Name srcdir)})
                          spids: [530 536]
                        )
                      )
                    }
                  spids: [527]
                )
              ]
              spids: [525]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(DQ ($ VSub_Name "$name"))})
                                  (C {(sed)} {(-e)} {(SQ <"s://*:/:g">)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [545 561]
                      )
                    }
                  spids: [544]
                )
              ]
              spids: [544]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:mode)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$2"))}
                  spids: [566]
                )
              ]
              spids: [564]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:uid)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$3"))}
                  spids: [574]
                )
              ]
              spids: [572]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:gid)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$4"))}
                  spids: [582]
                )
              ]
              spids: [580]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ftype)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(filetype)} {(DQ (${ VSub_Name location))})]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [591 599]
                      )
                    }
                  spids: [590]
                )
              ]
              spids: [588]
            )
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$root_uid"))} {(Lit_Other "=")} {(DQ (squash))} 
                  {(Lit_Other "]")}
                )
                (AndOr
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:uid) op:Equal rhs:{(0)} spids:[622])]
                      spids: [622]
                    )
                    (AndOr
                      children: [
                        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$uid"))} {(-eq)} 
                          {(DQ ($ VSub_Name "$root_uid"))} {(Lit_Other "]")}
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [(assign_pair lhs:(LhsName name:uid) op:Equal rhs:{(0)} spids:[643])]
                          spids: [643]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DPipe
                )
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$root_gid"))} {(Lit_Other "=")} {(DQ (squash))} 
                  {(Lit_Other "]")}
                )
                (AndOr
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:gid) op:Equal rhs:{(0)} spids:[663])]
                      spids: [663]
                    )
                    (AndOr
                      children: [
                        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$gid"))} {(-eq)} 
                          {(DQ ($ VSub_Name "$root_gid"))} {(Lit_Other "]")}
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [(assign_pair lhs:(LhsName name:gid) op:Equal rhs:{(0)} spids:[684])]
                          spids: [684]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DPipe
                )
              ]
              op_id: Op_DAmp
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:str)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name mode) (" ") (${ VSub_Name uid) (" ") (${ VSub_Name gid))}
                  spids: [690]
                )
              ]
              spids: [688]
            )
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(DQ (${ VSub_Name ftype))} {(Lit_Other "=")} {(DQ (invalid))} 
                  {(Lit_Other "]")}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(DQ (${ VSub_Name location))} {(Lit_Other "=")} 
                  {(DQ (${ VSub_Name srcdir))} {(Lit_Other "]")}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
              ]
              op_id: Op_DAmp
            )
            (Case
              to_match: {(DQ (${ VSub_Name ftype))}
              arms: [
                (case_arm
                  pat_list: [{(DQ (file))}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:str)
                          op: Equal
                          rhs: 
                            {
                              (DQ (${ VSub_Name ftype) (" ") (${ VSub_Name name) (" ") 
                                (${ VSub_Name location) (" ") (${ VSub_Name str)
                              )
                            }
                          spids: [773]
                        )
                      ]
                      spids: [773]
                    )
                  ]
                  spids: [768 770 793 -1]
                )
                (case_arm
                  pat_list: [{(DQ (nod))}]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:dev)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (SimpleCommand
                                        words: [{(ls)} {(-l)} {(DQ (${ VSub_Name location))}]
                                        more_env: [(env_pair name:LC_ALL val:{(C)} spids:[806])]
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick "`">
                                spids: [805 818]
                              )
                            }
                          spids: [804]
                        )
                      ]
                      spids: [802]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:maj)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(field)} {(5)} {(${ VSub_Name dev)})]
                                  )
                                left_token: <Left_Backtick "`">
                                spids: [824 832]
                              )
                            }
                          spids: [823]
                        )
                      ]
                      spids: [821]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:min)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(field)} {(6)} {(${ VSub_Name dev)})]
                                  )
                                left_token: <Left_Backtick "`">
                                spids: [838 846]
                              )
                            }
                          spids: [837]
                        )
                      ]
                      spids: [835]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:maj)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name maj>
                                suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(",")})
                                spids: [850 854]
                              )
                            }
                          spids: [849]
                        )
                      ]
                      spids: [849]
                    )
                    (AndOr
                      children: [
                        (C {(Lit_Other "[")} {(-b)} {(DQ (${ VSub_Name location))} {(Lit_Other "]")})
                        (AndOr
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dev)
                                  op: Equal
                                  rhs: {(DQ (b))}
                                  spids: [872]
                                )
                              ]
                              spids: [872]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dev)
                                  op: Equal
                                  rhs: {(DQ (c))}
                                  spids: [879]
                                )
                              ]
                              spids: [879]
                            )
                          ]
                          op_id: Op_DPipe
                        )
                      ]
                      op_id: Op_DAmp
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:str)
                          op: Equal
                          rhs: 
                            {
                              (DQ (${ VSub_Name ftype) (" ") (${ VSub_Name name) (" ") (${ VSub_Name str) 
                                (" ") (${ VSub_Name dev) (" ") (${ VSub_Name maj) (" ") (${ VSub_Name min)
                              )
                            }
                          spids: [886]
                        )
                      ]
                      spids: [886]
                    )
                  ]
                  spids: [797 799 914 -1]
                )
                (case_arm
                  pat_list: [{(DQ (slink))}]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:target)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(readlink)} {(DQ (${ VSub_Name location))})]
                                  )
                                left_token: <Left_Backtick "`">
                                spids: [926 934]
                              )
                            }
                          spids: [925]
                        )
                      ]
                      spids: [923]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:str)
                          op: Equal
                          rhs: 
                            {
                              (DQ (${ VSub_Name ftype) (" ") (${ VSub_Name name) (" ") 
                                (${ VSub_Name target) (" ") (${ VSub_Name str)
                              )
                            }
                          spids: [937]
                        )
                      ]
                      spids: [937]
                    )
                  ]
                  spids: [918 920 957 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:str)
                          op: Equal
                          rhs: 
                            {
                              (DQ (${ VSub_Name ftype) (" ") (${ VSub_Name name) (" ") (${ VSub_Name str))
                            }
                          spids: [964]
                        )
                      ]
                      spids: [964]
                    )
                  ]
                  spids: [960 961 980 -1]
                )
              ]
              spids: [756 764 983]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ (${ VSub_Name str))}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {(${ VSub_Name output)}
                  spids: [995]
                )
              ]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [514]
        )
      spids: [510 513]
    )
    (FuncDef
      name: unknown_option
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [
                {(printf)}
                {
                  (DQ ("ERROR: unknown option ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                    ($ VSub_Name "$arg") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (EscapedLiteralPart token:<Lit_EscapedChar "\\n">)
                  )
                }
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1027])]
            )
            (SimpleCommand
              words: [{(printf)} {(DQ ("If the filename validly begins with '-', "))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1037])]
            )
            (SimpleCommand
              words: [
                {(printf)}
                {(DQ ("then it must be prefixed") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))}
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1048])]
            )
            (SimpleCommand
              words: [{(printf)} {(DQ ("by './' so that it won't be interpreted as an option."))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1058])]
            )
            (SimpleCommand
              words: [{(printf)} {(DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1068])]
            )
            (SimpleCommand
              words: [{(usage)}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1074])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [1014]
        )
      spids: [1010 1013]
    )
    (FuncDef
      name: list_header
      body: (BraceGroup children:[(C {(Lit_Other ":")})] spids:[1089])
      spids: [1085 1088]
    )
    (FuncDef
      name: header
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [
                {(printf)}
                {
                  (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ("#####################") 
                    (EscapedLiteralPart token:<Lit_EscapedChar "\\n">) ("# ") ($ VSub_Number "$1") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">)
                  )
                }
              ]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {(${ VSub_Name output)}
                  spids: [1115]
                )
              ]
            )
          ]
          spids: [1101]
        )
      spids: [1097 1100]
    )
    (FuncDef
      name: dir_filelist
      body: 
        (BraceGroup
          children: [
            (C {(${ VSub_Name dep_list) (header)} {(DQ ($ VSub_Number "$1"))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:srcdir)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(DQ ($ VSub_Number "$1"))})
                                  (C {(sed)} {(-e)} {(SQ <"s://*:/:g">)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [1146 1162]
                      )
                    }
                  spids: [1145]
                )
              ]
              spids: [1145]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dirlist)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(find)} {(DQ (${ VSub_Name srcdir))} {(-printf)} 
                                {
                                  (DQ ("%p %m %U %G") 
                                    (EscapedLiteralPart
                                      token: <Lit_EscapedChar "\\n">
                                    )
                                  )
                                }
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [1166 1181]
                      )
                    }
                  spids: [1165]
                )
              ]
              spids: [1165]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} 
                          {
                            (DQ 
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} {(DQ (${ VSub_Name dirlist))})
                                          (C {(wc)} {(-l)})
                                        ]
                                        negated: False
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub "$(">
                                spids: [1194 1208]
                              )
                            )
                          } {(-gt)} {(1)} {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(${ VSub_Name dep_list) (print_mtime)} {(DQ ($ VSub_Number "$1"))})
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name dirlist))})
                        (While
                          cond: [(Sentence child:(C {(read)} {(x)}) terminator:<Op_Semi ";">)]
                          body: 
                            (DoGroup
                              children: [(C {(${ VSub_Name dep_list) (parse)} {(${ VSub_Name x)})]
                              spids: [1251 1264]
                            )
                        )
                      ]
                      negated: False
                    )
                  ]
                  spids: [-1 1218]
                )
              ]
              spids: [-1 1267]
            )
          ]
          spids: [1131]
        )
      spids: [1127 1130]
    )
    (FuncDef
      name: input_file
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:source)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [1288]
                )
              ]
              spids: [1288]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other "[")} {(-f)} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(${ VSub_Name dep_list) (header)} {(DQ ($ VSub_Number "$1"))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:is_cpio)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Number "$1"))})
                                            (C {(sed)} {(SQ <"s/^.*\\.cpio\\(\\..*\\)\\?/cpio/">)})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [1322 1336]
                                )
                              )
                            }
                          spids: [1320]
                        )
                      ]
                      spids: [1320]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other "[")} {($ VSub_Number "$2")} {(-eq)} {(0)} {(-a)} 
                                  {(${ VSub_Name is_cpio)} {(Lit_Other "=")} {(DQ (cpio))} {(Lit_Other "]")}
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:cpio_file)
                                  op: Equal
                                  rhs: {($ VSub_Number "$1")}
                                  spids: [1368]
                                )
                              ]
                              spids: [1368]
                            )
                            (AndOr
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Number "$1"))})
                                    (C {(grep)} {(-q)} {(SQ <"^.*\\.cpio\\..*">)})
                                  ]
                                  negated: False
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:is_cpio_compressed)
                                      op: Equal
                                      rhs: {(DQ (compressed))}
                                      spids: [1390]
                                    )
                                  ]
                                  spids: [1390]
                                )
                              ]
                              op_id: Op_DAmp
                            )
                            (AndOr
                              children: [
                                (C {(Lit_Other "[")} {(KW_Bang "!")} {(-z)} {(${ VSub_Name dep_list)} 
                                  {(Lit_Other "]")}
                                )
                                (C {(echo)} {(DQ ($ VSub_Number "$1"))})
                              ]
                              op_id: Op_DAmp
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(0)}
                            )
                          ]
                          spids: [-1 1365]
                        )
                      ]
                      spids: [-1 1422]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other "[")} {(-z)} {(${ VSub_Name dep_list)} {(Lit_Other "]")})
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (SimpleCommand
                              words: [{(print_mtime)} {(DQ ($ VSub_Number "$1"))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: -1
                                  arg_word: {(${ VSub_Name output)}
                                  spids: [1447]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(cat)} {(DQ ($ VSub_Number "$1"))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: -1
                                  arg_word: {(${ VSub_Name output)}
                                  spids: [1460]
                                )
                              ]
                            )
                          ]
                          spids: [-1 1438]
                        )
                      ]
                      else_action: [
                        (C {(echo)} 
                          {
                            (DQ ($ VSub_Number "$1") (" ") 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar "\\\\">
                              )
                            )
                          }
                        )
                        (Pipeline
                          children: [
                            (C {(cat)} {(DQ ($ VSub_Number "$1"))})
                            (While
                              cond: [
                                (Sentence
                                  child: (C {(read)} {(type)} {(dir)} {(file)} {(perm)})
                                  terminator: <Op_Semi ";">
                                )
                              ]
                              body: 
                                (DoGroup
                                  children: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$type"))} 
                                                  {(Lit_Other "=")} {(DQ (file))} {(Lit_Other "]")}
                                                )
                                              terminator: <Op_Semi ";">
                                            )
                                          ]
                                          action: [
                                            (Sentence
                                              child: 
                                                (C {(echo)} 
                                                  {
                                                    (DQ ($ VSub_Name "$file") (" ") 
                                                      (EscapedLiteralPart
                                                        token: <Lit_EscapedChar "\\\\">
                                                      )
                                                    )
                                                  }
                                                )
                                              terminator: <Op_Semi ";">
                                            )
                                          ]
                                          spids: [-1 1521]
                                        )
                                      ]
                                      spids: [-1 1534]
                                    )
                                  ]
                                  spids: [1501 1537]
                                )
                            )
                          ]
                          negated: False
                        )
                      ]
                      spids: [1467 1540]
                    )
                  ]
                  spids: [-1 1307]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other "[")} {(-d)} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(dir_filelist)} {(DQ ($ VSub_Number "$1"))})]
                  spids: [1543 1556]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [
                    {(echo)}
                    {(DQ ("  ") (${ VSub_Name prog) (": Cannot open '") ($ VSub_Number "$1") ("'"))}
                  ]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1581])]
                )
                (C {(exit)} {(1)})
              ]
              spids: [1566 1590]
            )
          ]
          spids: [1285]
        )
      spids: [1281 1284]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:prog) op:Equal rhs:{($ VSub_Number "$0")} spids:[1595])]
      spids: [1595]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:root_uid) op:Equal rhs:{(0)} spids:[1598])]
      spids: [1598]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:root_gid) op:Equal rhs:{(0)} spids:[1601])]
      spids: [1601]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:dep_list) op:Equal rhs:{(SQ )} spids:[1604])]
      spids: [1604]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:cpio_file) op:Equal rhs:{(SQ )} spids:[1606])]
      spids: [1606]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:cpio_list) op:Equal rhs:{(SQ )} spids:[1608])]
      spids: [1608]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:output) op:Equal rhs:{(DQ (/dev/stdout))} spids:[1610])]
      spids: [1610]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:output_file) op:Equal rhs:{(DQ )} spids:[1615])]
      spids: [1615]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:is_cpio_compressed) op:Equal rhs:{(SQ )} spids:[1619])]
      spids: [1619]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:compr)
          op: Equal
          rhs: {(DQ ("gzip -n -9 -f"))}
          spids: [1621]
        )
      ]
      spids: [1621]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:arg)
          op: Equal
          rhs: {(DQ ($ VSub_Number "$1"))}
          spids: [1627]
        )
      ]
      spids: [1627]
    )
    (Case
      to_match: {(DQ ($ VSub_Name "$arg"))}
      arms: [
        (case_arm
          pat_list: [{(DQ (-l))}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dep_list)
                  op: Equal
                  rhs: {(DQ (list_))}
                  spids: [1650]
                )
              ]
              spids: [1650]
            )
            (C {(echo)} 
              {
                (DQ ("deps_initramfs := ") ($ VSub_Number "$0") (" ") 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\\\">)
                )
              }
            )
            (C {(shift)})
          ]
          spids: [1642 1644 1669 -1]
        )
        (case_arm
          pat_list: [{(DQ (-o))}]
          action: [
            (C {(shift)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:output_file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [1684]
                )
              ]
              spids: [1684]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cpio_list)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(mktemp)} 
                                  {
                                    (BracedVarSub
                                      token: <VSub_Name TMPDIR>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VTest_ColonHyphen
                                          arg_word: {(Lit_Slash /) (tmp)}
                                        )
                                      spids: [1695 1700]
                                    ) (/cpiolist.XXXXXX)
                                  }
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [1692 1702]
                        )
                      )
                    }
                  spids: [1690]
                )
              ]
              spids: [1690]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:output)
                  op: Equal
                  rhs: {(${ VSub_Name cpio_list)}
                  spids: [1706]
                )
              ]
              spids: [1706]
            )
            (AndOr
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Name "$output_file"))})
                    (C {(grep)} {(-q)} 
                      {(DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) (gz) (Lit_Other "$"))}
                    )
                  ]
                  negated: False
                )
                (AndOr
                  children: [
                    (C {(Lit_Other "[")} {(-x)} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (SimpleCommand
                                    words: [{(which)} {(gzip)}]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [1744]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_Backtick "`">
                            spids: [1739 1747]
                          )
                        )
                      } {(Lit_Other "]")}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:compr)
                          op: Equal
                          rhs: {(DQ ("gzip -n -9 -f"))}
                          spids: [1756]
                        )
                      ]
                      spids: [1756]
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Name "$output_file"))})
                    (C {(grep)} {(-q)} 
                      {(DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) (bz2) (Lit_Other "$"))}
                    )
                  ]
                  negated: False
                )
                (AndOr
                  children: [
                    (C {(Lit_Other "[")} {(-x)} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (SimpleCommand
                                    words: [{(which)} {(bzip2)}]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [1794]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_Backtick "`">
                            spids: [1789 1797]
                          )
                        )
                      } {(Lit_Other "]")}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:compr)
                          op: Equal
                          rhs: {(DQ ("bzip2 -9 -f"))}
                          spids: [1806]
                        )
                      ]
                      spids: [1806]
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Name "$output_file"))})
                    (C {(grep)} {(-q)} 
                      {
                        (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) (lzma) (Lit_Other "$"))
                      }
                    )
                  ]
                  negated: False
                )
                (AndOr
                  children: [
                    (C {(Lit_Other "[")} {(-x)} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (SimpleCommand
                                    words: [{(which)} {(lzma)}]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [1844]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_Backtick "`">
                            spids: [1839 1847]
                          )
                        )
                      } {(Lit_Other "]")}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:compr)
                          op: Equal
                          rhs: {(DQ ("lzma -9 -f"))}
                          spids: [1856]
                        )
                      ]
                      spids: [1856]
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Name "$output_file"))})
                    (C {(grep)} {(-q)} 
                      {(DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) (xz) (Lit_Other "$"))}
                    )
                  ]
                  negated: False
                )
                (AndOr
                  children: [
                    (C {(Lit_Other "[")} {(-x)} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (SimpleCommand
                                    words: [{(which)} {(xz)}]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [1894]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_Backtick "`">
                            spids: [1889 1897]
                          )
                        )
                      } {(Lit_Other "]")}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:compr)
                          op: Equal
                          rhs: {(DQ ("xz --check=crc32 --lzma2=dict=1MiB"))}
                          spids: [1906]
                        )
                      ]
                      spids: [1906]
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Name "$output_file"))})
                    (C {(grep)} {(-q)} 
                      {(DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) (lzo) (Lit_Other "$"))}
                    )
                  ]
                  negated: False
                )
                (AndOr
                  children: [
                    (C {(Lit_Other "[")} {(-x)} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (SimpleCommand
                                    words: [{(which)} {(lzop)}]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [1944]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_Backtick "`">
                            spids: [1939 1947]
                          )
                        )
                      } {(Lit_Other "]")}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:compr)
                          op: Equal
                          rhs: {(DQ ("lzop -9 -f"))}
                          spids: [1956]
                        )
                      ]
                      spids: [1956]
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Name "$output_file"))})
                    (C {(grep)} {(-q)} 
                      {(DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) (lz4) (Lit_Other "$"))}
                    )
                  ]
                  negated: False
                )
                (AndOr
                  children: [
                    (C {(Lit_Other "[")} {(-x)} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (SimpleCommand
                                    words: [{(which)} {(lz4)}]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [1994]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_Backtick "`">
                            spids: [1989 1997]
                          )
                        )
                      } {(Lit_Other "]")}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:compr)
                          op: Equal
                          rhs: {(DQ ("lz4 -l -9 -f"))}
                          spids: [2006]
                        )
                      ]
                      spids: [2006]
                    )
                  ]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
            (AndOr
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Name "$output_file"))})
                    (C {(grep)} {(-q)} 
                      {
                        (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) (cpio) (Lit_Other "$"))
                      }
                    )
                  ]
                  negated: False
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:compr)
                      op: Equal
                      rhs: {(DQ (cat))}
                      spids: [2032]
                    )
                  ]
                  spids: [2032]
                )
              ]
              op_id: Op_DAmp
            )
            (C {(shift)})
          ]
          spids: [1673 1675 2041 -1]
        )
      ]
      spids: [1632 1638 2043]
    )
    (While
      cond: [
        (Sentence
          child: (C {(Lit_Other "[")} {($ VSub_Pound "$#")} {(-gt)} {(0)} {(Lit_Other "]")})
          terminator: <Op_Semi ";">
        )
      ]
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:arg)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [2061]
                )
              ]
              spids: [2061]
            )
            (C {(shift)})
            (Case
              to_match: {(DQ ($ VSub_Name "$arg"))}
              arms: [
                (case_arm
                  pat_list: [{(DQ (-u))}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:root_uid)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number "$1"))}
                          spids: [2088]
                        )
                      ]
                      spids: [2088]
                    )
                    (C {(shift)})
                  ]
                  spids: [2080 2082 2097 -1]
                )
                (case_arm
                  pat_list: [{(DQ (-g))}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:root_gid)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number "$1"))}
                          spids: [2109]
                        )
                      ]
                      spids: [2109]
                    )
                    (C {(shift)})
                  ]
                  spids: [2101 2103 2118 -1]
                )
                (case_arm
                  pat_list: [{(DQ (-d))}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:default_list)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$arg"))}
                          spids: [2130]
                        )
                      ]
                      spids: [2130]
                    )
                    (C {(${ VSub_Name dep_list) (default_initramfs)})
                  ]
                  spids: [2122 2124 2142 -1]
                )
                (case_arm
                  pat_list: [{(DQ (-h))}]
                  action: [(C {(usage)}) (C {(exit)} {(0)})]
                  spids: [2146 2148 2159 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [
                    (Case
                      to_match: {(DQ ($ VSub_Name "$arg"))}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ (-)) (Lit_Other "*")}]
                          action: [(C {(unknown_option)})]
                          spids: [2176 2179 2185 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other "*")}]
                          action: [
                            (C {(input_file)} {(DQ ($ VSub_Name "$arg"))} {(DQ ($ VSub_Pound "$#"))})
                          ]
                          spids: [2188 2189 2206 -1]
                        )
                      ]
                      spids: [2166 2172 2209]
                    )
                  ]
                  spids: [2162 2163 2212 -1]
                )
              ]
              spids: [2070 2076 2215]
            )
          ]
          spids: [2058 2217]
        )
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(KW_Bang "!")} {(-z)} {(${ VSub_Name output_file)} {(Lit_Other "]")})
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other "[")} {(-z)} {(${ VSub_Name cpio_file)} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:timestamp)
                          op: Equal
                          rhs: {(SQ )}
                          spids: [2260]
                        )
                      ]
                      spids: [2260]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(-n)} {(DQ ($ VSub_Name "$KBUILD_BUILD_TIMESTAMP"))})
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:timestamp)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (AndOr
                                                  children: [
                                                    (C {(date)} 
                                                      {(-d) 
                                                        (DQ ($ VSub_Name "$KBUILD_BUILD_TIMESTAMP"))
                                                      } {(Lit_Other "+") (Lit_Other "%") (s)}
                                                    )
                                                    (C {(Lit_Other ":")})
                                                  ]
                                                  op_id: Op_DPipe
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub "$(">
                                          spids: [2279 2294]
                                        )
                                      )
                                    }
                                  spids: [2277]
                                )
                              ]
                              spids: [2277]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Name "$timestamp"))})
                                      terminator: <Op_Semi ";">
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:timestamp)
                                          op: Equal
                                          rhs: {(DQ ("-t ") ($ VSub_Name "$timestamp"))}
                                          spids: [2312]
                                        )
                                      ]
                                      spids: [2312]
                                    )
                                  ]
                                  spids: [-1 2309]
                                )
                              ]
                              spids: [-1 2319]
                            )
                          ]
                          spids: [-1 2274]
                        )
                      ]
                      spids: [-1 2322]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cpio_tfile)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(mktemp)} 
                                          {
                                            (BracedVarSub
                                              token: <VSub_Name TMPDIR>
                                              suffix_op: 
                                                (StringUnary
                                                  op_id: VTest_ColonHyphen
                                                  arg_word: {(Lit_Slash /) (tmp)}
                                                )
                                              spids: [2330 2335]
                                            ) (/cpiofile.XXXXXX)
                                          }
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [2327 2337]
                                )
                              )
                            }
                          spids: [2325]
                        )
                      ]
                      spids: [2325]
                    )
                    (SimpleCommand
                      words: [
                        {(usr/gen_init_cpio)}
                        {($ VSub_Name "$timestamp")}
                        {(${ VSub_Name cpio_list)}
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(${ VSub_Name cpio_tfile)}
                          spids: [2349]
                        )
                      ]
                    )
                  ]
                  spids: [-1 2257]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:cpio_tfile)
                      op: Equal
                      rhs: {(${ VSub_Name cpio_file)}
                      spids: [2359]
                    )
                  ]
                  spids: [2359]
                )
              ]
              spids: [2356 2365]
            )
            (C {(rm)} {(${ VSub_Name cpio_list)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(DQ (${ VSub_Name is_cpio_compressed))} {(Lit_Other "=")} 
                          {(DQ (compressed))} {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)} {(${ VSub_Name cpio_tfile)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(${ VSub_Name output_file)}
                          spids: [2403]
                        )
                      ]
                    )
                  ]
                  spids: [-1 2394]
                )
              ]
              else_action: [
                (AndOr
                  children: [
                    (Subshell
                      child: 
                        (Pipeline
                          children: [
                            (C {(cat)} {(${ VSub_Name cpio_tfile)})
                            (SimpleCommand
                              words: [{(${ VSub_Name compr)} {(-)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: -1
                                  arg_word: {(${ VSub_Name output_file)}
                                  spids: [2428]
                                )
                              ]
                            )
                          ]
                          negated: False
                        )
                      spids: [2413 2433]
                    )
                    (Subshell
                      child: 
                        (CommandList
                          children: [
                            (Sentence
                              child: (C {(rm)} {(-f)} {(${ VSub_Name output_file)})
                              terminator: <Op_Semi ";">
                            )
                            (C {(false)})
                          ]
                        )
                      spids: [2439 2451]
                    )
                  ]
                  op_id: Op_DPipe
                )
              ]
              spids: [2410 2454]
            )
            (AndOr
              children: [
                (C {(Lit_Other "[")} {(-z)} {(${ VSub_Name cpio_file)} {(Lit_Other "]")})
                (C {(rm)} {(${ VSub_Name cpio_tfile)})
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [-1 2241]
        )
      ]
      spids: [-1 2475]
    )
    (C {(exit)} {(0)})
  ]
)