(CommandList
  children: [
    (FuncDef
      name: is_disk
      body: 
        (BraceGroup
          children: [
            (ForEach
              iter_name: _dsk
              iter_words: [
                {
                  (CommandSubPart
                    command_list: (CommandList children:[(C {(sysctl)} {(-n)} {(kern.disks)})])
                    left_token: <Left_Backtick '`'>
                    spids: [99 105]
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$_dsk'))} {(Lit_Other '=')} 
                          {(DQ (${ VSub_Number 1))} {(Lit_Other ']')}
                        )
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(Lit_Other '[')} {(DQ (/dev/) ($ VSub_Name '$_dsk'))} {(Lit_Other '=')} 
                          {(DQ (${ VSub_Number 1))} {(Lit_Other ']')}
                        )
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                    )
                  ]
                  spids: [108 158]
                )
              spids: [98 16777215]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [90]
        )
      spids: [86 89]
    )
    (Sentence
      child: 
        (FuncDef
          name: get_partition_sysid_mbr
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:INPART) op:Equal rhs:{(DQ (0))} spids:[179])]
                  spids: [179]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:DISK)
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$1'))}
                      spids: [185]
                    )
                  ]
                  spids: [185]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:PARTNUM)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(echo)} {(${ VSub_Number 2)})
                                      (C {(sed)} {(DQ ('s|') (${ VSub_Name DISK) ('s||g'))})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [192 210]
                          )
                        }
                      spids: [191]
                    )
                  ]
                  spids: [191]
                )
                (SimpleCommand
                  words: [{(fdisk)} {(${ VSub_Name DISK)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(${ VSub_Name TMPDIR) (/disk-) (${ VSub_Name DISK)}
                      spids: [219]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 2
                      arg_word: {(/dev/null)}
                      spids: [228]
                    )
                  ]
                )
                (While
                  cond: [(C {(read)} {(i)})]
                  body: 
                    (DoGroup
                      children: [
                        (Pipeline
                          children: [
                            (C {(echo)} {(DQ ($ VSub_Name '$i'))})
                            (SimpleCommand
                              words: [{(grep)} {(-q)} {(DQ ('The data for partition'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [258]
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} 
                                      {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:INPART)
                                      op: Equal
                                      rhs: {(DQ (0))}
                                      spids: [279]
                                    )
                                  ]
                                  spids: [279]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:PART)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (Pipeline
                                                      children: [
                                                        (C {(echo)} {(${ VSub_Name i)})
                                                        (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} {(5)})
                                                      ]
                                                      negated: F
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_Backtick '`'>
                                              spids: [287 307]
                                            )
                                          )
                                        }
                                      spids: [285]
                                    )
                                  ]
                                  spids: [285]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$PART'))} 
                                              {(Lit_Other '=')} {(DQ ($ VSub_Name '$PARTNUM'))} {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:INPART)
                                              op: Equal
                                              rhs: {(DQ (1))}
                                              spids: [332]
                                            )
                                          ]
                                          spids: [332]
                                        )
                                      ]
                                      spids: [16777215 329]
                                    )
                                  ]
                                  spids: [16777215 338]
                                )
                              ]
                              spids: [16777215 276]
                            )
                          ]
                          spids: [16777215 341]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPART'))} 
                                      {(Lit_Other '=')} {(DQ (1))} {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name '$i'))})
                                    (SimpleCommand
                                      words: [{(grep)} {(-q)} {(DQ ('^sysid'))}]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 2
                                          arg_word: {(/dev/null)}
                                          spids: [386]
                                        )
                                      ]
                                    )
                                  ]
                                  negated: F
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} 
                                              {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:SYSID)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ 
                                                    (CommandSubPart
                                                      command_list: 
                                                        (CommandList
                                                          children: [
                                                            (Pipeline
                                                              children: [
                                                                (C {(echo)} {(${ VSub_Name i)})
                                                                (C {(tr)} {(-s)} {(SQ <'\\t'>)} 
                                                                  {(SQ <' '>)}
                                                                )
                                                                (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} 
                                                                  {(2)}
                                                                )
                                                              ]
                                                              negated: F
                                                            )
                                                          ]
                                                        )
                                                      left_token: <Left_Backtick '`'>
                                                      spids: [409 443]
                                                    )
                                                  )
                                                }
                                              spids: [407]
                                            )
                                          ]
                                          spids: [407]
                                        )
                                        (ControlFlow
                                          token: <ControlFlow_Break break>
                                        )
                                      ]
                                      spids: [16777215 404]
                                    )
                                  ]
                                  spids: [16777215 450]
                                )
                              ]
                              spids: [16777215 367]
                            )
                          ]
                          spids: [16777215 454]
                        )
                      ]
                      spids: [239 458]
                    )
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: 16777215
                      arg_word: {(${ VSub_Name TMPDIR) (/disk-) (${ VSub_Name DISK)}
                      spids: [460]
                    )
                  ]
                )
                (C {(rm)} {(${ VSub_Name TMPDIR) (/disk-) (${ VSub_Name DISK)})
                (C {(export)} {(Lit_VarLike 'VAL=') (DQ (${ VSub_Name SYSID))})
              ]
              spids: [176]
            )
          spids: [172 175]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: get_partition_label_mbr
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:INPART) op:Equal rhs:{(DQ (0))} spids:[506])]
                  spids: [506]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:DISK)
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$1'))}
                      spids: [512]
                    )
                  ]
                  spids: [512]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:PARTNUM)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(echo)} {(${ VSub_Number 2)})
                                      (C {(sed)} {(DQ ('s|') (${ VSub_Name DISK) ('s||g'))})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [519 537]
                          )
                        }
                      spids: [518]
                    )
                  ]
                  spids: [518]
                )
                (SimpleCommand
                  words: [{(fdisk)} {(${ VSub_Name DISK)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(${ VSub_Name TMPDIR) (/disk-) (${ VSub_Name DISK)}
                      spids: [546]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 2
                      arg_word: {(/dev/null)}
                      spids: [555]
                    )
                  ]
                )
                (While
                  cond: [(C {(read)} {(i)})]
                  body: 
                    (DoGroup
                      children: [
                        (Pipeline
                          children: [
                            (C {(echo)} {(DQ ($ VSub_Name '$i'))})
                            (SimpleCommand
                              words: [{(grep)} {(-q)} {(DQ ('The data for partition'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [585]
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} 
                                      {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:INPART)
                                      op: Equal
                                      rhs: {(DQ (0))}
                                      spids: [606]
                                    )
                                  ]
                                  spids: [606]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:PART)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (Pipeline
                                                      children: [
                                                        (C {(echo)} {(${ VSub_Name i)})
                                                        (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} {(5)})
                                                      ]
                                                      negated: F
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_Backtick '`'>
                                              spids: [614 634]
                                            )
                                          )
                                        }
                                      spids: [612]
                                    )
                                  ]
                                  spids: [612]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$PART'))} 
                                              {(Lit_Other '=')} {(DQ ($ VSub_Name '$PARTNUM'))} {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:INPART)
                                              op: Equal
                                              rhs: {(DQ (1))}
                                              spids: [659]
                                            )
                                          ]
                                          spids: [659]
                                        )
                                      ]
                                      spids: [16777215 656]
                                    )
                                  ]
                                  spids: [16777215 665]
                                )
                              ]
                              spids: [16777215 603]
                            )
                          ]
                          spids: [16777215 668]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$INPART'))} 
                                      {(Lit_Other '=')} {(DQ (1))} {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name '$i'))})
                                    (SimpleCommand
                                      words: [{(grep)} {(-q)} {(DQ ('^sysid'))}]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 2
                                          arg_word: {(/dev/null)}
                                          spids: [713]
                                        )
                                      ]
                                    )
                                  ]
                                  negated: F
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} 
                                              {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:LABEL)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ 
                                                    (CommandSubPart
                                                      command_list: 
                                                        (CommandList
                                                          children: [
                                                            (Pipeline
                                                              children: [
                                                                (C {(echo)} {(${ VSub_Name i)})
                                                                (C {(tr)} {(-s)} {(SQ <'\\t'>)} 
                                                                  {(SQ <' '>)}
                                                                )
                                                                (C {(cut)} {(-d)} {(SQ <','>)} {(-f)} 
                                                                  {(2-10)}
                                                                )
                                                              ]
                                                              negated: F
                                                            )
                                                          ]
                                                        )
                                                      left_token: <Left_Backtick '`'>
                                                      spids: [736 770]
                                                    )
                                                  )
                                                }
                                              spids: [734]
                                            )
                                          ]
                                          spids: [734]
                                        )
                                        (ControlFlow
                                          token: <ControlFlow_Break break>
                                        )
                                      ]
                                      spids: [16777215 731]
                                    )
                                  ]
                                  spids: [16777215 777]
                                )
                              ]
                              spids: [16777215 694]
                            )
                          ]
                          spids: [16777215 781]
                        )
                      ]
                      spids: [566 785]
                    )
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: 16777215
                      arg_word: {(${ VSub_Name TMPDIR) (/disk-) (${ VSub_Name DISK)}
                      spids: [787]
                    )
                  ]
                )
                (C {(rm)} {(${ VSub_Name TMPDIR) (/disk-) (${ VSub_Name DISK)})
                (C {(export)} {(Lit_VarLike 'VAL=') (DQ (${ VSub_Name LABEL))})
              ]
              spids: [503]
            )
          spids: [499 502]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: get_partition_label_gpt
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:DISK)
                      op: Equal
                      rhs: {(DQ (${ VSub_Number 1))}
                      spids: [833]
                    )
                  ]
                  spids: [833]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:PARTNUM)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(echo)} {(${ VSub_Number 2)})
                                      (C {(sed)} {(DQ ('s|') (${ VSub_Name DISK) ('p||g'))})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [842 860]
                          )
                        }
                      spids: [841]
                    )
                  ]
                  spids: [841]
                )
                (SimpleCommand
                  words: [{(gpart)} {(show)} {(${ VSub_Name DISK)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(${ VSub_Name TMPDIR) (/disk-) (${ VSub_Name DISK)}
                      spids: [872]
                    )
                  ]
                )
                (While
                  cond: [(C {(read)} {(i)})]
                  body: 
                    (DoGroup
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:SLICE)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [
                                            (Pipeline
                                              children: [
                                                (C {(echo)} {(${ VSub_Name i)})
                                                (C {(grep)} {(-v)} {(${ VSub_Name DISK)})
                                                (C {(grep)} {(-v)} {(SQ <' free '>)})
                                                (C {(tr)} {(-s)} {(SQ <'\\t'>)} {(SQ <' '>)})
                                                (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} {(3)})
                                              ]
                                              negated: F
                                            )
                                          ]
                                        )
                                      left_token: <Left_Backtick '`'>
                                      spids: [894 947]
                                    )
                                  )
                                }
                              spids: [892]
                            )
                          ]
                          spids: [892]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(DQ (${ VSub_Name SLICE))} {(Lit_Other '=')} 
                                      {(DQ (${ VSub_Name PARTNUM))} {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:LABEL)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (Pipeline
                                                      children: [
                                                        (C {(echo)} {(${ VSub_Name i)})
                                                        (C {(grep)} {(-v)} {(${ VSub_Name DISK)})
                                                        (C {(grep)} {(-v)} {(SQ <' free '>)})
                                                        (C {(tr)} {(-s)} {(SQ <'\\t'>)} {(SQ <' '>)})
                                                        (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} {(4)})
                                                      ]
                                                      negated: F
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_Backtick '`'>
                                              spids: [978 1031]
                                            )
                                          )
                                        }
                                      spids: [976]
                                    )
                                  ]
                                  spids: [976]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                )
                              ]
                              spids: [16777215 973]
                            )
                          ]
                          spids: [16777215 1038]
                        )
                      ]
                      spids: [889 1041]
                    )
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: 16777215
                      arg_word: {(${ VSub_Name TMPDIR) (/disk-) (${ VSub_Name DISK)}
                      spids: [1043]
                    )
                  ]
                )
                (C {(rm)} {(${ VSub_Name TMPDIR) (/disk-) (${ VSub_Name DISK)})
                (C {(export)} {(Lit_VarLike 'VAL=') (DQ (${ VSub_Name LABEL))})
              ]
              spids: [830]
            )
          spids: [826 829]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: get_partition_startblock
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:DISK)
                      op: Equal
                      rhs: {(DQ (${ VSub_Number 1))}
                      spids: [1088]
                    )
                  ]
                  spids: [1088]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:PARTNUM)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(echo)} {(${ VSub_Number 2)})
                                      (C {(sed)} {(DQ ('s|') (${ VSub_Name DISK) ('p||g'))})
                                      (C {(sed)} {(DQ ('s|') (${ VSub_Name DISK) ('s||g'))})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [1097 1127]
                          )
                        }
                      spids: [1096]
                    )
                  ]
                  spids: [1096]
                )
                (SimpleCommand
                  words: [{(gpart)} {(show)} {(${ VSub_Name DISK)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(${ VSub_Name TMPDIR) (/disk-) (${ VSub_Name DISK)}
                      spids: [1139]
                    )
                  ]
                )
                (While
                  cond: [(C {(read)} {(i)})]
                  body: 
                    (DoGroup
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:SLICE)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [
                                            (Pipeline
                                              children: [
                                                (C {(echo)} {(${ VSub_Name i)})
                                                (C {(grep)} {(-v)} {(${ VSub_Name DISK)})
                                                (C {(grep)} {(-v)} {(SQ <' free '>)})
                                                (C {(tr)} {(-s)} {(SQ <'\\t'>)} {(SQ <' '>)})
                                                (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} {(3)})
                                              ]
                                              negated: F
                                            )
                                          ]
                                        )
                                      left_token: <Left_Backtick '`'>
                                      spids: [1161 1214]
                                    )
                                  )
                                }
                              spids: [1159]
                            )
                          ]
                          spids: [1159]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SLICE'))} {(Lit_Other '=')} 
                                      {(DQ (${ VSub_Name PARTNUM))} {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:SB)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (Pipeline
                                                      children: [
                                                        (C {(echo)} {(${ VSub_Name i)})
                                                        (C {(grep)} {(-v)} {(${ VSub_Name DISK)})
                                                        (C {(grep)} {(-v)} {(SQ <' free '>)})
                                                        (C {(tr)} {(-s)} {(SQ <'\\t'>)} {(SQ <' '>)})
                                                        (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} {(1)})
                                                      ]
                                                      negated: F
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_Backtick '`'>
                                              spids: [1243 1296]
                                            )
                                          )
                                        }
                                      spids: [1241]
                                    )
                                  ]
                                  spids: [1241]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                )
                              ]
                              spids: [16777215 1238]
                            )
                          ]
                          spids: [16777215 1303]
                        )
                      ]
                      spids: [1156 1306]
                    )
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: 16777215
                      arg_word: {(${ VSub_Name TMPDIR) (/disk-) (${ VSub_Name DISK)}
                      spids: [1308]
                    )
                  ]
                )
                (C {(rm)} {(${ VSub_Name TMPDIR) (/disk-) (${ VSub_Name DISK)})
                (C {(export)} {(Lit_VarLike 'VAL=') (DQ (${ VSub_Name SB))})
              ]
              spids: [1085]
            )
          spids: [1081 1084]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: get_partition_blocksize
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:DISK)
                      op: Equal
                      rhs: {(DQ (${ VSub_Number 1))}
                      spids: [1353]
                    )
                  ]
                  spids: [1353]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:PARTNUM)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(echo)} {(${ VSub_Number 2)})
                                      (C {(sed)} {(DQ ('s|') (${ VSub_Name DISK) ('p||g'))})
                                      (C {(sed)} {(DQ ('s|') (${ VSub_Name DISK) ('s||g'))})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [1362 1392]
                          )
                        }
                      spids: [1361]
                    )
                  ]
                  spids: [1361]
                )
                (SimpleCommand
                  words: [{(gpart)} {(show)} {(${ VSub_Name DISK)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(${ VSub_Name TMPDIR) (/disk-) (${ VSub_Name DISK)}
                      spids: [1404]
                    )
                  ]
                )
                (While
                  cond: [(C {(read)} {(i)})]
                  body: 
                    (DoGroup
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:SLICE)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [
                                            (Pipeline
                                              children: [
                                                (C {(echo)} {(${ VSub_Name i)})
                                                (C {(grep)} {(-v)} {(${ VSub_Name DISK)})
                                                (C {(grep)} {(-v)} {(SQ <' free '>)})
                                                (C {(tr)} {(-s)} {(SQ <'\\t'>)} {(SQ <' '>)})
                                                (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} {(3)})
                                              ]
                                              negated: F
                                            )
                                          ]
                                        )
                                      left_token: <Left_Backtick '`'>
                                      spids: [1426 1479]
                                    )
                                  )
                                }
                              spids: [1424]
                            )
                          ]
                          spids: [1424]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SLICE'))} {(Lit_Other '=')} 
                                      {(DQ (${ VSub_Name PARTNUM))} {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:BS)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (Pipeline
                                                      children: [
                                                        (C {(echo)} {(${ VSub_Name i)})
                                                        (C {(grep)} {(-v)} {(${ VSub_Name DISK)})
                                                        (C {(grep)} {(-v)} {(SQ <' free '>)})
                                                        (C {(tr)} {(-s)} {(SQ <'\\t'>)} {(SQ <' '>)})
                                                        (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} {(2)})
                                                      ]
                                                      negated: F
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_Backtick '`'>
                                              spids: [1508 1561]
                                            )
                                          )
                                        }
                                      spids: [1506]
                                    )
                                  ]
                                  spids: [1506]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                )
                              ]
                              spids: [16777215 1503]
                            )
                          ]
                          spids: [16777215 1568]
                        )
                      ]
                      spids: [1421 1571]
                    )
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: 16777215
                      arg_word: {(${ VSub_Name TMPDIR) (/disk-) (${ VSub_Name DISK)}
                      spids: [1573]
                    )
                  ]
                )
                (C {(rm)} {(${ VSub_Name TMPDIR) (/disk-) (${ VSub_Name DISK)})
                (C {(export)} {(Lit_VarLike 'VAL=') (DQ (${ VSub_Name BS))})
              ]
              spids: [1350]
            )
          spids: [1346 1349]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: get_disk_partitions
          body: 
            (BraceGroup
              children: [
                (SimpleCommand
                  words: [{(gpart)} {(show)} {(${ VSub_Number 1)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [1626]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 2
                      arg_word: {(/dev/null)}
                      spids: [1629]
                    )
                  ]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(export)} {(Lit_VarLike 'VAL=') (DQ )})
                        (ControlFlow token:<ControlFlow_Return return>)
                      ]
                      spids: [16777215 1647]
                    )
                  ]
                  spids: [16777215 1660]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:type)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(gpart)} {(show)} {(${ VSub_Number 1)})
                                      (C {(awk)} {(SQ <'/^=>/ { printf("%s",$5); }'>)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [1665 1681]
                          )
                        }
                      spids: [1664]
                    )
                  ]
                  spids: [1664]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:SLICES)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (Pipeline
                                      children: [
                                        (C {(gpart)} {(show)} {(${ VSub_Number 1)})
                                        (C {(grep)} {(-v)} {(${ VSub_Number 1)})
                                        (C {(grep)} {(-v)} {(SQ <' free '>)})
                                        (C {(tr)} {(-s)} {(SQ <'\\t'>)} {(SQ <' '>)})
                                        (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} {(4)})
                                        (C {(sed)} {(SQ <'/^$/d'>)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                              left_token: <Left_Backtick '`'>
                              spids: [1687 1750]
                            )
                          )
                        }
                      spids: [1685]
                    )
                  ]
                  spids: [1685]
                )
                (ForEach
                  iter_name: i
                  iter_words: [{(${ VSub_Name SLICES)}]
                  do_arg_iter: F
                  body: 
                    (DoGroup
                      children: [
                        (Case
                          to_match: {($ VSub_Name '$type')}
                          arms: [
                            (case_arm
                              pat_list: [{(MBR)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:name)
                                      op: Equal
                                      rhs: {(DQ (${ VSub_Number 1) (s) (${ VSub_Name i))}
                                      spids: [1778]
                                    )
                                  ]
                                  spids: [1778]
                                )
                              ]
                              spids: [1775 1776 1789 16777215]
                            )
                            (case_arm
                              pat_list: [{(GPT)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:name)
                                      op: Equal
                                      rhs: {(DQ (${ VSub_Number 1) (p) (${ VSub_Name i))}
                                      spids: [1795]
                                    )
                                  ]
                                  spids: [1795]
                                )
                              ]
                              spids: [1792 1793 1805 16777215]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other '*')}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:name)
                                      op: Equal
                                      rhs: {(DQ (${ VSub_Number 1) (s) (${ VSub_Name i))}
                                      spids: [1811]
                                    )
                                  ]
                                  spids: [1811]
                                )
                              ]
                              spids: [1808 1809 1821 16777215]
                            )
                          ]
                          spids: [1768 1772 1824]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name RSLICES))} 
                                  {(Lit_Other ']')}
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:RSLICES)
                                      op: Equal
                                      rhs: {(DQ (${ VSub_Name name))}
                                      spids: [1845]
                                    )
                                  ]
                                  spids: [1845]
                                )
                              ]
                              spids: [16777215 1842]
                            )
                          ]
                          else_action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:RSLICES)
                                  op: Equal
                                  rhs: {(DQ (${ VSub_Name RSLICES) (' ') (${ VSub_Name name))}
                                  spids: [1856]
                                )
                              ]
                              spids: [1856]
                            )
                          ]
                          spids: [1853 1868]
                        )
                      ]
                      spids: [1765 1871]
                    )
                  spids: [1759 16777215]
                )
                (C {(export)} {(Lit_VarLike 'VAL=') (DQ (${ VSub_Name RSLICES))})
              ]
              spids: [1615]
            )
          spids: [1611 1614]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: get_disk_cyl
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:cyl)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(diskinfo)} {(-v)} {(${ VSub_Number 1)})
                                      (C {(grep)} {(DQ ('# Cylinders'))})
                                      (C {(tr)} {(-s)} {(SQ <' '>)})
                                      (C {(cut)} {(-f)} {(2)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [1899 1933]
                          )
                        }
                      spids: [1898]
                    )
                  ]
                  spids: [1898]
                )
                (C {(export)} {(Lit_VarLike 'VAL=') (DQ (${ VSub_Name cyl))})
              ]
              spids: [1895]
            )
          spids: [1891 1894]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: get_disk_sectors
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:sec)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(diskinfo)} {(-v)} {(${ VSub_Number 1)})
                                      (C {(grep)} {(DQ ('# Sectors'))})
                                      (C {(tr)} {(-s)} {(SQ <' '>)})
                                      (C {(cut)} {(-f)} {(2)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [1960 1994]
                          )
                        }
                      spids: [1959]
                    )
                  ]
                  spids: [1959]
                )
                (C {(export)} {(Lit_VarLike 'VAL=') (DQ (${ VSub_Name sec))})
              ]
              spids: [1956]
            )
          spids: [1952 1955]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: get_disk_heads
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:head)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(diskinfo)} {(-v)} {(${ VSub_Number 1)})
                                      (C {(grep)} {(DQ ('# Heads'))})
                                      (C {(tr)} {(-s)} {(SQ <' '>)})
                                      (C {(cut)} {(-f)} {(2)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [2021 2055]
                          )
                        }
                      spids: [2020]
                    )
                  ]
                  spids: [2020]
                )
                (C {(export)} {(Lit_VarLike 'VAL=') (DQ (${ VSub_Name head))})
              ]
              spids: [2017]
            )
          spids: [2013 2016]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: get_disk_mediasize
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:mediasize)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(diskinfo)} {(-v)} {(${ VSub_Number 1)})
                                      (C {(grep)} {(DQ ('# mediasize in sectors'))})
                                      (C {(tr)} {(-s)} {(SQ <' '>)})
                                      (C {(cut)} {(-f)} {(2)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [2082 2116]
                          )
                        }
                      spids: [2081]
                    )
                  ]
                  spids: [2081]
                )
                (C {(export)} {(Lit_VarLike 'VAL=') (DQ (${ VSub_Name mediasize))})
              ]
              spids: [2078]
            )
          spids: [2074 2077]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: get_disk_mediasize_mb
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:mediasize)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(diskinfo)} {(-v)} {(${ VSub_Number 1)})
                                      (C {(grep)} {(DQ ('# mediasize in bytes'))})
                                      (C {(tr)} {(-s)} {(SQ <' '>)})
                                      (C {(cut)} {(-f)} {(2)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [2143 2177]
                          )
                        }
                      spids: [2142]
                    )
                  ]
                  spids: [2142]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:mediasize)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(expr)} {($ VSub_Name '$mediasize')} {(/)} {(1024)})]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [2181 2189]
                          )
                        }
                      spids: [2180]
                    )
                  ]
                  spids: [2180]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:mediasize)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(expr)} {($ VSub_Name '$mediasize')} {(/)} {(1024)})]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [2193 2201]
                          )
                        }
                      spids: [2192]
                    )
                  ]
                  spids: [2192]
                )
                (C {(export)} {(Lit_VarLike 'VAL=') (DQ (${ VSub_Name mediasize))})
              ]
              spids: [2139]
            )
          spids: [2135 2138]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: delete_all_gpart
          body: 
            (BraceGroup
              children: [
                (C {(echo_log)} {(DQ ('Deleting all gparts'))})
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:DISK)
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$1'))}
                      spids: [2236]
                    )
                  ]
                  spids: [2234]
                )
                (ForEach
                  iter_name: i
                  iter_words: [
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(swapctl)} {(-l)})
                                  (C {(grep)} {(DQ ($ VSub_Name '$DISK'))})
                                  (C {(awk)} {(SQ <'{print $1}'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [2253 2273]
                      )
                    }
                  ]
                  do_arg_iter: F
                  body: 
                    (DoGroup
                      children: [
                        (SimpleCommand
                          words: [{(swapoff)} {(${ VSub_Name i)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [2285]
                            )
                            (Redir
                              op_id: Redir_Great
                              fd: 2
                              arg_word: {(/dev/null)}
                              spids: [2288]
                            )
                          ]
                        )
                      ]
                      spids: [2276 2292]
                    )
                  spids: [2252 16777215]
                )
                (ForEach
                  iter_name: i
                  iter_words: [
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (SimpleCommand
                                    words: [{(gpart)} {(show)} {(${ VSub_Name DISK)}]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [2315]
                                      )
                                    ]
                                  )
                                  (C {(tr)} {(-s)} {(SQ <' '>)})
                                  (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} {(4)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [2306 2341]
                      )
                    }
                  ]
                  do_arg_iter: F
                  body: 
                    (DoGroup
                      children: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(DQ (/dev/) (${ VSub_Name i))} 
                                      {(KW_Bang '!') (Lit_Other '=')} {(DQ (${ VSub_Name DISK))} {(-a)} {(DQ (${ VSub_Name i))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (-))} 
                                      {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(rc_nohalt)} 
                                  {
                                    (DQ ('gpart delete -i ') (${ VSub_Name i) (' ') (${ VSub_Name DISK))
                                  }
                                )
                              ]
                              spids: [16777215 2386]
                            )
                          ]
                          spids: [16777215 2403]
                        )
                      ]
                      spids: [2344 2406]
                    )
                  spids: [2305 16777215]
                )
                (C {(rc_nohalt)} {(DQ ('gpart destroy ') (${ VSub_Name DISK))})
                (C {(wipe_metadata)} {(DQ (${ VSub_Name DISK))})
              ]
              spids: [2224]
            )
          spids: [2220 2223]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: stop_all_zfs
          body: 
            (BraceGroup
              children: [
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-c)} {(/dev/zfs)} {(Lit_Other ']')})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Sentence
                          child: (ControlFlow token:<ControlFlow_Return return>)
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      spids: [16777215 2460]
                    )
                  ]
                  spids: [16777215 2467]
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:DISK)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (Pipeline
                                      children: [
                                        (C {(echo)} {(${ VSub_Number 1)})
                                        (C {(sed)} {(SQ <'s|/dev/||g'>)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                              left_token: <Left_Backtick '`'>
                              spids: [2474 2488]
                            )
                          )
                        }
                      spids: [2472]
                    )
                  ]
                  spids: [2470]
                )
                (ForEach
                  iter_name: i
                  iter_words: [
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(zpool)} {(list)} {(-H)} {(-o)} {(name)})]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [2503 2513]
                      )
                    }
                  ]
                  do_arg_iter: F
                  body: 
                    (DoGroup
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ztst)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (Pipeline
                                            children: [
                                              (C {(zpool)} {(status)} {(${ VSub_Name i)})
                                              (C {(grep)} {(DQ (ONLINE))})
                                              (C {(awk)} {(SQ <'{print $1}'>)})
                                              (C {(grep)} {(-q)} {(${ VSub_Name DISK)})
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                    left_token: <Left_Backtick '`'>
                                    spids: [2520 2554]
                                  )
                                }
                              spids: [2519]
                            )
                          ]
                          spids: [2519]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$ztst'))} {(Lit_Other '=')} 
                                      {(DQ ($ VSub_Name '$DISK'))} {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(C {(zpool)} {(export)} {(-f)} {(${ VSub_Name i)})]
                              spids: [16777215 2575]
                            )
                          ]
                          spids: [16777215 2589]
                        )
                      ]
                      spids: [2516 2592]
                    )
                  spids: [2502 16777215]
                )
              ]
              spids: [2444]
            )
          spids: [2440 2443]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: stop_all_gmirror
          body: 
            (BraceGroup
              children: [
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(/dev/mirror)} {(Lit_Other ']')})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Sentence
                          child: (ControlFlow token:<ControlFlow_Return return>)
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      spids: [16777215 2621]
                    )
                  ]
                  spids: [16777215 2628]
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:DISK)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (Pipeline
                                      children: [
                                        (C {(echo)} {(${ VSub_Number 1)})
                                        (C {(sed)} {(SQ <'s|/dev/||g'>)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                              left_token: <Left_Backtick '`'>
                              spids: [2635 2649]
                            )
                          )
                        }
                      spids: [2633]
                    )
                  ]
                  spids: [2631]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:GPROV)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (Pipeline
                                      children: [
                                        (C {(gmirror)} {(list)})
                                        (C {(grep)} {(DQ ('. Name: mirror/'))})
                                        (C {(cut)} {(-d)} {(SQ </>)} {(-f)} {(2)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                              left_token: <Left_Backtick '`'>
                              spids: [2655 2681]
                            )
                          )
                        }
                      spids: [2653]
                    )
                  ]
                  spids: [2653]
                )
                (ForEach
                  iter_name: gprov
                  iter_words: [{($ VSub_Name '$GPROV')}]
                  do_arg_iter: F
                  body: 
                    (DoGroup
                      children: [
                        (Pipeline
                          children: [
                            (C {(gmirror)} {(list)})
                            (SimpleCommand
                              words: [{(grep)} {(-q)} {(DQ ('Name: ') (${ VSub_Name DISK))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [2715]
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')})
                              ]
                              action: [
                                (C {(echo_log)} 
                                  {
                                    (DQ ('Stopping mirror ') ($ VSub_Name '$gprov') (' ') 
                                      ($ VSub_Name '$DISK')
                                    )
                                  }
                                )
                                (C {(rc_nohalt)} 
                                  {
                                    (DQ ('gmirror remove ') ($ VSub_Name '$gprov') (' ') 
                                      ($ VSub_Name '$DISK')
                                    )
                                  }
                                )
                                (C {(wipe_metadata)} {(DQ (${ VSub_Name DISK))})
                              ]
                              spids: [16777215 2732]
                            )
                          ]
                          spids: [16777215 2764]
                        )
                      ]
                      spids: [2695 2767]
                    )
                  spids: [2690 16777215]
                )
              ]
              spids: [2605]
            )
          spids: [2601 2604]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: stop_all_geli
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:_geld)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (Pipeline
                                      children: [
                                        (C {(echo)} {(${ VSub_Number 1)})
                                        (C {(sed)} {(SQ <'s|/dev/||g'>)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                              left_token: <Left_Backtick '`'>
                              spids: [2787 2801]
                            )
                          )
                        }
                      spids: [2785]
                    )
                  ]
                  spids: [2783]
                )
                (C {(cd)} {(/dev)})
                (ForEach
                  iter_name: i
                  iter_words: [
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(ls)} {(${ VSub_Name _geld) (Lit_Other '*')})]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [2817 2824]
                      )
                    }
                  ]
                  do_arg_iter: F
                  body: 
                    (DoGroup
                      children: [
                        (Pipeline
                          children: [
                            (C {(echo)} {($ VSub_Name '$i')})
                            (SimpleCommand
                              words: [{(grep)} {(-q)} {(SQ <.eli>)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [2844]
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')})
                              ]
                              action: [
                                (C {(echo_log)} {(DQ ('Detaching GELI on ') (${ VSub_Name i))})
                                (C {(rc_halt)} {(DQ ('geli detach ') (${ VSub_Name i))})
                              ]
                              spids: [16777215 2861]
                            )
                          ]
                          spids: [16777215 2884]
                        )
                      ]
                      spids: [2827 2887]
                    )
                  spids: [2816 16777215]
                )
              ]
              spids: [2780]
            )
          spids: [2776 2779]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: setup_disk_slice
          body: 
            (BraceGroup
              children: [
                (SimpleCommand
                  words: [{(rm)} {(-rf)} {(${ VSub_Name SLICECFGDIR)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [2917]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 2
                      arg_word: {(/dev/null)}
                      spids: [2920]
                    )
                  ]
                )
                (C {(mkdir)} {(${ VSub_Name SLICECFGDIR)})
                (SimpleCommand
                  words: [{(rm)} {(-rf)} {(${ VSub_Name MIRRORCFGDIR)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [2939]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 2
                      arg_word: {(/dev/null)}
                      spids: [2942]
                    )
                  ]
                )
                (C {(mkdir)} {(${ VSub_Name MIRRORCFGDIR)})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:disknum)
                      op: Equal
                      rhs: {(DQ (0))}
                      spids: [2958]
                    )
                  ]
                  spids: [2958]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:gmnum) op:Equal rhs:{(DQ (0))} spids:[2964])]
                  spids: [2964]
                )
                (While
                  cond: [(C {(read)} {(line)})]
                  body: 
                    (DoGroup
                      children: [
                        (Pipeline
                          children: [
                            (C {(echo)} {($ VSub_Name '$line')})
                            (SimpleCommand
                              words: [{(grep)} {(-q)} {(DQ ('^disk') (${ VSub_Name disknum) ('='))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [3003]
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')})
                              ]
                              action: [
                                (C {(get_value_from_string)} {(DQ (${ VSub_Name line))})
                                (C {(strip_white_space)} {(DQ ($ VSub_Name '$VAL'))})
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:DISK)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Name '$VAL'))}
                                      spids: [3044]
                                    )
                                  ]
                                  spids: [3044]
                                )
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ (${ VSub_Name DISK))})
                                    (C {(grep)} {(-q)} {(SQ <'^/dev/'>)})
                                  ]
                                  negated: F
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} 
                                              {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Sentence
                                          child: 
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:DISK)
                                                  op: Equal
                                                  rhs: {(DQ (/dev/) ($ VSub_Name '$DISK'))}
                                                  spids: [3086]
                                                )
                                              ]
                                              spids: [3086]
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      spids: [16777215 3084]
                                    )
                                  ]
                                  spids: [16777215 3094]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} 
                                              {(DQ (${ VSub_Name DISK))} {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(exit_err)} 
                                          {
                                            (DQ ('ERROR: The disk ') (${ VSub_Name DISK) 
                                              (' does not exist!')
                                            )
                                          }
                                        )
                                      ]
                                      spids: [16777215 3121]
                                    )
                                  ]
                                  spids: [16777215 3135]
                                )
                                (C {(stop_all_gmirror)} {(${ VSub_Name DISK)})
                                (C {(stop_all_geli)} {(${ VSub_Name DISK)})
                                (C {(stop_all_zfs)} {(${ VSub_Name DISK)})
                              ]
                              spids: [16777215 3020]
                            )
                          ]
                          spids: [16777215 3175]
                        )
                        (Pipeline
                          children: [
                            (C {(echo)} {($ VSub_Name '$line')})
                            (SimpleCommand
                              words: [{(grep)} {(-q)} {(DQ ('^mirror='))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [3197]
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')})
                              ]
                              action: [
                                (C {(get_value_from_string)} {(DQ (${ VSub_Name line))})
                                (C {(strip_white_space)} {(DQ ($ VSub_Name '$VAL'))})
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:MIRRORDISK)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Name '$VAL'))}
                                      spids: [3238]
                                    )
                                  ]
                                  spids: [3238]
                                )
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ (${ VSub_Name MIRRORDISK))})
                                    (C {(grep)} {(-q)} {(SQ <'^/dev/'>)})
                                  ]
                                  negated: F
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} 
                                              {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Sentence
                                          child: 
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:MIRRORDISK)
                                                  op: Equal
                                                  rhs: {(DQ (/dev/) ($ VSub_Name '$MIRRORDISK'))}
                                                  spids: [3279]
                                                )
                                              ]
                                              spids: [3279]
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      spids: [16777215 3277]
                                    )
                                  ]
                                  spids: [16777215 3287]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} 
                                          {(DQ (${ VSub_Name MIRRORDISK))} {(Lit_Other ']')}
                                        )
                                      ]
                                      action: [
                                        (C {(exit_err)} 
                                          {
                                            (DQ ('ERROR: The mirror disk ') (${ VSub_Name MIRRORDISK) 
                                              (' does not exist!')
                                            )
                                          }
                                        )
                                      ]
                                      spids: [16777215 3313]
                                    )
                                  ]
                                  spids: [16777215 3327]
                                )
                                (C {(stop_all_gmirror)} {(${ VSub_Name MIRRORDISK)})
                                (C {(stop_all_geli)} {(${ VSub_Name MIRRORDISK)})
                                (C {(stop_all_zfs)} {(${ VSub_Name MIRRORDISK)})
                              ]
                              spids: [16777215 3214]
                            )
                          ]
                          spids: [16777215 3367]
                        )
                        (Pipeline
                          children: [
                            (C {(echo)} {($ VSub_Name '$line')})
                            (SimpleCommand
                              words: [{(grep)} {(-q)} {(DQ ('^mirrorbal='))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [3389]
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')})
                              ]
                              action: [
                                (C {(get_value_from_string)} {(DQ (${ VSub_Name line))})
                                (C {(strip_white_space)} {(DQ ($ VSub_Name '$VAL'))})
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:MIRRORBAL)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Name '$VAL'))}
                                      spids: [3430]
                                    )
                                  ]
                                  spids: [3430]
                                )
                              ]
                              spids: [16777215 3406]
                            )
                          ]
                          spids: [16777215 3436]
                        )
                        (Pipeline
                          children: [
                            (C {(echo)} {($ VSub_Name '$line')})
                            (SimpleCommand
                              words: [{(grep)} {(-q)} {(DQ ('^partition='))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [3454]
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')})
                              ]
                              action: [
                                (C {(get_value_from_string)} {(DQ (${ VSub_Name line))})
                                (C {(strip_white_space)} {(DQ ($ VSub_Name '$VAL'))})
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:PTYPE)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (Pipeline
                                                    children: [
                                                      (C {(echo)} {($ VSub_Name '$VAL')})
                                                      (C {(tr)} {(A-Z)} {(a-z)})
                                                    ]
                                                    negated: F
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick '`'>
                                            spids: [3495 3505]
                                          )
                                        }
                                      spids: [3494]
                                    )
                                  ]
                                  spids: [3494]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (C {(Lit_Other '[')} {(DQ (${ VSub_Name PTYPE))} 
                                          {(Lit_Other '=')} {(DQ (free))} {(Lit_Other ']')}
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:LASTSLICE)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ 
                                                    (CommandSubPart
                                                      command_list: 
                                                        (CommandList
                                                          children: [
                                                            (Pipeline
                                                              children: [
                                                                (C {(gpart)} {(show)} 
                                                                  {(${ VSub_Name DISK)}
                                                                )
                                                                (C {(grep)} {(-v)} {(${ VSub_Name DISK)})
                                                                (C {(grep)} {(-v)} {(SQ <' free'>)})
                                                                (C {(tr)} {(-s)} {(SQ <'\\t'>)} 
                                                                  {(SQ <' '>)}
                                                                )
                                                                (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} 
                                                                  {(4)}
                                                                )
                                                                (C {(sed)} {(SQ <'/^$/d'>)})
                                                                (C {(tail)} {(-n)} {(1)})
                                                              ]
                                                              negated: F
                                                            )
                                                          ]
                                                        )
                                                      left_token: <Left_Backtick '`'>
                                                      spids: [3541 3625]
                                                    )
                                                  )
                                                }
                                              spids: [3539]
                                            )
                                          ]
                                          spids: [3539]
                                        )
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (C {(Lit_Other '[')} {(-z)} 
                                                  {(DQ (${ VSub_Name LASTSLICE))} {(Lit_Other ']')}
                                                )
                                              ]
                                              action: [
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:LASTSLICE)
                                                      op: Equal
                                                      rhs: {(DQ (1))}
                                                      spids: [3648]
                                                    )
                                                  ]
                                                  spids: [3648]
                                                )
                                              ]
                                              spids: [16777215 3645]
                                            )
                                          ]
                                          else_action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:LASTSLICE)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (ArithSubPart
                                                        anode: 
                                                          (ArithBinary
                                                            op_id: Arith_Plus
                                                            left: (ArithVarRef name:LASTSLICE)
                                                            right: (ArithWord w:{(Lit_Digits 1)})
                                                          )
                                                        spids: [3658 3663]
                                                      )
                                                    }
                                                  spids: [3657]
                                                )
                                              ]
                                              spids: [3657]
                                            )
                                          ]
                                          spids: [3654 3666]
                                        )
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (C {(Lit_Other '[')} {($ VSub_Name '$LASTSLICE')} 
                                                  {(-gt)} {(4)} {(Lit_Other ']')}
                                                )
                                              ]
                                              action: [
                                                (C {(exit_err)} 
                                                  {
                                                    (DQ 
                                                      (
'ERROR: BSD only supports primary partitions, and there are none available on '
                                                      ) ($ VSub_Name '$DISK')
                                                    )
                                                  }
                                                )
                                              ]
                                              spids: [16777215 3683]
                                            )
                                          ]
                                          spids: [16777215 3694]
                                        )
                                      ]
                                      spids: [16777215 3532]
                                    )
                                  ]
                                  spids: [16777215 3698]
                                )
                              ]
                              spids: [16777215 3471]
                            )
                          ]
                          spids: [16777215 3701]
                        )
                        (Pipeline
                          children: [
                            (C {(echo)} {($ VSub_Name '$line')})
                            (SimpleCommand
                              words: [{(grep)} {(-q)} {(DQ ('^image='))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [3723]
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} 
                                      {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(get_value_from_string)} {(DQ (${ VSub_Name line))})
                                (C {(strip_white_space)} {(DQ ($ VSub_Name '$VAL'))})
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:IMAGE)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Name '$VAL'))}
                                      spids: [3764]
                                    )
                                  ]
                                  spids: [3764]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} 
                                              {(DQ ($ VSub_Name '$IMAGE'))} {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(exit_err)} 
                                          {(DQ ($ VSub_Name '$IMAGE') (' file does not exist'))}
                                        )
                                      ]
                                      spids: [16777215 3786]
                                    )
                                  ]
                                  spids: [16777215 3797]
                                )
                              ]
                              spids: [16777215 3741]
                            )
                          ]
                          spids: [16777215 3800]
                        )
                        (Pipeline
                          children: [
                            (C {(echo)} {($ VSub_Name '$line')})
                            (SimpleCommand
                              words: [{(grep)} {(-q)} {(DQ ('^partscheme='))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [3822]
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} 
                                      {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(get_value_from_string)} {(DQ (${ VSub_Name line))})
                                (C {(strip_white_space)} {(DQ ($ VSub_Name '$VAL'))})
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:PSCHEME)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Name '$VAL'))}
                                      spids: [3863]
                                    )
                                  ]
                                  spids: [3863]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$PSCHEME'))} 
                                              {(KW_Bang '!') (Lit_Other '=')} {(DQ (GPT))} {(-a)} {(DQ ($ VSub_Name '$PSCHEME'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (MBR))} 
                                              {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(exit_err)} 
                                          {
                                            (DQ ('Unknown partition scheme: ') 
                                              ($ VSub_Name '$PSCHEME')
                                            )
                                          }
                                        )
                                      ]
                                      spids: [16777215 3901]
                                    )
                                  ]
                                  spids: [16777215 3913]
                                )
                              ]
                              spids: [16777215 3840]
                            )
                          ]
                          spids: [16777215 3916]
                        )
                        (Pipeline
                          children: [
                            (C {(echo)} {($ VSub_Name '$line')})
                            (SimpleCommand
                              words: [{(grep)} {(-q)} {(DQ ('^bootManager='))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [3934]
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')})
                              ]
                              action: [
                                (C {(get_value_from_string)} {(DQ (${ VSub_Name line))})
                                (C {(strip_white_space)} {(DQ ($ VSub_Name '$VAL'))})
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:BMANAGER)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Name '$VAL'))}
                                      spids: [3974]
                                    )
                                  ]
                                  spids: [3974]
                                )
                              ]
                              spids: [16777215 3951]
                            )
                          ]
                          spids: [16777215 3980]
                        )
                        (Pipeline
                          children: [
                            (C {(echo)} {($ VSub_Name '$line')})
                            (SimpleCommand
                              words: [{(grep)} {(-q)} {(DQ ('^commitDiskPart'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [3998]
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')})
                              ]
                              action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} 
                                          {(DQ (${ VSub_Name DISK))} {(-a)} {(KW_Bang '!')} {(-z)} {(DQ (${ VSub_Name PTYPE))} {(Lit_Other ']')}
                                        )
                                      ]
                                      action: [
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (Sentence
                                                  child: 
                                                    (C {(Lit_Other '[')} 
                                                      {
                                                        (CommandSubPart
                                                          command_list: 
                                                            (CommandList
                                                              children: [(C {(uname)} {(-m)})]
                                                            )
                                                          left_token: <Left_Backtick '`'>
                                                          spids: [4062 4066]
                                                        )
                                                      } {(Lit_Other '=')} {(DQ (powerpc))} {(-o)} 
                                                      {
                                                        (CommandSubPart
                                                          command_list: 
                                                            (CommandList
                                                              children: [(C {(uname)} {(-m)})]
                                                            )
                                                          left_token: <Left_Backtick '`'>
                                                          spids: [4076 4080]
                                                        )
                                                      } {(Lit_Other '=')} {(DQ (powerpc64))} {(Lit_Other ']')}
                                                    )
                                                  terminator: <Op_Semi ';'>
                                                )
                                              ]
                                              action: [
                                                (If
                                                  arms: [
                                                    (if_arm
                                                      cond: [
                                                        (Sentence
                                                          child: 
                                                            (C {(Lit_Other '[')} 
                                                              {(DQ ($ VSub_Name '$PTYPE'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (all))} {(Lit_Other ']')}
                                                            )
                                                          terminator: <Op_Semi ';'>
                                                        )
                                                      ]
                                                      action: [
                                                        (C {(exit_err)} 
                                                          {
                                                            (DQ 
                                                              (
'powerpc can only be installed to a full disk'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                      spids: [16777215 4113]
                                                    )
                                                  ]
                                                  spids: [16777215 4123]
                                                )
                                              ]
                                              spids: [16777215 4091]
                                            )
                                          ]
                                          spids: [16777215 4126]
                                        )
                                        (Case
                                          to_match: {(${ VSub_Name PTYPE)}
                                          arms: [
                                            (case_arm
                                              pat_list: [{(all)}]
                                              action: [
                                                (If
                                                  arms: [
                                                    (if_arm
                                                      cond: [
                                                        (Sentence
                                                          child: 
                                                            (C {(Lit_Other '[')} {(-n)} 
                                                              {(DQ ($ VSub_Name '$MIRRORDISK'))} {(Lit_Other ']')}
                                                            )
                                                          terminator: <Op_Semi ';'>
                                                        )
                                                      ]
                                                      action: [
                                                        (If
                                                          arms: [
                                                            (if_arm
                                                              cond: [
                                                                (Sentence
                                                                  child: 
                                                                    (C {(Lit_Other '[')} {(-z)} 
                                                                      {
                                                                        (DQ 
                                                                          ($ VSub_Name '$MIRRORBAL')
                                                                        )
                                                                      } {(Lit_Other ']')}
                                                                    )
                                                                  terminator: <Op_Semi ';'>
                                                                )
                                                              ]
                                                              action: [
                                                                (Sentence
                                                                  child: 
                                                                    (Assignment
                                                                      keyword: Assign_None
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (LhsName
                                                                              name: MIRRORBAL
                                                                            )
                                                                          op: Equal
                                                                          rhs: {(DQ (round-robin))}
                                                                          spids: [4182]
                                                                        )
                                                                      ]
                                                                      spids: [4182]
                                                                    )
                                                                  terminator: <Op_Semi ';'>
                                                                )
                                                              ]
                                                              spids: [16777215 4180]
                                                            )
                                                          ]
                                                          spids: [16777215 4189]
                                                        )
                                                        (Assignment
                                                          keyword: Assign_None
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (LhsName name:_mFile)
                                                              op: Equal
                                                              rhs: 
                                                                {
                                                                  (CommandSubPart
                                                                    command_list: 
                                                                      (CommandList
                                                                        children: [
                                                                          (Pipeline
                                                                            children: [
                                                                              (C {(echo)} 
                                                                                {
                                                                                  ($ VSub_Name 
'$DISK'
                                                                                  )
                                                                                }
                                                                              )
                                                                              (C {(sed)} 
                                                                                {(SQ <'s|/|%|g'>)}
                                                                              )
                                                                            ]
                                                                            negated: F
                                                                          )
                                                                        ]
                                                                      )
                                                                    left_token: <Left_Backtick '`'>
                                                                    spids: [4194 4206]
                                                                  )
                                                                }
                                                              spids: [4193]
                                                            )
                                                          ]
                                                          spids: [4193]
                                                        )
                                                        (SimpleCommand
                                                          words: [
                                                            {(echo)}
                                                            {
                                                              (DQ ($ VSub_Name '$MIRRORDISK') (':') 
                                                                ($ VSub_Name '$MIRRORBAL') (':gm') (${ VSub_Name gmnum)
                                                              )
                                                            }
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op_id: Redir_Great
                                                              fd: 16777215
                                                              arg_word: 
                                                                {(${ VSub_Name MIRRORCFGDIR) (/) 
                                                                  ($ VSub_Name '$_mFile')
                                                                }
                                                              spids: [4221]
                                                            )
                                                          ]
                                                        )
                                                        (C {(init_gmirror)} 
                                                          {(DQ ($ VSub_Name '$gmnum'))} {(DQ ($ VSub_Name '$MIRRORBAL'))} {(DQ ($ VSub_Name '$DISK'))} {(DQ ($ VSub_Name '$MIRRORDISK'))}
                                                        )
                                                        (Assignment
                                                          keyword: Assign_None
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (LhsName name:DISK)
                                                              op: Equal
                                                              rhs: 
                                                                {
                                                                  (DQ (/dev/mirror/gm) 
                                                                    (${ VSub_Name gmnum)
                                                                  )
                                                                }
                                                              spids: [4253]
                                                            )
                                                          ]
                                                          spids: [4253]
                                                        )
                                                        (Assignment
                                                          keyword: Assign_None
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (LhsName name:gmnum)
                                                              op: Equal
                                                              rhs: 
                                                                {
                                                                  (ArithSubPart
                                                                    anode: 
                                                                      (ArithBinary
                                                                        op_id: Arith_Plus
                                                                        left: 
                                                                          (ArithVarRef
                                                                            name: gmknum
                                                                          )
                                                                        right: 
                                                                          (ArithWord
                                                                            w: {(Lit_Digits 1)}
                                                                          )
                                                                      )
                                                                    spids: [4263 4268]
                                                                  )
                                                                }
                                                              spids: [4262]
                                                            )
                                                          ]
                                                          spids: [4262]
                                                        )
                                                      ]
                                                      spids: [16777215 4160]
                                                    )
                                                  ]
                                                  spids: [16777215 4271]
                                                )
                                                (If
                                                  arms: [
                                                    (if_arm
                                                      cond: [
                                                        (Sentence
                                                          child: 
                                                            (C {(Lit_Other '[')} 
                                                              {(DQ ($ VSub_Name '$PSCHEME'))} {(Lit_Other '=')} {(DQ (MBR))} {(-o)} {(-z)} {(DQ ($ VSub_Name '$PSCHEME'))} {(Lit_Other ']')}
                                                            )
                                                          terminator: <Op_Semi ';'>
                                                        )
                                                      ]
                                                      action: [
                                                        (Assignment
                                                          keyword: Assign_None
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (LhsName name:PSCHEME)
                                                              op: Equal
                                                              rhs: {(DQ (MBR))}
                                                              spids: [4304]
                                                            )
                                                          ]
                                                          spids: [4304]
                                                        )
                                                        (Assignment
                                                          keyword: Assign_None
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (LhsName name:tmpSLICE)
                                                              op: Equal
                                                              rhs: {(DQ (${ VSub_Name DISK) (s1))}
                                                              spids: [4310]
                                                            )
                                                          ]
                                                          spids: [4310]
                                                        )
                                                      ]
                                                      spids: [16777215 4301]
                                                    )
                                                  ]
                                                  else_action: [
                                                    (Assignment
                                                      keyword: Assign_None
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (LhsName name:tmpSLICE)
                                                          op: Equal
                                                          rhs: {(DQ (${ VSub_Name DISK) (p1))}
                                                          spids: [4323]
                                                        )
                                                      ]
                                                      spids: [4323]
                                                    )
                                                  ]
                                                  spids: [4320 4333]
                                                )
                                                (If
                                                  arms: [
                                                    (if_arm
                                                      cond: [
                                                        (C {(Lit_Other '[')} 
                                                          {
                                                            (CommandSubPart
                                                              command_list: 
                                                                (CommandList
                                                                  children: [(C {(uname)} {(-m)})]
                                                                )
                                                              left_token: <Left_Backtick '`'>
                                                              spids: [4341 4345]
                                                            )
                                                          } {(Lit_Other '=')} {(DQ (powerpc))} {(-o)} 
                                                          {
                                                            (CommandSubPart
                                                              command_list: 
                                                                (CommandList
                                                                  children: [(C {(uname)} {(-m)})]
                                                                )
                                                              left_token: <Left_Backtick '`'>
                                                              spids: [4355 4359]
                                                            )
                                                          } {(Lit_Other '=')} {(DQ (powerpc64))} {(Lit_Other ']')}
                                                        )
                                                      ]
                                                      action: [
                                                        (Assignment
                                                          keyword: Assign_None
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (LhsName name:PSCHEME)
                                                              op: Equal
                                                              rhs: {(DQ (APM))}
                                                              spids: [4373]
                                                            )
                                                          ]
                                                          spids: [4373]
                                                        )
                                                        (Assignment
                                                          keyword: Assign_None
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (LhsName name:tmpSLICE)
                                                              op: Equal
                                                              rhs: {(DQ (${ VSub_Name DISK) (s1))}
                                                              spids: [4379]
                                                            )
                                                          ]
                                                          spids: [4379]
                                                        )
                                                      ]
                                                      spids: [16777215 4370]
                                                    )
                                                  ]
                                                  spids: [16777215 4389]
                                                )
                                                (C {(run_gpart_full)} {(DQ (${ VSub_Name DISK))} 
                                                  {(DQ (${ VSub_Name BMANAGER))} {(DQ (${ VSub_Name PSCHEME))}
                                                )
                                              ]
                                              spids: [4139 4140 4414 16777215]
                                            )
                                            (case_arm
                                              pat_list: [{(s1)} {(s2)} {(s3)} {(s4)}]
                                              action: [
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:tmpSLICE)
                                                      op: Equal
                                                      rhs: 
                                                        {
                                                          (DQ (${ VSub_Name DISK) (${ VSub_Name PTYPE))
                                                        }
                                                      spids: [4428]
                                                    )
                                                  ]
                                                  spids: [4428]
                                                )
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:s)
                                                      op: Equal
                                                      rhs: 
                                                        {
                                                          (DQ 
                                                            (CommandSubPart
                                                              command_list: 
                                                                (CommandList
                                                                  children: [
                                                                    (Pipeline
                                                                      children: [
                                                                        (C {(echo)} 
                                                                          {(${ VSub_Name PTYPE)}
                                                                        )
                                                                        (C {(awk)} 
                                                                          {
                                                                            (SQ 
                                                                              <
'{print substr($0,length,1)}'
                                                                              >
                                                                            )
                                                                          }
                                                                        )
                                                                      ]
                                                                      negated: F
                                                                    )
                                                                  ]
                                                                )
                                                              left_token: <Left_Backtick '`'>
                                                              spids: [4446 4460]
                                                            )
                                                          )
                                                        }
                                                      spids: [4444]
                                                    )
                                                  ]
                                                  spids: [4444]
                                                )
                                                (C {(run_gpart_slice)} {(DQ (${ VSub_Name DISK))} 
                                                  {(DQ (${ VSub_Name BMANAGER))} {(DQ (${ VSub_Name s))}
                                                )
                                              ]
                                              spids: [4418 4425 4486 16777215]
                                            )
                                            (case_arm
                                              pat_list: [
                                                {(p1)}
                                                {(p2)}
                                                {(p3)}
                                                {(p4)}
                                                {(p5)}
                                                {(p6)}
                                                {(p7)}
                                                {(p8)}
                                                {(p9)}
                                                {(p10)}
                                                {(p11)}
                                                {(p12)}
                                                {(p13)}
                                                {(p14)}
                                                {(p15)}
                                                {(p16)}
                                                {(p17)}
                                                {(p18)}
                                                {(p19)}
                                                {(p20)}
                                              ]
                                              action: [
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:tmpSLICE)
                                                      op: Equal
                                                      rhs: 
                                                        {
                                                          (DQ (${ VSub_Name DISK) (${ VSub_Name PTYPE))
                                                        }
                                                      spids: [4532]
                                                    )
                                                  ]
                                                  spids: [4532]
                                                )
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:s)
                                                      op: Equal
                                                      rhs: 
                                                        {
                                                          (DQ 
                                                            (CommandSubPart
                                                              command_list: 
                                                                (CommandList
                                                                  children: [
                                                                    (Pipeline
                                                                      children: [
                                                                        (C {(echo)} 
                                                                          {(${ VSub_Name PTYPE)}
                                                                        )
                                                                        (C {(awk)} 
                                                                          {
                                                                            (SQ 
                                                                              <
'{print substr($0,length,1)}'
                                                                              >
                                                                            )
                                                                          }
                                                                        )
                                                                      ]
                                                                      negated: F
                                                                    )
                                                                  ]
                                                                )
                                                              left_token: <Left_Backtick '`'>
                                                              spids: [4550 4564]
                                                            )
                                                          )
                                                        }
                                                      spids: [4548]
                                                    )
                                                  ]
                                                  spids: [4548]
                                                )
                                                (C {(run_gpart_gpt_part)} {(DQ (${ VSub_Name DISK))} 
                                                  {(DQ (${ VSub_Name BMANAGER))} {(DQ (${ VSub_Name s))}
                                                )
                                              ]
                                              spids: [4490 4529 4590 16777215]
                                            )
                                            (case_arm
                                              pat_list: [{(free)}]
                                              action: [
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:tmpSLICE)
                                                      op: Equal
                                                      rhs: 
                                                        {
                                                          (DQ (${ VSub_Name DISK) (s) 
                                                            (${ VSub_Name LASTSLICE)
                                                          )
                                                        }
                                                      spids: [4598]
                                                    )
                                                  ]
                                                  spids: [4598]
                                                )
                                                (C {(run_gpart_free)} {(DQ (${ VSub_Name DISK))} 
                                                  {(DQ (${ VSub_Name LASTSLICE))} {(DQ (${ VSub_Name BMANAGER))}
                                                )
                                              ]
                                              spids: [4594 4595 4631 16777215]
                                            )
                                            (case_arm
                                              pat_list: [{(image)}]
                                              action: [
                                                (If
                                                  arms: [
                                                    (if_arm
                                                      cond: [
                                                        (C {(Lit_Other '[')} {(-z)} 
                                                          {(DQ (${ VSub_Name IMAGE))} {(Lit_Other ']')}
                                                        )
                                                      ]
                                                      action: [
                                                        (C {(exit_err)} 
                                                          {
                                                            (DQ 
                                                              (
'ERROR: partition type image specified with no image!'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                      spids: [16777215 4654]
                                                    )
                                                  ]
                                                  spids: [16777215 4664]
                                                )
                                              ]
                                              spids: [4635 4636 4668 16777215]
                                            )
                                            (case_arm
                                              pat_list: [{(Lit_Other '*')}]
                                              action: [
                                                (C {(exit_err)} 
                                                  {
                                                    (DQ ('ERROR: Unknown PTYPE: ') 
                                                      ($ VSub_Name '$PTYPE')
                                                    )
                                                  }
                                                )
                                              ]
                                              spids: [4672 4673 4682 16777215]
                                            )
                                          ]
                                          spids: [4130 4136 4685]
                                        )
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name IMAGE))} 
                                                  {(Lit_Other ']')}
                                                )
                                              ]
                                              action: [
                                                (Assignment
                                                  keyword: Assign_Local
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:DEST)
                                                      op: Equal
                                                      spids: [4712]
                                                    )
                                                  ]
                                                  spids: [4710]
                                                )
                                                (If
                                                  arms: [
                                                    (if_arm
                                                      cond: [
                                                        (C {(Lit_Other '[')} {(-n)} 
                                                          {(DQ (${ VSub_Name tmpSLICE))} {(Lit_Other ']')}
                                                        )
                                                      ]
                                                      action: [
                                                        (Assignment
                                                          keyword: Assign_None
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (LhsName name:DEST)
                                                              op: Equal
                                                              rhs: {(DQ (${ VSub_Name tmpSLICE))}
                                                              spids: [4735]
                                                            )
                                                          ]
                                                          spids: [4735]
                                                        )
                                                      ]
                                                      spids: [16777215 4732]
                                                    )
                                                  ]
                                                  else_action: [
                                                    (Assignment
                                                      keyword: Assign_None
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (LhsName name:DEST)
                                                          op: Equal
                                                          rhs: {(DQ (${ VSub_Name DISK))}
                                                          spids: [4747]
                                                        )
                                                      ]
                                                      spids: [4747]
                                                    )
                                                  ]
                                                  spids: [4743 4755]
                                                )
                                                (C {(write_image)} {(DQ (${ VSub_Name IMAGE))} 
                                                  {(DQ (${ VSub_Name DEST))}
                                                )
                                                (C {(check_disk_layout)} {(DQ (${ VSub_Name DEST))})
                                              ]
                                              spids: [16777215 4706]
                                            )
                                          ]
                                          spids: [16777215 4784]
                                        )
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name IMAGE))} 
                                                  {(Lit_Other ']')}
                                                )
                                              ]
                                              action: [
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:_sFile)
                                                      op: Equal
                                                      rhs: 
                                                        {
                                                          (CommandSubPart
                                                            command_list: 
                                                              (CommandList
                                                                children: [
                                                                  (Pipeline
                                                                    children: [
                                                                      (C {(echo)} 
                                                                        {($ VSub_Name '$tmpSLICE')}
                                                                      )
                                                                      (C {(sed)} {(SQ <'s|/|-|g'>)})
                                                                    ]
                                                                    negated: F
                                                                  )
                                                                ]
                                                              )
                                                            left_token: <Left_Backtick '`'>
                                                            spids: [4811 4823]
                                                          )
                                                        }
                                                      spids: [4810]
                                                    )
                                                  ]
                                                  spids: [4810]
                                                )
                                                (SimpleCommand
                                                  words: [{(echo)} {(DQ (disk) (${ VSub_Name disknum))}]
                                                  redirects: [
                                                    (Redir
                                                      op_id: Redir_Great
                                                      fd: 16777215
                                                      arg_word: 
                                                        {(${ VSub_Name SLICECFGDIR) (/) 
                                                          ($ VSub_Name '$_sFile')
                                                        }
                                                      spids: [4835]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [16777215 4807]
                                            )
                                          ]
                                          spids: [16777215 4843]
                                        )
                                        (C {(unset)} {(BMANAGER)} {(PTYPE)} {(DISK)} {(MIRRORDISK)} 
                                          {(MIRRORBAL)} {(PSCHEME)} {(IMAGE)}
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:disknum)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (ArithSubPart
                                                    anode: 
                                                      (ArithBinary
                                                        op_id: Arith_Plus
                                                        left: (ArithVarRef name:disknum)
                                                        right: (ArithWord w:{(Lit_Digits 1)})
                                                      )
                                                    spids: [4869 4874]
                                                  )
                                                }
                                              spids: [4868]
                                            )
                                          ]
                                          spids: [4868]
                                        )
                                      ]
                                      spids: [16777215 4051]
                                    )
                                  ]
                                  else_action: [
                                    (C {(exit_err)} 
                                      {
                                        (DQ 
                                          (
'ERROR: commitDiskPart was called without procceding disk<num>= and partition= entries!!!'
                                          )
                                        )
                                      }
                                    )
                                  ]
                                  spids: [4877 4888]
                                )
                              ]
                              spids: [16777215 4015]
                            )
                          ]
                          spids: [16777215 4891]
                        )
                      ]
                      spids: [2982 4895]
                    )
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: 16777215
                      arg_word: {(${ VSub_Name CFGF)}
                      spids: [4897]
                    )
                  ]
                )
              ]
              spids: [2901]
            )
          spids: [2897 2900]
        )
      terminator: <Op_Semi ';'>
    )
    (FuncDef
      name: init_gmirror
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_mNum)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [4920]
                )
              ]
              spids: [4918]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_mBal)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [4926]
                )
              ]
              spids: [4924]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_mDisk)
                  op: Equal
                  rhs: {($ VSub_Number '$3')}
                  spids: [4932]
                )
              ]
              spids: [4930]
            )
            (C {(rc_halt)} 
              {
                (DQ ('gmirror label -vb ') (${ VSub_Name _mBal) (' gm') (${ VSub_Name _mNum) (' ') 
                  (${ VSub_Name _mDisk)
                )
              }
            )
            (C {(sleep)} {(3)})
          ]
          spids: [4915]
        )
      spids: [4911 4914]
    )
    (Sentence
      child: 
        (FuncDef
          name: stop_gjournal
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:_gdsk)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (Pipeline
                                      children: [
                                        (C {(echo)} {($ VSub_Number '$1')})
                                        (C {(sed)} {(SQ <'s|/dev/||g'>)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                              left_token: <Left_Backtick '`'>
                              spids: [4980 4992]
                            )
                          )
                        }
                      spids: [4978]
                    )
                  ]
                  spids: [4978]
                )
                (SimpleCommand
                  words: [{(ls)} {(/dev/) (${ VSub_Name _gdsk) (Lit_Other '*') (.journal)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [5009]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 2
                      arg_word: {(/dev/null)}
                      spids: [5012]
                    )
                  ]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')})
                      ]
                      action: [
                        (C {(cd)} {(/dev)})
                        (ForEach
                          iter_name: i
                          iter_words: [
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(ls)} {(${ VSub_Name _gdsk) (Lit_Other '*') (.journal)})
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [5043 5051]
                              )
                            }
                          ]
                          do_arg_iter: F
                          body: 
                            (DoGroup
                              children: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:rawjournal)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (Pipeline
                                                      children: [
                                                        (C {(echo)} {(${ VSub_Name i)})
                                                        (C {(cut)} {(-d)} {(SQ <.>)} {(-f)} {(1)})
                                                      ]
                                                      negated: F
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_Backtick '`'>
                                              spids: [5059 5079]
                                            )
                                          )
                                        }
                                      spids: [5057]
                                    )
                                  ]
                                  spids: [5057]
                                )
                                (SimpleCommand
                                  words: [{(gjournal)} {(stop)} {(-f)} {(${ VSub_Name rawjournal)}]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_DGreat
                                      fd: 16777215
                                      arg_word: {(${ VSub_Name LOGOUT)}
                                      spids: [5093]
                                    )
                                    (Redir
                                      op_id: Redir_DGreat
                                      fd: 2
                                      arg_word: {(${ VSub_Name LOGOUT)}
                                      spids: [5098]
                                    )
                                  ]
                                )
                                (SimpleCommand
                                  words: [{(gjournal)} {(clear)} {(${ VSub_Name rawjournal)}]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_DGreat
                                      fd: 16777215
                                      arg_word: {(${ VSub_Name LOGOUT)}
                                      spids: [5112]
                                    )
                                    (Redir
                                      op_id: Redir_DGreat
                                      fd: 2
                                      arg_word: {(${ VSub_Name LOGOUT)}
                                      spids: [5117]
                                    )
                                  ]
                                )
                              ]
                              spids: [5054 5123]
                            )
                          spids: [5042 16777215]
                        )
                      ]
                      spids: [16777215 5029]
                    )
                  ]
                  spids: [16777215 5126]
                )
              ]
              spids: [4975]
            )
          spids: [4971 4974]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: wipe_metadata
          body: 
            (BraceGroup
              children: [
                (C {(echo_log)} {(DQ ('Wiping possible metadata on ') (${ VSub_Number 1))})
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:SIZE)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (Pipeline
                                      children: [
                                        (C {(diskinfo)} {(${ VSub_Number 1)})
                                        (C {(awk)} {(SQ <'{print int($3/(1024*1024)) }'>)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                              left_token: <Left_Backtick '`'>
                              spids: [5158 5172]
                            )
                          )
                        }
                      spids: [5156]
                    )
                  ]
                  spids: [5154]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SIZE'))} {(-gt)} {(DQ (5))} 
                              {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(rc_halt)} 
                          {(DQ ('dd if=/dev/zero of=') (${ VSub_Number 1) (' bs=1m count=1'))}
                        )
                        (C {(rc_nohalt)} 
                          {
                            (DQ ('dd if=/dev/zero of=') (${ VSub_Number 1) (' bs=1m oseek=') 
                              (ArithSubPart
                                anode: 
                                  (ArithBinary
                                    op_id: Arith_Minus
                                    left: (ArithVarRef name:SIZE)
                                    right: (ArithWord w:{(Lit_Digits 4)})
                                  )
                                spids: [5216 5221]
                              )
                            )
                          }
                        )
                      ]
                      spids: [16777215 5194]
                    )
                  ]
                  else_action: [
                    (C {(rc_nohalt)} {(DQ ('dd if=/dev/zero of=') (${ VSub_Number 1) (' bs=128k'))})
                  ]
                  spids: [5225 5239]
                )
              ]
              spids: [5141]
            )
          spids: [5137 5140]
        )
      terminator: <Op_Semi ';'>
    )
    (FuncDef
      name: init_apm_full_disk
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_intDISK)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [5256]
                )
              ]
              spids: [5256]
            )
            (SimpleCommand
              words: [{(sysctl)} {(kern.geom.debugflags) (Lit_Other '=') (16)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {(${ VSub_Name LOGOUT)}
                  spids: [5272]
                )
                (Redir
                  op_id: Redir_DGreat
                  fd: 2
                  arg_word: {(${ VSub_Name LOGOUT)}
                  spids: [5277]
                )
              ]
            )
            (C {(stop_gjournal)} {(DQ (${ VSub_Name _intDISK))})
            (C {(delete_all_gpart)} {(DQ (${ VSub_Name _intDISK))})
            (C {(sleep)} {(2)})
            (C {(echo_log)} {(DQ ('Running gpart on ') (${ VSub_Name _intDISK))})
            (C {(rc_halt)} {(DQ ('gpart create -s APM ') (${ VSub_Name _intDISK))})
            (C {(rc_halt)} {(DQ ('gpart add -s 800k -t freebsd-boot ') (${ VSub_Name _intDISK))})
            (C {(echo_log)} {(DQ ('Stamping boot sector on ') (${ VSub_Name _intDISK))})
            (C {(rc_halt)} {(DQ ('gpart bootcode -p /boot/boot1.hfs -i 1 ') (${ VSub_Name _intDISK))})
          ]
          spids: [5253]
        )
      spids: [5249 5252]
    )
    (FuncDef
      name: init_gpt_full_disk
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_intDISK)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [5383]
                )
              ]
              spids: [5383]
            )
            (SimpleCommand
              words: [{(sysctl)} {(kern.geom.debugflags) (Lit_Other '=') (16)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {(${ VSub_Name LOGOUT)}
                  spids: [5399]
                )
                (Redir
                  op_id: Redir_DGreat
                  fd: 2
                  arg_word: {(${ VSub_Name LOGOUT)}
                  spids: [5404]
                )
              ]
            )
            (C {(stop_gjournal)} {(DQ (${ VSub_Name _intDISK))})
            (C {(delete_all_gpart)} {(DQ (${ VSub_Name _intDISK))})
            (C {(sleep)} {(2)})
            (C {(echo_log)} {(DQ ('Running gpart on ') (${ VSub_Name _intDISK))})
            (C {(rc_halt)} {(DQ ('gpart create -s GPT ') (${ VSub_Name _intDISK))})
            (C {(rc_halt)} {(DQ ('gpart add -b 34 -s 128 -t freebsd-boot ') (${ VSub_Name _intDISK))})
            (C {(echo_log)} {(DQ ('Stamping boot sector on ') (${ VSub_Name _intDISK))})
            (C {(rc_halt)} {(DQ ('gpart bootcode -b /boot/pmbr ') (${ VSub_Name _intDISK))})
          ]
          spids: [5380]
        )
      spids: [5376 5379]
    )
    (FuncDef
      name: init_mbr_full_disk
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_intDISK)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [5510]
                )
              ]
              spids: [5510]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_intBOOT)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [5514]
                )
              ]
              spids: [5514]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:startblock)
                  op: Equal
                  rhs: {(DQ (2016))}
                  spids: [5520]
                )
              ]
              spids: [5520]
            )
            (SimpleCommand
              words: [{(sysctl)} {(kern.geom.debugflags) (Lit_Other '=') (16)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {(${ VSub_Name LOGOUT)}
                  spids: [5537]
                )
                (Redir
                  op_id: Redir_DGreat
                  fd: 2
                  arg_word: {(${ VSub_Name LOGOUT)}
                  spids: [5542]
                )
              ]
            )
            (C {(stop_gjournal)} {(DQ (${ VSub_Name _intDISK))})
            (C {(delete_all_gpart)} {(DQ (${ VSub_Name _intDISK))})
            (C {(sleep)} {(2)})
            (C {(echo_log)} {(DQ ('Running gpart on ') (${ VSub_Name _intDISK))})
            (C {(rc_halt)} {(DQ ('gpart create -s mbr -f active ') (${ VSub_Name _intDISK))})
            (C {(echo_log)} {(DQ ('Running gpart add on ') (${ VSub_Name _intDISK))})
            (C {(rc_halt)} {(DQ ('gpart add -a 4k -t freebsd -i 1 ') (${ VSub_Name _intDISK))})
            (C {(sleep)} {(2)})
            (C {(wipe_metadata)} {(DQ (${ VSub_Name _intDISK) (s1))})
            (C {(rc_halt)} {(DQ ('gpart set -a active -i 1 ') (${ VSub_Name _intDISK))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$_intBOOT'))} {(Lit_Other '=')} 
                          {(DQ (bsd))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo_log)} {(DQ ('Stamping boot0 on ') (${ VSub_Name _intDISK))})
                    (C {(rc_halt)} {(DQ ('gpart bootcode -b /boot/boot0 ') (${ VSub_Name _intDISK))})
                  ]
                  spids: [16777215 5680]
                )
              ]
              else_action: [
                (C {(echo_log)} {(DQ ('Stamping boot1 on ') (${ VSub_Name _intDISK))})
                (C {(rc_halt)} {(DQ ('gpart bootcode -b /boot/boot1 ') (${ VSub_Name _intDISK))})
              ]
              spids: [5703 5726]
            )
          ]
          spids: [5507]
        )
      spids: [5503 5506]
    )
    (Sentence
      child: 
        (FuncDef
          name: run_gpart_full
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:DISK)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [5742]
                    )
                  ]
                  spids: [5742]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:BOOT)
                      op: Equal
                      rhs: {($ VSub_Number '$2')}
                      spids: [5746]
                    )
                  ]
                  spids: [5746]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:SCHEME)
                      op: Equal
                      rhs: {($ VSub_Number '$3')}
                      spids: [5750]
                    )
                  ]
                  spids: [5750]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SCHEME'))} {(Lit_Other '=')} 
                              {(DQ (APM))} {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(init_apm_full_disk)} {(DQ ($ VSub_Name '$DISK'))})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:slice)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (Pipeline
                                            children: [
                                              (C {(echo)} {(DQ (${ VSub_Name DISK) (':1:apm'))})
                                              (C {(sed)} {(SQ <'s|/|-|g'>)})
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                    left_token: <Left_Backtick '`'>
                                    spids: [5784 5801]
                                  )
                                }
                              spids: [5783]
                            )
                          ]
                          spids: [5783]
                        )
                      ]
                      spids: [16777215 5773]
                    )
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SCHEME'))} {(Lit_Other '=')} 
                              {(DQ (MBR))} {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(init_mbr_full_disk)} {(DQ ($ VSub_Name '$DISK'))} 
                          {(DQ ($ VSub_Name '$BOOT'))}
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:slice)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (Pipeline
                                            children: [
                                              (C {(echo)} {(DQ (${ VSub_Name DISK) (':1:mbr'))})
                                              (C {(sed)} {(SQ <'s|/|-|g'>)})
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                    left_token: <Left_Backtick '`'>
                                    spids: [5837 5854]
                                  )
                                }
                              spids: [5836]
                            )
                          ]
                          spids: [5836]
                        )
                      ]
                      spids: [5804 5822]
                    )
                  ]
                  else_action: [
                    (C {(init_gpt_full_disk)} {(DQ ($ VSub_Name '$DISK'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:slice)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} {(DQ (${ VSub_Name DISK) (':1:gpt'))})
                                          (C {(sed)} {(SQ <'s|/|-|g'>)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [5868 5885]
                              )
                            }
                          spids: [5867]
                        )
                      ]
                      spids: [5867]
                    )
                  ]
                  spids: [5857 5888]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$WORKINGSLICES'))} 
                          {(Lit_Other ']')}
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:WORKINGSLICES)
                              op: Equal
                              rhs: {(DQ (${ VSub_Name slice))}
                              spids: [5912]
                            )
                          ]
                          spids: [5912]
                        )
                        (C {(export)} {(WORKINGSLICES)})
                      ]
                      spids: [16777215 5909]
                    )
                  ]
                  else_action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:WORKINGSLICES)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name WORKINGSLICES) (' ') (${ VSub_Name slice))}
                          spids: [5928]
                        )
                      ]
                      spids: [5928]
                    )
                    (C {(export)} {(WORKINGSLICES)})
                  ]
                  spids: [5925 5945]
                )
              ]
              spids: [5739]
            )
          spids: [5735 5738]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: run_gpart_gpt_part
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:DISK)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [5961]
                    )
                  ]
                  spids: [5961]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:slice)
                      op: Equal
                      rhs: {(DQ (${ VSub_Number 1) (p) (${ VSub_Number 3))}
                      spids: [5970]
                    )
                  ]
                  spids: [5970]
                )
                (SimpleCommand
                  words: [{(sysctl)} {(kern.geom.debugflags) (Lit_Other '=') (16)}]
                  redirects: [
                    (Redir
                      op_id: Redir_DGreat
                      fd: 16777215
                      arg_word: {(${ VSub_Name LOGOUT)}
                      spids: [5994]
                    )
                    (Redir
                      op_id: Redir_DGreat
                      fd: 2
                      arg_word: {(${ VSub_Name LOGOUT)}
                      spids: [5999]
                    )
                  ]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:slicenum)
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$3'))}
                      spids: [6010]
                    )
                  ]
                  spids: [6010]
                )
                (C {(stop_gjournal)} {(DQ (${ VSub_Name slice))})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (C {(Lit_Other '[')} {(-e)} {(DQ (${ VSub_Name slice) (b))} {(Lit_Other ']')})
                      ]
                      action: [
                        (SimpleCommand
                          words: [{(swapoff)} {(${ VSub_Name slice) (b)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [6061]
                            )
                            (Redir
                              op_id: Redir_Great
                              fd: 2
                              arg_word: {(/dev/null)}
                              spids: [6064]
                            )
                          ]
                        )
                        (SimpleCommand
                          words: [{(swapoff)} {(${ VSub_Name slice) (b.eli)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [6075]
                            )
                            (Redir
                              op_id: Redir_Great
                              fd: 2
                              arg_word: {(/dev/null)}
                              spids: [6078]
                            )
                          ]
                        )
                      ]
                      spids: [16777215 6051]
                    )
                  ]
                  spids: [16777215 6082]
                )
                (C {(echo_log)} {(DQ ('Running gpart modify on ') (${ VSub_Name DISK))})
                (C {(rc_halt)} 
                  {
                    (DQ ('gpart modify -t freebsd -i ') (${ VSub_Name slicenum) (' ') 
                      (${ VSub_Name DISK)
                    )
                  }
                )
                (C {(sleep)} {(2)})
                (C {(wipe_metadata)} {(DQ (${ VSub_Name slice))})
                (C {(sleep)} {(4)})
                (C {(rc_halt)} 
                  {(DQ ('gpart create -s BSD ') (${ VSub_Name DISK) (p) (${ VSub_Name slicenum))}
                )
                (C {(sleep)} {(4)})
                (C {(rc_halt)} 
                  {
                    (DQ ('gpart bootcode -b /boot/boot ') (${ VSub_Name DISK) (p) 
                      (${ VSub_Name slicenum)
                    )
                  }
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:slice)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(echo)} 
                                        {
                                          (DQ (${ VSub_Number 1) (':') (${ VSub_Number 3) (':gptslice'))
                                        }
                                      )
                                      (C {(sed)} {(SQ <'s|/|-|g'>)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [6184 6205]
                          )
                        }
                      spids: [6183]
                    )
                  ]
                  spids: [6183]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$WORKINGSLICES'))} 
                          {(Lit_Other ']')}
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:WORKINGSLICES)
                              op: Equal
                              rhs: {(DQ (${ VSub_Name slice))}
                              spids: [6229]
                            )
                          ]
                          spids: [6229]
                        )
                        (C {(export)} {(WORKINGSLICES)})
                      ]
                      spids: [16777215 6226]
                    )
                  ]
                  else_action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:WORKINGSLICES)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name WORKINGSLICES) (' ') (${ VSub_Name slice))}
                          spids: [6245]
                        )
                      ]
                      spids: [6245]
                    )
                    (C {(export)} {(WORKINGSLICES)})
                  ]
                  spids: [6242 6262]
                )
              ]
              spids: [5958]
            )
          spids: [5954 5957]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: run_gpart_slice
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:DISK)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [6278]
                    )
                  ]
                  spids: [6278]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [(C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')})]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:BMANAGER)
                              op: Equal
                              rhs: {(DQ ($ VSub_Number '$2'))}
                              spids: [6298]
                            )
                          ]
                          spids: [6298]
                        )
                      ]
                      spids: [16777215 6295]
                    )
                  ]
                  spids: [16777215 6304]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:slice)
                      op: Equal
                      rhs: {(DQ (${ VSub_Number 1) (s) (${ VSub_Number 3))}
                      spids: [6312]
                    )
                  ]
                  spids: [6312]
                )
                (SimpleCommand
                  words: [{(sysctl)} {(kern.geom.debugflags) (Lit_Other '=') (16)}]
                  redirects: [
                    (Redir
                      op_id: Redir_DGreat
                      fd: 16777215
                      arg_word: {(${ VSub_Name LOGOUT)}
                      spids: [6336]
                    )
                    (Redir
                      op_id: Redir_DGreat
                      fd: 2
                      arg_word: {(${ VSub_Name LOGOUT)}
                      spids: [6341]
                    )
                  ]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:slicenum)
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$3'))}
                      spids: [6352]
                    )
                  ]
                  spids: [6352]
                )
                (C {(stop_gjournal)} {(DQ (${ VSub_Name slice))})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (C {(Lit_Other '[')} {(-e)} {(DQ (${ VSub_Name slice) (b))} {(Lit_Other ']')})
                      ]
                      action: [
                        (SimpleCommand
                          words: [{(swapoff)} {(${ VSub_Name slice) (b)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [6403]
                            )
                            (Redir
                              op_id: Redir_Great
                              fd: 2
                              arg_word: {(/dev/null)}
                              spids: [6406]
                            )
                          ]
                        )
                        (SimpleCommand
                          words: [{(swapoff)} {(${ VSub_Name slice) (b.eli)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [6417]
                            )
                            (Redir
                              op_id: Redir_Great
                              fd: 2
                              arg_word: {(/dev/null)}
                              spids: [6420]
                            )
                          ]
                        )
                      ]
                      spids: [16777215 6393]
                    )
                  ]
                  spids: [16777215 6424]
                )
                (C {(echo_log)} {(DQ ('Running gpart modify on ') (${ VSub_Name DISK))})
                (C {(rc_halt)} 
                  {
                    (DQ ('gpart modify -t freebsd -i ') (${ VSub_Name slicenum) (' ') 
                      (${ VSub_Name DISK)
                    )
                  }
                )
                (C {(sleep)} {(2)})
                (C {(wipe_metadata)} {(DQ (${ VSub_Name slice))})
                (C {(sleep)} {(1)})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (C {(Lit_Other '[')} {(DQ (${ VSub_Name BMANAGER))} {(Lit_Other '=')} {(DQ (bsd))} 
                          {(Lit_Other ']')}
                        )
                      ]
                      action: [
                        (C {(echo_log)} {(DQ ('Stamping boot sector on ') (${ VSub_Name DISK))})
                        (C {(rc_halt)} {(DQ ('gpart bootcode -b /boot/boot0 ') (${ VSub_Name DISK))})
                      ]
                      spids: [16777215 6497]
                    )
                  ]
                  spids: [16777215 6520]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:slice)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(echo)} 
                                        {(DQ (${ VSub_Number 1) (':') (${ VSub_Number 3) (':mbr'))}
                                      )
                                      (C {(sed)} {(SQ <'s|/|-|g'>)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [6529 6550]
                          )
                        }
                      spids: [6528]
                    )
                  ]
                  spids: [6528]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$WORKINGSLICES'))} 
                          {(Lit_Other ']')}
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:WORKINGSLICES)
                              op: Equal
                              rhs: {(DQ (${ VSub_Name slice))}
                              spids: [6574]
                            )
                          ]
                          spids: [6574]
                        )
                        (C {(export)} {(WORKINGSLICES)})
                      ]
                      spids: [16777215 6571]
                    )
                  ]
                  else_action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:WORKINGSLICES)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name WORKINGSLICES) (' ') (${ VSub_Name slice))}
                          spids: [6590]
                        )
                      ]
                      spids: [6590]
                    )
                    (C {(export)} {(WORKINGSLICES)})
                  ]
                  spids: [6587 6607]
                )
              ]
              spids: [6275]
            )
          spids: [6271 6274]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: run_gpart_free
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:DISK)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [6623]
                    )
                  ]
                  spids: [6623]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:SLICENUM)
                      op: Equal
                      rhs: {($ VSub_Number '$2')}
                      spids: [6627]
                    )
                  ]
                  spids: [6627]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [(C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Number '$3'))} {(Lit_Other ']')})]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:BMANAGER)
                              op: Equal
                              rhs: {(DQ ($ VSub_Number '$3'))}
                              spids: [6647]
                            )
                          ]
                          spids: [6647]
                        )
                      ]
                      spids: [16777215 6644]
                    )
                  ]
                  spids: [16777215 6653]
                )
                (SimpleCommand
                  words: [{(sysctl)} {(kern.geom.debugflags) (Lit_Other '=') (16)}]
                  redirects: [
                    (Redir
                      op_id: Redir_DGreat
                      fd: 16777215
                      arg_word: {(${ VSub_Name LOGOUT)}
                      spids: [6667]
                    )
                    (Redir
                      op_id: Redir_DGreat
                      fd: 2
                      arg_word: {(${ VSub_Name LOGOUT)}
                      spids: [6672]
                    )
                  ]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:slice)
                      op: Equal
                      rhs: {(DQ (${ VSub_Name DISK) (s) (${ VSub_Name SLICENUM))}
                      spids: [6679]
                    )
                  ]
                  spids: [6679]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:slicenum)
                      op: Equal
                      rhs: {(DQ (${ VSub_Name SLICENUM))}
                      spids: [6691]
                    )
                  ]
                  spids: [6691]
                )
                (SimpleCommand
                  words: [{(gpart)} {(show)} {(${ VSub_Name DISK)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [6713]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 2
                      arg_word: {(/dev/null)}
                      spids: [6716]
                    )
                  ]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(-a)} 
                              {(DQ ($ VSub_Name '$SLICENUM'))} {(Lit_Other '=')} {(DQ (1))} {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(echo_log)} {(DQ ('Initializing disk, no existing MBR setup'))})
                        (C {(rc_halt)} {(DQ ('gpart create -s mbr ') (${ VSub_Name DISK))})
                      ]
                      spids: [16777215 6746]
                    )
                  ]
                  spids: [16777215 6766]
                )
                (C {(echo_log)} {(DQ ('Running gpart on ') (${ VSub_Name DISK))})
                (C {(rc_halt)} 
                  {
                    (DQ ('gpart add -a 4k -t freebsd -i ') (${ VSub_Name slicenum) (' ') 
                      (${ VSub_Name DISK)
                    )
                  }
                )
                (C {(sleep)} {(2)})
                (C {(wipe_metadata)} {(DQ (${ VSub_Name slice))})
                (C {(sleep)} {(1)})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (C {(Lit_Other '[')} {(DQ (${ VSub_Name BMANAGER))} {(Lit_Other '=')} {(DQ (bsd))} 
                          {(Lit_Other ']')}
                        )
                      ]
                      action: [
                        (C {(echo_log)} {(DQ ('Stamping boot sector on ') (${ VSub_Name DISK))})
                        (C {(rc_halt)} {(DQ ('gpart bootcode -b /boot/boot0 ') (${ VSub_Name DISK))})
                      ]
                      spids: [16777215 6839]
                    )
                  ]
                  spids: [16777215 6862]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:slice)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(echo)} 
                                        {
                                          (DQ (${ VSub_Name DISK) (':') (${ VSub_Name SLICENUM) (':mbr'))
                                        }
                                      )
                                      (C {(sed)} {(SQ <'s|/|-|g'>)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [6867 6888]
                          )
                        }
                      spids: [6866]
                    )
                  ]
                  spids: [6866]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$WORKINGSLICES'))} 
                          {(Lit_Other ']')}
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:WORKINGSLICES)
                              op: Equal
                              rhs: {(DQ (${ VSub_Name slice))}
                              spids: [6911]
                            )
                          ]
                          spids: [6911]
                        )
                        (C {(export)} {(WORKINGSLICES)})
                      ]
                      spids: [16777215 6908]
                    )
                  ]
                  else_action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:WORKINGSLICES)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name WORKINGSLICES) (' ') (${ VSub_Name slice))}
                          spids: [6927]
                        )
                      ]
                      spids: [6927]
                    )
                    (C {(export)} {(WORKINGSLICES)})
                  ]
                  spids: [6924 6944]
                )
              ]
              spids: [6620]
            )
          spids: [6616 6619]
        )
      terminator: <Op_Semi ';'>
    )
  ]
)