(command.BraceGroup
  children: [
    (C {<.>} {</DietPi/dietpi/func/dietpi-globals>})
    (C {<G_CHECK_ROOT_USER>})
    (C {<G_CHECK_ROOTFS_RW>})
    (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-Software>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FP_INSTALLED_FILE)
          op: assign_op.Equal
          rhs: {(SQ </DietPi/dietpi/.installed>)}
          spids: [135]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FP_INSTALLED_FILE_TEMP)
          op: assign_op.Equal
          rhs: {(SQ </tmp/dietpi-software.installed>)}
          spids: [141]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FP_DIETPIAUTOMATION_LOG)
          op: assign_op.Equal
          rhs: {(SQ </root/DietPi-Automation.log>)}
          spids: [148]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FP_DIETPI_DEDICATED_USBDRIVE)
          op: assign_op.Equal
          rhs: {(SQ )}
          spids: [159]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:UNINSTALL_FILE)
          op: assign_op.Equal
          rhs: {(SQ </tmp/dietpi_uninstall_list>)}
          spids: [169]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FOLDER_MUSIC)
          op: assign_op.Equal
          rhs: {(SQ <Music>)}
          spids: [180]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FOLDER_PICTURES)
          op: assign_op.Equal
          rhs: {(SQ <Pictures>)}
          spids: [186]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FOLDER_VIDEO)
          op: assign_op.Equal
          rhs: {(SQ <Video>)}
          spids: [192]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FOLDER_DOWNLOADS)
          op: assign_op.Equal
          rhs: {(SQ <downloads>)}
          spids: [198]
        )
      ]
    )
    (command.ShFunction
      name: Write_InstallFileList
      body: 
        (command.BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'write_software_in_pending_state='> <0>})
            (C {<local>} 
              {<Id.Lit_VarLike 'fp_target='> (DQ ($ Id.VSub_DollarName '$FP_INSTALLED_FILE'))}
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} 
                          {(DQ <temp>)} {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:fp_target)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$FP_INSTALLED_FILE_TEMP'))}
                          spids: [249]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:write_software_in_pending_state)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [255]
                        )
                      ]
                    )
                  ]
                  spids: [228 245]
                )
              ]
            )
            (command.Simple
              words: [{<rm>} {(DQ ($ Id.VSub_DollarName '$fp_target'))}]
              redirects: [(redir.Redir op:<Id.Redir_AndGreat '&>'> fd:-1 arg_word:{</dev/null>})]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {($ Id.VSub_DollarName '$i')}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                      right: 
                                        (arith_expr.Unary
                                          op_id: Id.Arith_Bang
                                          child: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  ($ Id.VSub_DollarName 
'$write_software_in_pending_state'
                                                  )
                                                }
                                            )
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [
                                {<echo>}
                                {<-e>}
                                {
                                  (DQ <'aSOFTWARE_INSTALL_STATE['> ($ Id.VSub_DollarName '$i') <']=0'>)
                                }
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$fp_target'))}
                                )
                              ]
                            )
                          ]
                          spids: [307 332]
                        )
                      ]
                      else_action: [
                        (command.Simple
                          words: [
                            {<echo>}
                            {<-e>}
                            {
                              (DQ <'aSOFTWARE_INSTALL_STATE['> ($ Id.VSub_DollarName '$i') <']='> 
                                (braced_var_sub
                                  token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                  bracket_op: 
                                    (bracket_op.ArrayIndex
                                      expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                    )
                                )
                              )
                            }
                          ]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_DGreat '>>'>
                              fd: -1
                              arg_word: {(DQ ($ Id.VSub_DollarName '$fp_target'))}
                            )
                          ]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir.HereDoc
                  op: <Id.Redir_DLess '<<'>
                  fd: -1
                  here_begin: {<_EOF_>}
                  here_end_span_id: 440
                  stdin_parts: [
                    <'\n'>
                    <'#DietPi Choice System: SSH Server\n'>
                    <'INDEX_SSHSERVER_CURRENT='>
                    ($ Id.VSub_DollarName '$INDEX_SSHSERVER_CURRENT')
                    <'\n'>
                    <'INDEX_SSHSERVER_TARGET='>
                    ($ Id.VSub_DollarName '$INDEX_SSHSERVER_TARGET')
                    <'\n'>
                    <'\n'>
                    <'#DietPi Choice System: File Server\n'>
                    <'INDEX_FILESERVER_CURRENT='>
                    ($ Id.VSub_DollarName '$INDEX_FILESERVER_CURRENT')
                    <'\n'>
                    <'INDEX_FILESERVER_TARGET='>
                    ($ Id.VSub_DollarName '$INDEX_FILESERVER_TARGET')
                    <'\n'>
                    <'\n'>
                    <'#DietPi Choice System: Logging\n'>
                    <'INDEX_LOGGING_CURRENT='>
                    ($ Id.VSub_DollarName '$INDEX_LOGGING_CURRENT')
                    <'\n'>
                    <'INDEX_LOGGING_TARGET='>
                    ($ Id.VSub_DollarName '$INDEX_LOGGING_TARGET')
                    <'\n'>
                    <'\n'>
                    <'#DietPi Preference System: Webserver base\n'>
                    <'INDEX_WEBSERVER_CURRENT='>
                    ($ Id.VSub_DollarName '$INDEX_WEBSERVER_CURRENT')
                    <'\n'>
                    <'INDEX_WEBSERVER_TARGET='>
                    ($ Id.VSub_DollarName '$INDEX_WEBSERVER_TARGET')
                    <'\n'>
                    <'\n'>
                  ]
                )
                (redir.Redir
                  op: <Id.Redir_DGreat '>>'>
                  fd: -1
                  arg_word: {(DQ ($ Id.VSub_DollarName '$fp_target'))}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Read_InstallFileList
      body: 
        (command.BraceGroup
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'fp_target='> (DQ ($ Id.VSub_DollarName '$FP_INSTALLED_FILE'))}
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} 
                          {(DQ <temp>)} {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:fp_target)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$FP_INSTALLED_FILE_TEMP'))}
                          spids: [484]
                        )
                      ]
                    )
                  ]
                  spids: [463 480]
                )
              ]
            )
            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Reading database, please wait...'>)})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$fp_target'))} 
                          {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<.>} {(DQ ($ Id.VSub_DollarName '$fp_target'))})]
                  spids: [513 526]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$G_DIETPI_INSTALL_STAGE')}
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_SSHSERVER_CURRENT)
                          op: assign_op.Equal
                          rhs: {<-1>}
                          spids: [564]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_SSHSERVER_TARGET)
                          op: assign_op.Equal
                          rhs: {<-1>}
                          spids: [568]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_FILESERVER_CURRENT)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [573]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_FILESERVER_TARGET)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [577]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_LOGGING_CURRENT)
                          op: assign_op.Equal
                          rhs: {<-1>}
                          spids: [582]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_LOGGING_TARGET)
                          op: assign_op.Equal
                          rhs: {<-1>}
                          spids: [586]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_WEBSERVER_CURRENT)
                          op: assign_op.Equal
                          rhs: {<-2>}
                          spids: [591]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_WEBSERVER_TARGET)
                          op: assign_op.Equal
                          rhs: {<-2>}
                          spids: [595]
                        )
                      ]
                    )
                  ]
                  spids: [546 560]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Reset_NTPD
      body: 
        (command.BraceGroup
          children: [
            (command.Simple
              words: [{<killall>} {<-w>} {</DietPi/dietpi/func/run_ntpd>}]
              redirects: [(redir.Redir op:<Id.Redir_AndGreat '&>'> fd:-1 arg_word:{</dev/null>})]
            )
            (command.Simple
              words: [{<killall>} {<-w>} {<ntpd>}]
              redirects: [(redir.Redir op:<Id.Redir_AndGreat '&>'> fd:-1 arg_word:{</dev/null>})]
            )
            (command.Simple
              words: [{<rm>} {</var/lib/dietpi/.ntpd_exit_status>}]
              redirects: [(redir.Redir op:<Id.Redir_AndGreat '&>'> fd:-1 arg_word:{</dev/null>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: Check_NTPD_Status
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.ArithWord
                              w: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    command_list: 
                                      (command.CommandList
                                        children: [
                                          (command.Pipeline
                                            children: [
                                              (C {<route>})
                                              (C {<awk>} {(SQ <'{print $4}'>)})
                                              (C {<grep>} {<-ci>} {<-m1>} {(SQ <UG>)})
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                  )
                                }
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: [(C {<true>})]
                      body: 
                        (command.DoGroup
                          children: [
                            (C {</DietPi/dietpi/func/run_ntpd>} {<status>})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_NEqual
                                              left: (arith_expr.ArithWord w:{($ Id.VSub_QMark '$?')})
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Unary
                                                      op_id: Id.Arith_Bang
                                                      child: 
                                                        (arith_expr.ArithWord
                                                          w: {($ Id.VSub_DollarName '$G_USER_INPUTS')}
                                                        )
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [(C {<Reset_NTPD>})]
                                          spids: [730 742]
                                        )
                                      ]
                                      else_action: [
                                        (C {<whiptail>} {<--title>} {(DQ <'NTPD update failed'>)} 
                                          {<--yesno>} 
                                          {
                                            (DQ 
                                              <
'NTPD timesync has not yet completed, or, failed to update. To prevent issues with outdated system time during installations, you must either:'
                                              > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'n - Retry NTPD update (recommended)'> <Id.Lit_Other '\\'> 
                                              <
'nThis will kill the current NTPD process and retry NTPD update. If this fails again, please use option below.'
                                              > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'n - Override (last resort)'> <Id.Lit_Other '\\'> 
                                              <
'nThis will override NTPD update checks, however, your system time will be out of sync and may cause issues during installations.'
                                              > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                                              <
'nYou can check the NTPD logs for debugging purposes with:'
                                              > <Id.Lit_Other '\\'> <'n   cat /var/log/ntpd.log'>
                                            )
                                          } {<--yes-button>} {(DQ <Override>)} {<--no-button>} {(DQ <Retry>)} {<--defaultno>} {<--backtitle>} 
                                          {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<20>} {<80>}
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DParen
                                                      child: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_DEqual
                                                          left: 
                                                            (arith_expr.ArithWord
                                                              w: {($ Id.VSub_QMark '$?')}
                                                            )
                                                          right: 
                                                            (arith_expr.ArithWord
                                                              w: {<Id.Lit_Digits 1>}
                                                            )
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                              action: [(C {<Reset_NTPD>})]
                                              spids: [815 829]
                                            )
                                          ]
                                          else_action: [
                                            (C {<Reset_NTPD>})
                                            (command.Simple
                                              words: [{<echo>} {<0>}]
                                              redirects: [
                                                (redir.Redir
                                                  op: <Id.Redir_Great '>'>
                                                  fd: -1
                                                  arg_word: {</var/lib/dietpi/.ntpd_exit_status>}
                                                )
                                              ]
                                            )
                                            (command.Simple
                                              words: [{<echo>} {<1>}]
                                              redirects: [
                                                (redir.Redir
                                                  op: <Id.Redir_Great '>'>
                                                  fd: -1
                                                  arg_word: {</var/lib/dietpi/.ntpd_override>}
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [708 722]
                                )
                              ]
                              else_action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [658 690]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DISABLE_REBOOT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [911]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GLOBAL_PW)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Pipeline
                        children: [
                          (C {<cat>} {</DietPi/dietpi.txt>})
                          (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_GLOBAL_PASSWORD='>)})
                          (C {<sed>} {(SQ <'s/.*=//'>)})
                        ]
                        negated: F
                      )
                    ]
                  )
              )
            }
          spids: [920]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-n>} 
                  {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))} {<Id.Lit_RBracket ']'>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:GLOBAL_PW)
                  op: assign_op.Equal
                  rhs: {(SQ <dietpi>)}
                  spids: [965]
                )
              ]
            )
          ]
          spids: [946 961]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:RAM_TOTAL)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Pipeline
                        children: [
                          (C {<free>} {<-m>})
                          (C {<grep>} {<-m1>} {(SQ <'Mem:'>)})
                          (C {<awk>} {(SQ <'{print $2}'>)})
                        ]
                        negated: F
                      )
                    ]
                  )
              )
            }
          spids: [980]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GOSTARTINSTALL)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1011]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
          op: assign_op.Equal
          rhs: {(SQ )}
          spids: [1015]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INSTALL_DESCRIPTION)
          op: assign_op.Equal
          rhs: {(SQ <DietPi>)}
          spids: [1020]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:USER_EMONHUB_APIKEY_COMPLETED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1031]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:USER_EMONHUB_APIKEY_CURRENT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1035]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WIFIHOTSPOT_RTL8188C_DEVICE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1039]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:USER_LINUX_AUTOINSTALL_PROMPT_DISPLAYED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1043]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FP_PHP_BASE_DIR)
          op: assign_op.Equal
          rhs: {(SQ </etc/php/7.0>)}
          spids: [1052]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PHP_APT_PACKAGE_NAME)
          op: assign_op.Equal
          rhs: {(SQ <php>)}
          spids: [1058]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DParen
                  child: 
                    (arith_expr.Binary
                      op_id: Id.Arith_Less
                      left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$G_DISTRO')})
                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                    )
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:FP_PHP_BASE_DIR)
                  op: assign_op.Equal
                  rhs: {(SQ </etc/php5>)}
                  spids: [1082]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PHP_APT_PACKAGE_NAME)
                  op: assign_op.Equal
                  rhs: {(SQ <php5>)}
                  spids: [1088]
                )
              ]
            )
          ]
          spids: [1064 1078]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:USBDRIVE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1103]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INSTALL_DIETPI_CHOICESMADE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1112]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INSTALL_LINUX_CHOICESMADE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1116]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INSTALL_SSHSERVER_CHOICESMADE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1129]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INDEX_SSHSERVER_CURRENT)
          op: assign_op.Equal
          rhs: {<-1>}
          spids: [1133]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INDEX_SSHSERVER_TARGET)
          op: assign_op.Equal
          rhs: {<-1>}
          spids: [1137]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INSTALL_FILESERVER_CHOICESMADE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1150]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INDEX_FILESERVER_CURRENT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1154]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INDEX_FILESERVER_TARGET)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1158]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INSTALL_LOGGING_CHOICESMADE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1171]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INDEX_LOGGING_CURRENT)
          op: assign_op.Equal
          rhs: {<-1>}
          spids: [1175]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INDEX_LOGGING_TARGET)
          op: assign_op.Equal
          rhs: {<-1>}
          spids: [1179]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INDEX_WEBSERVER_CURRENT)
          op: assign_op.Equal
          rhs: {<-2>}
          spids: [1192]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INDEX_WEBSERVER_TARGET)
          op: assign_op.Equal
          rhs: {<-2>}
          spids: [1196]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_CATEGORIES_DIETPI)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1209]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MAX_SOFTWARE_CATEGORIES_DIETPI)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1216]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_CATEGORIES_LINUX)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1221]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MAX_SOFTWARE_CATEGORIES_LINUX)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1225]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TOTAL_SOFTWARE_INDEXS)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1238]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TOTAL_SOFTWARE_INDEXS_HARDLIMIT)
          op: assign_op.Equal
          rhs: {<171>}
          spids: [1242]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1250]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_CATEGORY_INDEX)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1258]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_TYPE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1265]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_INSTALL_STATE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1273]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_WHIP_NAME)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1281]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_WHIP_DESC)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1288]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FP_ONLINEDOC_URL)
          op: assign_op.Equal
          rhs: {(SQ <'http://dietpi.com/phpbb/viewtopic.php?'>)}
          spids: [1296]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_ONLINEDOC_URL)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1302]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_REQUIRES_USERINPUT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1311]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_REQUIRES_ALSA)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1320]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_REQUIRES_XSERVERXORG)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1324]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_REQUIRES_MYSQL)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1328]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_REQUIRES_SQLITE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1332]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_REQUIRES_WEBSERVER)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1336]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_REQUIRES_DESKTOP)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1340]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_REQUIRES_GIT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1344]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_REQUIRES_BUILDESSENTIAL)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1348]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_REQUIRES_RSYSLOG)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1352]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_REQUIRES_FFMPEG)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1356]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_REQUIRES_ORACLEJAVA)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1360]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:aSOFTWARE_REQUIRES_NODEJS)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [1364]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MAX_G_HW_MODEL)
          op: assign_op.Equal
          rhs: {<71>}
          spids: [1373]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MAX_G_HW_ARCH)
          op: assign_op.Equal
          rhs: {<10>}
          spids: [1380]
        )
      ]
    )
    (C {<declare>} {<-A>} {<aSOFTWARE_AVAIL_G_HW_MODEL>})
    (C {<declare>} {<-A>} {<aSOFTWARE_AVAIL_G_HW_ARCH>})
    (command.ShFunction
      name: Software_Arrays_Init
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aSOFTWARE_CATEGORIES_DIETPI)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Desktops\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Remote Desktop Access\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Media Systems\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80BitTorrent / Download Tools\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Cloud / Backups\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Emulation & Gaming\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Social / Search\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Camera / Surveillance\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80WiFi Hotspot\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80System Stats / Management\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Remote Access\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Hardware Projects\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80System Security\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Webserver Stacks\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Pi-hole\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80File Servers\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80VPN Servers\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Advanced Networking\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Home Automation\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Printing\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                        ]
                      )
                    }
                  spids: [1685]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:MAX_SOFTWARE_CATEGORIES_DIETPI)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: <Id.VSub_Name aSOFTWARE_CATEGORIES_DIETPI>
                        prefix_op: (Id.VSub_Pound)
                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                      )
                    }
                  spids: [1855]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aSOFTWARE_CATEGORIES_LINUX)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80SSH Clients\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Fileserver Clients\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80File Managers\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80System\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Shared Libraries\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Networking / Tools\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Development / Programming\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Text Editors\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                          {
                            (DQ 
                              <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Desktop Utilities\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                              >
                            )
                          }
                        ]
                      )
                    }
                  spids: [1870]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:MAX_SOFTWARE_CATEGORIES_LINUX)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: <Id.VSub_Name aSOFTWARE_CATEGORIES_LINUX>
                        prefix_op: (Id.VSub_Pound)
                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                      )
                    }
                  spids: [1952]
                )
              ]
            )
            (C {<local>} {<Id.Lit_VarLike 'debug_array_count='> <0>})
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: 
                    (arith_expr.ArithWord
                      w: {($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS_HARDLIMIT')}
                    )
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: (sh_lhs_expr.Name name:j)
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LessEqual
                          left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike j>)
                          right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: (sh_lhs_expr.Name name:j)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_AVAIL_G_HW_MODEL
                                      index: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_Comma
                                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                          right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$j')})
                                        )
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [2032]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                )
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: 
                    (arith_expr.ArithWord
                      w: {($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS_HARDLIMIT')}
                    )
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: (sh_lhs_expr.Name name:j)
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LessEqual
                          left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike j>)
                          right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_ARCH')})
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: (sh_lhs_expr.Name name:j)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                                      index: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_Comma
                                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                          right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$j')})
                                        )
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [2107]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                )
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: 
                    (arith_expr.ArithWord
                      w: {($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS_HARDLIMIT')}
                    )
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_ONLINEDOC_URL
                              index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                            )
                          op: assign_op.Equal
                          rhs: {(SQ )}
                          spids: [2171]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: 
                    (arith_expr.ArithWord
                      w: {($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS_HARDLIMIT')}
                    )
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_REQUIRES_USERINPUT
                              index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [2224]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_REQUIRES_ALSA
                              index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [2233]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_REQUIRES_XSERVERXORG
                              index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [2241]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_REQUIRES_MYSQL
                              index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [2249]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_REQUIRES_SQLITE
                              index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [2257]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_REQUIRES_WEBSERVER
                              index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [2265]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_REQUIRES_DESKTOP
                              index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [2273]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_REQUIRES_GIT
                              index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [2281]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_REQUIRES_BUILDESSENTIAL
                              index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [2289]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_REQUIRES_RSYSLOG
                              index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [2297]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_REQUIRES_FFMPEG
                              index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [2305]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_REQUIRES_ORACLEJAVA
                              index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [2313]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_REQUIRES_NODEJS
                              index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [2321]
                        )
                      ]
                    )
                  ]
                )
            )
            (C {<local>} {<Id.Lit_VarLike 'index_current='> <0>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<23>}
                  spids: [2366]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <LXDE>)}
                  spids: [2371]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'ultra lightweight desktop'>)}
                  spids: [2381]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2391]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2399]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [2407]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_XSERVERXORG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [2415]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5#p42'>)}
                  spids: [2423]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<24>}
                  spids: [2438]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <MATE>)}
                  spids: [2442]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'desktop enviroment'>)}
                  spids: [2452]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2462]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2470]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [2478]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_XSERVERXORG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [2486]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=60#p2073'>)}
                  spids: [2494]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<25>}
                  spids: [2509]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <XFCE>)}
                  spids: [2514]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'lightweight desktop environment'>)}
                  spids: [2524]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2534]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2542]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [2550]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_XSERVERXORG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [2558]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=70#p2203'>)}
                  spids: [2566]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<26>}
                  spids: [2581]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <GNUStep>)}
                  spids: [2586]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'lightweight based on OpenStep'>)}
                  spids: [2596]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2606]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2614]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [2622]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_XSERVERXORG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [2630]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=60#p2072'>)}
                  spids: [2638]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<113>}
                  spids: [2653]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Chromium>)}
                  spids: [2658]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'(Optional) web browser'>)}
                  spids: [2668]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2678]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2686]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_DESKTOP
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [2694]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'http://dietpi.com/phpbb/viewtopic.php?f=8&t=5&p=3011#p3011'>)}
                  spids: [2702]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2717]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_MODEL
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 20>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2734]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<27>}
                  spids: [2755]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'TightVNC Server'>)}
                  spids: [2760]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'desktop for remote connection'>)}
                  spids: [2770]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [2780]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2788]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_DESKTOP
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [2796]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=30#p408'>)}
                  spids: [2804]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2819]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_GreatEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$G_DISTRO')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: (sh_lhs_expr.Name name:i)
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                          right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: (sh_lhs_expr.Name name:i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_AVAIL_G_HW_MODEL
                                      index: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_Comma
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$index_current')}
                                            )
                                          right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                        )
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [2877]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [2836 2850]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<28>}
                  spids: [2902]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'VNC4 Server'>)}
                  spids: [2907]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'desktop for remote connection'>)}
                  spids: [2917]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [2927]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2935]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_DESKTOP
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [2943]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=30#p408'>)}
                  spids: [2951]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<29>}
                  spids: [2966]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <XRDP>)}
                  spids: [2971]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'remote desktop protocol (rdp) server'>)}
                  spids: [2981]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [2991]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2999]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_DESKTOP
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3007]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=70#p2074'>)}
                  spids: [3015]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<30>}
                  spids: [3030]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <NoMachine>)}
                  spids: [3035]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'multi-platform server and client access'>)}
                  spids: [3045]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3055]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [3063]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_DESKTOP
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3071]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=60#p2071'>)}
                  spids: [3079]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [3094]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<120>}
                  spids: [3111]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'RealVNC Server'>)}
                  spids: [3116]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'desktop for remote connection'>)}
                  spids: [3126]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3136]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [3144]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_DESKTOP
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3152]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=4149#p4149'>)}
                  spids: [3160]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [3198]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<31>}
                  spids: [3223]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Kodi>)}
                  spids: [3228]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'the media centre for linux'>)}
                  spids: [3238]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [3248]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [3256]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3264]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_XSERVERXORG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3272]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5#p43'>)}
                  spids: [3280]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 20>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [3318]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<32>}
                  spids: [3339]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <YMPD>)}
                  spids: [3344]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'lightweight web interface music player for mpd'>)}
                  spids: [3354]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [3364]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [3372]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3380]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5#p50'>)}
                  spids: [3388]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<119>}
                  spids: [3403]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <CAVA>)}
                  spids: [3408]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'optional: console audio vis for mpd'>)}
                  spids: [3418]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [3428]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [3436]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3444]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=3928#p3928'>)}
                  spids: [3452]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [3467]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<33>}
                  spids: [3484]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'SubSonic 5'>)}
                  spids: [3489]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface media streaming server'>)}
                  spids: [3499]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [3509]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [3517]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3525]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_FFMPEG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3533]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ORACLEJAVA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3541]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3549]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=30#p213'>)}
                  spids: [3557]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<34>}
                  spids: [3572]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'SubSonic 6'>)}
                  spids: [3577]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface media streaming server'>)}
                  spids: [3587]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [3597]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [3605]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3613]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_FFMPEG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3621]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ORACLEJAVA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3629]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3637]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=30#p213'>)}
                  spids: [3645]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<35>}
                  spids: [3660]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <SqueezeBox>)}
                  spids: [3665]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'logitech media server (lms)'>)}
                  spids: [3675]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [3685]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [3693]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1009#p1009'>)}
                  spids: [3701]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<36>}
                  spids: [3716]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <SqueezeLite>)}
                  spids: [3721]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'audio player for lms & squeezebox'>)}
                  spids: [3731]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [3741]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [3749]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3757]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1009#p1009'>)}
                  spids: [3765]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<37>}
                  spids: [3780]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Shairport Sync'>)}
                  spids: [3785]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'airplay audio player with multiroom sync'>)}
                  spids: [3795]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [3805]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [3813]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3821]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1221#p1221'>)}
                  spids: [3829]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [3844]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<38>}
                  spids: [3861]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <BruteFIR>)}
                  spids: [3866]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'eq and digital room correction via alsa'>)}
                  spids: [3876]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [3886]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [3894]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [3902]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=57#p57'>)}
                  spids: [3910]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [3948]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<39>}
                  spids: [3969]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <ReadyMedia>)}
                  spids: [3974]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'(MiniDLNA) media streaming server (dlna, upnp)'>)}
                  spids: [3984]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [3994]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4002]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [4010]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5#p49'>)}
                  spids: [4018]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<40>}
                  spids: [4033]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Ampache>)}
                  spids: [4038]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface media streaming server'>)}
                  spids: [4048]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [4058]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4066]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [4074]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_GIT
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [4082]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_FFMPEG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [4090]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [4098]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_MYSQL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [4106]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=40#p554'>)}
                  spids: [4114]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<41>}
                  spids: [4129]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Emby Server'>)}
                  spids: [4134]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface media streaming server'>)}
                  spids: [4144]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [4154]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4162]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_FFMPEG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [4170]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1789#p1789'>)}
                  spids: [4178]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4193]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4210]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<42>}
                  spids: [4227]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Plex Media Server'>)}
                  spids: [4232]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface media streaming server'>)}
                  spids: [4242]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [4252]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4260]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1949#p1949'>)}
                  spids: [4268]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4283]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<43>}
                  spids: [4300]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Murmur>)}
                  spids: [4305]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'mumble voip server'>)}
                  spids: [4315]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [4325]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4333]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1691#p1691'>)}
                  spids: [4341]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<118>}
                  spids: [4356]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Mopidy>)}
                  spids: [4361]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface music & radio player'>)}
                  spids: [4371]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [4381]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4389]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=80#p3611'>)}
                  spids: [4397]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [4407]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<121>}
                  spids: [4420]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Roon Bridge'>)}
                  spids: [4425]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Turns device into Roon capable audio player'>)}
                  spids: [4435]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [4445]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4453]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=80#p4153'>)}
                  spids: [4461]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [4471]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_ARCH')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_ARCH
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [4507]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_ARCH
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [4551]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<124>}
                  spids: [4572]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'NAA daemon'>)}
                  spids: [4577]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'signalyst network audio adaptor (naa)'>)}
                  spids: [4587]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [4597]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4605]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=90#p4294'>)}
                  spids: [4613]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [4623]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_ARCH')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_ARCH
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [4659]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [4680]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<128>}
                  spids: [4697]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <MPD>)}
                  spids: [4702]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'music player daemon'>)}
                  spids: [4712]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [4722]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4730]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [4738]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ )}
                  spids: [4746]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<129>}
                  spids: [4760]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'O!MPD'>)}
                  spids: [4765]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'feature-rich, web interface audio player for mpd'>)}
                  spids: [4775]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [4785]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4793]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=5171#p5171'>)}
                  spids: [4801]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [4811]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [4819]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_MYSQL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [4827]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_MODEL
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 20>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4840]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<135>}
                  spids: [4857]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <IceCast>)}
                  spids: [4862]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Shoutcast streaming server (+DarkIce)'>)}
                  spids: [4872]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [4882]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4890]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [4898]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=6526#p6526'>)}
                  spids: [4906]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_MODEL
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 20>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4921]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<141>}
                  spids: [4938]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Spotify Connect Web'>)}
                  spids: [4943]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface for spotify premium'>)}
                  spids: [4953]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [4963]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4971]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=7013#p7013'>)}
                  spids: [4979]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [4989]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_ARCH')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_ARCH
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [5025]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5046]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<143>}
                  spids: [5063]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Koel>)}
                  spids: [5068]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface audio streamer'>)}
                  spids: [5078]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [5088]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [5096]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=7305#p7305'>)}
                  spids: [5104]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5114]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_MYSQL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5122]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_NODEJS
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5130]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_BUILDESSENTIAL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5138]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_FFMPEG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5146]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<146>}
                  spids: [5159]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <PlexPy>)}
                  spids: [5164]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'monitoring and tracking tool for Plex'>)}
                  spids: [5174]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [5184]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [5192]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=7463#p7463'>)}
                  spids: [5200]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_GIT
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5210]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [5223]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<148>}
                  spids: [5241]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'JRiver MC'>)}
                  spids: [5246]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'media centre'>)}
                  spids: [5256]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [5266]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [5274]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5282]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_XSERVERXORG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5290]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=110#p7536'>)}
                  spids: [5298]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [5336]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<154>}
                  spids: [5357]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Roon Server'>)}
                  spids: [5362]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Roon capable audio player and core'>)}
                  spids: [5372]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [5382]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [5390]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=7966#p7966'>)}
                  spids: [5398]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5408]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_FFMPEG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5416]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_ARCH')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_ARCH
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [5452]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5469]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<159>}
                  spids: [5486]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Allo>)}
                  spids: [5491]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface'>)}
                  spids: [5501]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [5511]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [5519]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ )}
                  spids: [5527]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5536]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5544]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_MYSQL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5552]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<160>}
                  spids: [5565]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Allo_update>)}
                  spids: [5570]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'quick reinstall/update web only'>)}
                  spids: [5580]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [5590]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [5598]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ )}
                  spids: [5606]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<163>}
                  spids: [5620]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Gmediarender>)}
                  spids: [5625]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'DLNA audio render/endpoint'>)}
                  spids: [5635]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [5645]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [5653]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5661]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=9012#p9012'>)}
                  spids: [5669]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<167>}
                  spids: [5684]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Raspotify>)}
                  spids: [5689]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'spotify connect client'>)}
                  spids: [5699]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [5709]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [5717]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5725]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=9368#p9368'>)}
                  spids: [5733]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [5748]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [5765]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<168>}
                  spids: [5782]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <moOde>)}
                  spids: [5787]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'audiophile-quality music playback'>)}
                  spids: [5797]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [5807]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [5815]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5823]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_SQLITE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5831]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_BUILDESSENTIAL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5839]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_GIT
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5847]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [5855]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <xxxxxxxxxxxxxxxxx>)}
                  spids: [5863]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [5901]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<44>}
                  spids: [5926]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Transmission>)}
                  spids: [5931]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'bittorrent server with web interface (c)'>)}
                  spids: [5941]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [5951]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [5959]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5#p46'>)}
                  spids: [5967]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<45>}
                  spids: [5982]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Deluge>)}
                  spids: [5987]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'bittorrent server with web interface (python)'>)}
                  spids: [5997]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [6007]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [6015]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=10#p61'>)}
                  spids: [6023]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<46>}
                  spids: [6038]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <qBitTorrent>)}
                  spids: [6043]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'bittorrent server with web interface (c++)'>)}
                  spids: [6053]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [6063]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [6071]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=70#p2272'>)}
                  spids: [6079]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<107>}
                  spids: [6094]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <rTorrent>)}
                  spids: [6099]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'bittorrent server with rutorrent web interface'>)}
                  spids: [6109]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [6119]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [6127]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [6135]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=2603#p2603'>)}
                  spids: [6147]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<116>}
                  spids: [6162]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <SickRage>)}
                  spids: [6167]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'automatically download TV shows'>)}
                  spids: [6177]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [6187]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [6195]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=3327#p3327'>)}
                  spids: [6203]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<132>}
                  spids: [6219]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Aria2>)}
                  spids: [6224]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'download manager with web interface'>)}
                  spids: [6234]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [6244]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [6252]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=6177#p6177'>)}
                  spids: [6260]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [6270]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_SQLITE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [6278]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<139>}
                  spids: [6291]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <SABnzbd>)}
                  spids: [6296]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'nzb download manager'>)}
                  spids: [6306]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [6316]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [6324]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=6747#p6747'>)}
                  spids: [6332]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_BUILDESSENTIAL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [6342]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<142>}
                  spids: [6355]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <CouchPotato>)}
                  spids: [6360]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'automatically download movies'>)}
                  spids: [6370]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [6380]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [6388]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=6747#p6747'>)}
                  spids: [6396]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_BUILDESSENTIAL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [6406]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_GIT
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [6414]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<144>}
                  spids: [6427]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Sonarr>)}
                  spids: [6432]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'automatically download TV shows'>)}
                  spids: [6442]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [6452]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [6460]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=7455#p7455'>)}
                  spids: [6468]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<145>}
                  spids: [6483]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Radarr>)}
                  spids: [6488]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'automatically download movies'>)}
                  spids: [6498]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [6508]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [6516]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=7457#p7457'>)}
                  spids: [6524]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<147>}
                  spids: [6539]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Jackett>)}
                  spids: [6544]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'api Support for your torrent trackers.'>)}
                  spids: [6554]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [6564]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [6572]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=7503#p7503'>)}
                  spids: [6580]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<149>}
                  spids: [6595]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <NZBget>)}
                  spids: [6600]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'nzb download manager'>)}
                  spids: [6610]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [6620]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [6628]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=7575#p7575'>)}
                  spids: [6636]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<155>}
                  spids: [6651]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'HTPC Manager'>)}
                  spids: [6656]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'manage your HTPC from anywhere'>)}
                  spids: [6666]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_GIT
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [6676]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [6684]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [6692]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=8043#p8043'>)}
                  spids: [6700]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<47>}
                  spids: [6719]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <ownCloud>)}
                  spids: [6724]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'your very own cloud (eg: dropbox)'>)}
                  spids: [6734]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [6744]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [6752]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [6760]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_MYSQL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [6768]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5#p47'>)}
                  spids: [6776]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<114>}
                  spids: [6791]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Nextcloud>)}
                  spids: [6796]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'A safe home for all your data'>)}
                  spids: [6806]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [6816]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [6824]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [6832]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_MYSQL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [6840]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=3026#p3026'>)}
                  spids: [6848]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<48>}
                  spids: [6863]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Pydio>)}
                  spids: [6868]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'feature-rich backup and sync server'>)}
                  spids: [6878]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [6888]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [6896]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [6904]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_MYSQL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [6912]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1064#p1064'>)}
                  spids: [6920]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<111>}
                  spids: [6935]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'UrBackup server'>)}
                  spids: [6940]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'full system backup server'>)}
                  spids: [6950]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [6960]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [6968]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=65#p65'>)}
                  spids: [6976]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [6991]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<49>}
                  spids: [7008]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Gogs>)}
                  spids: [7013]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'personal github server with web interface'>)}
                  spids: [7023]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [7033]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7041]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_GIT
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [7049]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_MYSQL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [7057]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=70#p2187'>)}
                  spids: [7065]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7080]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<50>}
                  spids: [7097]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Syncthing>)}
                  spids: [7102]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'backup and sync server with web interface'>)}
                  spids: [7112]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [7122]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7130]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=70#p2363'>)}
                  spids: [7138]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<134>}
                  spids: [7153]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Tonido>)}
                  spids: [7158]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'lightweight cloud based backup system'>)}
                  spids: [7168]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [7178]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7186]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=6476#p6476'>)}
                  spids: [7194]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7209]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7226]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<158>}
                  spids: [7243]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Minio>)}
                  spids: [7247]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'S3 compatible distributed object server'>)}
                  spids: [7257]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [7267]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7275]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<161>}
                  spids: [7288]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <FuguHub>)}
                  spids: [7292]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Lightweight WebDAV cloud (eg: dropbox) with a CMS'>)}
                  spids: [7302]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [7312]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7320]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7342]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<165>}
                  spids: [7359]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Gitea>)}
                  spids: [7364]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Git with a cup of tea'>)}
                  spids: [7374]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [7384]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7392]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_GIT
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [7400]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_MYSQL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [7408]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=9863#p9863'>)}
                  spids: [7416]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<108>}
                  spids: [7436]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <AmiBerry>)}
                  spids: [7441]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'amiga emulator'>)}
                  spids: [7451]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<5>}
                  spids: [7461]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7469]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [7477]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=64#p64'>)}
                  spids: [7485]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_XSERVERXORG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [7495]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [7531]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<51>}
                  spids: [7552]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <OpenTyrian>)}
                  spids: [7557]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'a classic retro game, addictive'>)}
                  spids: [7567]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<5>}
                  spids: [7577]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7585]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [7593]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_XSERVERXORG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [7601]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5#p45'>)}
                  spids: [7609]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [7647]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<112>}
                  spids: [7668]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <DXX-Rebirth>)}
                  spids: [7673]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Descent 1/2'>)}
                  spids: [7683]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<5>}
                  spids: [7693]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7701]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [7709]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=2963#p2963'>)}
                  spids: [7717]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [7755]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<52>}
                  spids: [7776]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Cuberite>)}
                  spids: [7781]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'minecraft server with web interface (c++)'>)}
                  spids: [7791]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<5>}
                  spids: [7801]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7809]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=60#p2068'>)}
                  spids: [7817]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7832]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<53>}
                  spids: [7849]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <MineOS>)}
                  spids: [7854]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'minecraft servers with web interface (java)'>)}
                  spids: [7864]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<5>}
                  spids: [7874]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7882]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_BUILDESSENTIAL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [7890]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_GIT
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [7898]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ORACLEJAVA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [7906]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_NODEJS
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [7914]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=60#p2069'>)}
                  spids: [7922]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<156>}
                  spids: [7937]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Steam>)}
                  spids: [7942]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <client>)}
                  spids: [7952]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<5>}
                  spids: [7962]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7970]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=8016#p8016'>)}
                  spids: [7978]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [7988]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_XSERVERXORG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [7996]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_DESKTOP
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8004]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [8040]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_MODEL
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 21>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8057]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<164>}
                  spids: [8074]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Nukkit>)}
                  spids: [8078]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'A nuclear-powered server for Minecraft Pocket Edition'>)}
                  spids: [8088]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<5>}
                  spids: [8098]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [8106]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ORACLEJAVA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8114]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<54>}
                  spids: [8131]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Forums>)}
                  spids: [8136]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'phpbb forums'>)}
                  spids: [8146]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<6>}
                  spids: [8156]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [8164]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8172]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_MYSQL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8180]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=5#p51'>)}
                  spids: [8188]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<55>}
                  spids: [8203]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Wordpress>)}
                  spids: [8208]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'website blog and publishing platform'>)}
                  spids: [8218]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<6>}
                  spids: [8228]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [8236]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8244]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_MYSQL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8252]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=30#p395'>)}
                  spids: [8260]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<56>}
                  spids: [8275]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Image Gallery'>)}
                  spids: [8280]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'website to host / browse your images'>)}
                  spids: [8290]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<6>}
                  spids: [8300]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [8308]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8316]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=40#p480'>)}
                  spids: [8324]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<57>}
                  spids: [8339]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <BaiKal>)}
                  spids: [8344]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'lightweight caldav + carddav server'>)}
                  spids: [8354]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<6>}
                  spids: [8364]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [8372]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8380]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_MYSQL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8388]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=50#p1502'>)}
                  spids: [8396]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<58>}
                  spids: [8411]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <OpenBazaar>)}
                  spids: [8416]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'decentralized peer to peer bitcoin market'>)}
                  spids: [8426]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<6>}
                  spids: [8436]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [8444]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_BUILDESSENTIAL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8452]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_GIT
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8460]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1796#p1796'>)}
                  spids: [8468]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<133>}
                  spids: [8483]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <YaCy>)}
                  spids: [8488]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'decentralized open source search engine'>)}
                  spids: [8498]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<6>}
                  spids: [8508]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [8516]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ORACLEJAVA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8524]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=6202#p6202'>)}
                  spids: [8532]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<59>}
                  spids: [8556]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi Cam'>)}
                  spids: [8561]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface & controls for your rpi camera'>)}
                  spids: [8571]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<7>}
                  spids: [8581]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [8589]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8597]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5#p48'>)}
                  spids: [8605]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [8643]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<136>}
                  spids: [8664]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <MotionEye>)}
                  spids: [8669]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface & surveillance for your camera'>)}
                  spids: [8679]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<7>}
                  spids: [8689]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [8697]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=6610#p6610'>)}
                  spids: [8705]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_FFMPEG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8715]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [8751]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<60>}
                  spids: [8781]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'WiFi Hotspot'>)}
                  spids: [8786]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'turn your device into a wifi hotspot'>)}
                  spids: [8796]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<8>}
                  spids: [8806]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [8814]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1207#p1207'>)}
                  spids: [8822]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_MODEL
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 20>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [8837]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<61>}
                  spids: [8854]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Tor Hotspot'>)}
                  spids: [8859]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'optional: route hotspot traffic through tor'>)}
                  spids: [8869]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<8>}
                  spids: [8879]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [8887]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1529#p1529'>)}
                  spids: [8895]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_MODEL
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 20>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [8910]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<62>}
                  spids: [8936]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <DietPi-Cloudshell>)}
                  spids: [8941]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'system stats displayed on lcd/panel'>)}
                  spids: [8951]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<9>}
                  spids: [8961]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [8969]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=20#p204'>)}
                  spids: [8977]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<63>}
                  spids: [8992]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <LinuxDash>)}
                  spids: [8997]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface system stats'>)}
                  spids: [9007]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<9>}
                  spids: [9017]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [9025]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [9033]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=20#p108'>)}
                  spids: [9041]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<64>}
                  spids: [9056]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <PhpSysInfo>)}
                  spids: [9061]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface system stats'>)}
                  spids: [9071]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<9>}
                  spids: [9081]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [9089]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [9097]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=30#p451'>)}
                  spids: [9105]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<65>}
                  spids: [9120]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <NetData>)}
                  spids: [9125]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'real-time performance monitoring'>)}
                  spids: [9135]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<9>}
                  spids: [9145]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [9153]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_NODEJS
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [9161]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=60#p1611'>)}
                  spids: [9169]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<66>}
                  spids: [9184]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <RPi-Monitor>)}
                  spids: [9189]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface system stats'>)}
                  spids: [9199]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<9>}
                  spids: [9209]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [9217]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=50#p1503'>)}
                  spids: [9225]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [9263]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<106>}
                  spids: [9284]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Raspcontrol>)}
                  spids: [9289]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface system stats'>)}
                  spids: [9299]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<9>}
                  spids: [9309]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [9317]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=20#p89'>)}
                  spids: [9325]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [9363]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<115>}
                  spids: [9384]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Webmin>)}
                  spids: [9389]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface system management'>)}
                  spids: [9399]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<9>}
                  spids: [9409]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [9417]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=80#p3047'>)}
                  spids: [9425]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_RSYSLOG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [9435]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<126>}
                  spids: [9448]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <OpenMediaVault>)}
                  spids: [9453]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'nas solution with web interface'>)}
                  spids: [9463]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<9>}
                  spids: [9473]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [9481]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=4859#p4859'>)}
                  spids: [9492]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [9502]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_USERINPUT
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [9510]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<162>}
                  spids: [9523]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Docker>)}
                  spids: [9528]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Build, ship, and run distributed applications'>)}
                  spids: [9538]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<9>}
                  spids: [9548]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [9556]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [9569]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<67>}
                  spids: [9590]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <NoIp>)}
                  spids: [9595]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'url website address for your device'>)}
                  spids: [9605]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<10>}
                  spids: [9615]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [9623]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=10#p58'>)}
                  spids: [9631]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<68>}
                  spids: [9646]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Remot3.it>)}
                  spids: [9651]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'(Weaved) access your device over the internet'>)}
                  spids: [9661]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<10>}
                  spids: [9671]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [9679]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=20#p188'>)}
                  spids: [9687]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_ARCH')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_ARCH
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [9725]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [9746]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_ARCH
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [9758]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<138>}
                  spids: [9775]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <VirtualHere>)}
                  spids: [9780]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'server: share USB devices over the network'>)}
                  spids: [9790]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<10>}
                  spids: [9800]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [9808]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=6709#p6709'>)}
                  spids: [9816]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<69>}
                  spids: [9840]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <RPi.GPIO>)}
                  spids: [9845]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'gpio interface library for rpi (python)'>)}
                  spids: [9855]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<11>}
                  spids: [9865]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [9873]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=40#p1065'>)}
                  spids: [9881]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [9919]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<70>}
                  spids: [9940]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <WiringPi>)}
                  spids: [9945]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'gpio interface library (c)'>)}
                  spids: [9955]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<11>}
                  spids: [9965]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [9973]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_BUILDESSENTIAL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [9981]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1066#p1066'>)}
                  spids: [9989]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 20>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [10027]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_MODEL
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 51>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [10048]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<71>}
                  spids: [10065]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <WebIOPi>)}
                  spids: [10070]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface to control rpi.gpio'>)}
                  spids: [10080]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<11>}
                  spids: [10090]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [10098]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_BUILDESSENTIAL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [10106]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=20#p189'>)}
                  spids: [10114]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [10152]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<72>}
                  spids: [10173]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <I2c>)}
                  spids: [10178]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'enables support for i2c based hardware'>)}
                  spids: [10188]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<11>}
                  spids: [10198]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [10206]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [10242]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<122>}
                  spids: [10263]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Node-Red>)}
                  spids: [10268]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'tool for wiring devices, APIs and online services'>)}
                  spids: [10278]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<11>}
                  spids: [10288]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [10296]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_NODEJS
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [10304]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_BUILDESSENTIAL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [10312]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=80#p4292'>)}
                  spids: [10320]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<123>}
                  spids: [10335]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Mosquitto '>)}
                  spids: [10340]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'MQTT messaging broker'>)}
                  spids: [10350]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<11>}
                  spids: [10360]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [10368]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=90#p4293'>)}
                  spids: [10376]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<131>}
                  spids: [10391]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Blynk Server'>)}
                  spids: [10396]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'msg controller for blynk mobile app and sbcs'>)}
                  spids: [10406]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<11>}
                  spids: [10416]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [10424]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=5901#p5901'>)}
                  spids: [10432]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ORACLEJAVA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [10442]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_NODEJS
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [10450]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_BUILDESSENTIAL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [10458]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<166>}
                  spids: [10471]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <PI-SPC>)}
                  spids: [10476]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'audiophonics pi-spc power control module'>)}
                  spids: [10486]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<11>}
                  spids: [10496]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [10504]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=9359#p9359'>)}
                  spids: [10512]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [10550]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<169>}
                  spids: [10571]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Google AIY'>)}
                  spids: [10576]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'voice kit'>)}
                  spids: [10586]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<11>}
                  spids: [10596]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [10604]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ALSA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [10612]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_GIT
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [10620]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=9486#p9486'>)}
                  spids: [10628]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [10666]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<73>}
                  spids: [10691]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Fail2Ban>)}
                  spids: [10696]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'prevents brute-force attacks with ip ban'>)}
                  spids: [10706]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<12>}
                  spids: [10716]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [10724]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_RSYSLOG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [10732]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=30#p452'>)}
                  spids: [10740]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<75>}
                  spids: [10763]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <LASP>)}
                  spids: [10768]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'apache2  | sqlite  | php'>)}
                  spids: [10778]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [10788]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [10796]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=10#p52'>)}
                  spids: [10804]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<76>}
                  spids: [10819]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <LAAP>)}
                  spids: [10824]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'apache2  | mariadb | php'>)}
                  spids: [10834]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [10844]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [10852]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=10#p52'>)}
                  spids: [10860]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<78>}
                  spids: [10875]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <LESP>)}
                  spids: [10880]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'nginx    | sqlite  | php'>)}
                  spids: [10890]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [10900]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [10908]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5#p5'>)}
                  spids: [10916]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<79>}
                  spids: [10931]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <LEAP>)}
                  spids: [10936]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'nginx    | mariadb | php'>)}
                  spids: [10946]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [10956]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [10964]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5#p5'>)}
                  spids: [10972]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<81>}
                  spids: [10987]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <LLSP>)}
                  spids: [10992]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'lighttpd | sqlite  | php'>)}
                  spids: [11002]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [11012]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [11020]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1335#p1335'>)}
                  spids: [11028]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<82>}
                  spids: [11043]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <LLAP>)}
                  spids: [11048]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'lighttpd | mariadb | php'>)}
                  spids: [11058]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [11068]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [11076]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1335#p1335'>)}
                  spids: [11084]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<83>}
                  spids: [11099]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Apache2>)}
                  spids: [11104]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <webserver>)}
                  spids: [11114]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [11124]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [11132]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=10#p52'>)}
                  spids: [11140]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<84>}
                  spids: [11155]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Lighttpd>)}
                  spids: [11160]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <webserver>)}
                  spids: [11170]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [11180]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [11188]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1335#p1335'>)}
                  spids: [11196]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<85>}
                  spids: [11211]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Nginx>)}
                  spids: [11216]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <webserver>)}
                  spids: [11226]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [11236]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [11244]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5#p5'>)}
                  spids: [11252]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<87>}
                  spids: [11267]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <SQlite>)}
                  spids: [11272]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <database>)}
                  spids: [11282]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [11292]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [11300]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1335#p1335'>)}
                  spids: [11308]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<88>}
                  spids: [11323]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <MariaDB>)}
                  spids: [11328]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <database>)}
                  spids: [11338]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [11348]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [11356]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1335#p1335'>)}
                  spids: [11364]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<89>}
                  spids: [11379]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <PHP>)}
                  spids: [11384]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <webserver>)}
                  spids: [11394]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [11404]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [11412]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1335#p1335'>)}
                  spids: [11420]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<90>}
                  spids: [11435]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <phpMyAdmin>)}
                  spids: [11440]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'optional mysql admin tools'>)}
                  spids: [11450]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [11460]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [11468]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [11476]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_MYSQL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [11484]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=10#p54'>)}
                  spids: [11492]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<91>}
                  spids: [11507]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Redis>)}
                  spids: [11512]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'optional non-sql database store'>)}
                  spids: [11522]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [11532]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [11540]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<92>}
                  spids: [11553]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <CertBot>)}
                  spids: [11558]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'free, ssl cert install allowing https://'>)}
                  spids: [11568]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [11578]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [11586]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1061#p1062'>)}
                  spids: [11594]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<125>}
                  spids: [11609]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Tomcat8>)}
                  spids: [11614]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'apache tomcat server'>)}
                  spids: [11624]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [11634]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [11642]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=4316#p4316'>)}
                  spids: [11650]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_ORACLEJAVA
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [11660]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<93>}
                  spids: [11677]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Pi-hole>)}
                  spids: [11682]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'block adverts for any device on your network'>)}
                  spids: [11692]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<14>}
                  spids: [11702]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [11710]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_GIT
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [11718]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [11726]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=20#p174'>)}
                  spids: [11734]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_USERINPUT
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [11744]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<94>}
                  spids: [11766]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <ProFTP>)}
                  spids: [11771]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'lightweight ftp server'>)}
                  spids: [11781]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<15>}
                  spids: [11791]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [11799]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=10#p55'>)}
                  spids: [11807]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<95>}
                  spids: [11822]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <vsFTPD>)}
                  spids: [11827]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'alternative ftp server'>)}
                  spids: [11837]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<15>}
                  spids: [11847]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [11855]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'?f=8&t=5&p=2820#p2820'>)}
                  spids: [11863]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<96>}
                  spids: [11878]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Samba>)}
                  spids: [11883]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'feature-rich file server'>)}
                  spids: [11893]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<15>}
                  spids: [11903]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [11911]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=10#p56'>)}
                  spids: [11919]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<109>}
                  spids: [11934]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <NFS>)}
                  spids: [11939]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'network file system server'>)}
                  spids: [11949]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<15>}
                  spids: [11959]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [11967]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=10#p56'>)}
                  spids: [11975]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<97>}
                  spids: [11999]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <OpenVPN>)}
                  spids: [12004]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'vpn server'>)}
                  spids: [12014]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<16>}
                  spids: [12024]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [12032]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_RSYSLOG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12040]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=613#p613'>)}
                  spids: [12048]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<117>}
                  spids: [12063]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <PiVPN>)}
                  spids: [12068]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'openvpn installer & management tool'>)}
                  spids: [12078]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<16>}
                  spids: [12088]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [12096]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_RSYSLOG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12104]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'http://dietpi.com/phpbb/viewtopic.php?f=8&t=5&p=3469#p3469'>)}
                  spids: [12112]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_USERINPUT
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12122]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<98>}
                  spids: [12145]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <HaProxy>)}
                  spids: [12150]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'high performance tcp/http load balancer'>)}
                  spids: [12160]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<17>}
                  spids: [12170]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [12178]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_BUILDESSENTIAL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12186]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=30#p221'>)}
                  spids: [12194]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<99>}
                  spids: [12213]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <EmonPi>)}
                  spids: [12218]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'energy usage addon board with web interface'>)}
                  spids: [12228]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<18>}
                  spids: [12238]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [12246]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=1529#p1525'>)}
                  spids: [12254]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [12292]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<100>}
                  spids: [12313]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Grasshopper>)}
                  spids: [12318]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web app to control bticino myhome'>)}
                  spids: [12328]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<18>}
                  spids: [12338]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [12346]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_WEBSERVER
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12354]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_SQLITE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12362]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=20#p70'>)}
                  spids: [12370]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [12408]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<157>}
                  spids: [12429]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Home Assistant'>)}
                  spids: [12434]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'open-source home automation platform'>)}
                  spids: [12444]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<18>}
                  spids: [12454]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [12462]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_GIT
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12470]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_BUILDESSENTIAL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12478]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_SQLITE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12486]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_FFMPEG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12494]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=20#p70'>)}
                  spids: [12502]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<137>}
                  spids: [12526]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <CloudPrint>)}
                  spids: [12531]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'print server for google cloud print'>)}
                  spids: [12541]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<19>}
                  spids: [12551]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [12559]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=6630#p6630'>)}
                  spids: [12567]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_RSYSLOG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12577]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$G_DISTRO')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_ARCH
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [12611]
                        )
                      ]
                    )
                  ]
                  spids: [12593 12607]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<153>}
                  spids: [12632]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <OctoPrint>)}
                  spids: [12637]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'web interface for controlling 3d printers'>)}
                  spids: [12647]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<19>}
                  spids: [12657]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [12665]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&p=7958#p7958'>)}
                  spids: [12673]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_BUILDESSENTIAL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12683]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_GIT
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12691]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [12724]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'OpenSSH Client'>)}
                  spids: [12729]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ )}
                  spids: [12739]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [12748]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12756]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12777]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Samba Client'>)}
                  spids: [12782]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'access network shares'>)}
                  spids: [12792]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12802]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12810]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <' dietpi-config > Network Options: NAS/Misc'>)}
                  spids: [12818]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [12832]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Curlftpfs>)}
                  spids: [12837]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'ftp client with filesystem mount'>)}
                  spids: [12847]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12857]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12865]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <' dietpi-config > Network Options: NAS/Misc'>)}
                  spids: [12873]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<110>}
                  spids: [12887]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'NFS Client'>)}
                  spids: [12892]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'network file system client'>)}
                  spids: [12902]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12912]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12920]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <' dietpi-config > Network Options: NAS/Misc'>)}
                  spids: [12928]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [12951]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <MC>)}
                  spids: [12956]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'midnight commander, powerful file manager'>)}
                  spids: [12966]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [12976]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [12984]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [12996]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <ViFM>)}
                  spids: [13001]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'file manager with vi bindings'>)}
                  spids: [13011]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [13021]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13029]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<5>}
                  spids: [13050]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <ALSA>)}
                  spids: [13055]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'linux sound system'>)}
                  spids: [13065]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [13075]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13083]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<6>}
                  spids: [13095]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Xserver>)}
                  spids: [13100]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'linux display system'>)}
                  spids: [13110]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [13120]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13128]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<151>}
                  spids: [13141]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Nvidia>)}
                  spids: [13146]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'display driver'>)}
                  spids: [13156]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [13166]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13174]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_XSERVERXORG
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13182]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [13214]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_AVAIL_G_HW_MODEL
                      index: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Comma
                          left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 21>})
                        )
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13231]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<170>}
                  spids: [13248]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <NTP>)}
                  spids: [13253]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'date and time sync'>)}
                  spids: [13263]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [13273]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [13281]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<7>}
                  spids: [13301]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <FFmpeg>)}
                  spids: [13306]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'audio & visual libary'>)}
                  spids: [13316]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [13326]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13334]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<8>}
                  spids: [13346]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Java>)}
                  spids: [13351]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'OpenJDK 8 + JRE libary'>)}
                  spids: [13361]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [13371]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13379]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<9>}
                  spids: [13391]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Node.js>)}
                  spids: [13396]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'javascript runtime'>)}
                  spids: [13406]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [13416]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13424]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<130>}
                  spids: [13436]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Python Pip'>)}
                  spids: [13441]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'python pip package installer'>)}
                  spids: [13451]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [13461]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13469]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<140>}
                  spids: [13481]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <SDL2>)}
                  spids: [13486]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'simple direct layer 2'>)}
                  spids: [13496]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [13506]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13514]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$MAX_G_HW_MODEL')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [13550]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<150>}
                  spids: [13571]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Mono>)}
                  spids: [13576]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'runtime libraries and repo'>)}
                  spids: [13586]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [13596]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13604]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<10>}
                  spids: [13622]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <iftop>)}
                  spids: [13627]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'displays bandwidth usage information'>)}
                  spids: [13637]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<5>}
                  spids: [13647]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13655]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<11>}
                  spids: [13667]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <IPTraf>)}
                  spids: [13672]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'interactive colorful ip lan monitor'>)}
                  spids: [13682]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<5>}
                  spids: [13692]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13700]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<12>}
                  spids: [13712]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Iperf>)}
                  spids: [13717]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'internet protocol bandwidth measuring tool'>)}
                  spids: [13727]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<5>}
                  spids: [13737]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13745]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [13757]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <MTR-Tiny>)}
                  spids: [13762]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'full screen ncurses traceroute tool'>)}
                  spids: [13772]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<5>}
                  spids: [13782]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13790]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<14>}
                  spids: [13802]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <nLoad>)}
                  spids: [13807]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'realtime console network usage monitor'>)}
                  spids: [13817]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<5>}
                  spids: [13827]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13835]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<15>}
                  spids: [13847]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <tcpdump>)}
                  spids: [13852]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'command-line network traffic analyzer'>)}
                  spids: [13862]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<5>}
                  spids: [13872]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13880]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<152>}
                  spids: [13892]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Avahi-Daemon>)}
                  spids: [13897]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'hostname broadcast (mac, pc bonjour)'>)}
                  spids: [13907]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<5>}
                  spids: [13917]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13925]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<16>}
                  spids: [13943]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Build-Essentials>)}
                  spids: [13948]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'common packages for compile'>)}
                  spids: [13958]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<6>}
                  spids: [13968]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [13976]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<17>}
                  spids: [13988]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Git Client'>)}
                  spids: [13993]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'git clone etc'>)}
                  spids: [14003]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<6>}
                  spids: [14013]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [14021]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<18>}
                  spids: [14042]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Emacs>)}
                  spids: [14047]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'gnu emacs editor'>)}
                  spids: [14057]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<7>}
                  spids: [14067]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [14075]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<19>}
                  spids: [14087]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Jed>)}
                  spids: [14092]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'editor for programmers'>)}
                  spids: [14102]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<7>}
                  spids: [14112]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [14120]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<20>}
                  spids: [14132]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Vim>)}
                  spids: [14137]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'vi enhanced text editor'>)}
                  spids: [14147]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<7>}
                  spids: [14157]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [14165]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<21>}
                  spids: [14177]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Vim-Tiny>)}
                  spids: [14182]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'compact release of vim'>)}
                  spids: [14192]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<7>}
                  spids: [14202]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [14210]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<127>}
                  spids: [14222]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <NeoVim>)}
                  spids: [14227]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'heavily refactored vim fork'>)}
                  spids: [14237]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<7>}
                  spids: [14247]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [14255]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Less
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$G_DISTRO')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_AVAIL_G_HW_MODEL
                              index: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Comma
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$index_current')}
                                    )
                                  right: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                    )
                                )
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [14286]
                        )
                      ]
                    )
                  ]
                  spids: [14268 14282]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<22>}
                  spids: [14316]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <QuiteRSS>)}
                  spids: [14321]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'cross-platform, free rss reader'>)}
                  spids: [14331]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<8>}
                  spids: [14341]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [14349]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_REQUIRES_DESKTOP
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [14357]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<101>}
                  spids: [14383]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'Log Rotate'>)}
                  spids: [14388]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'rotates log files'>)}
                  spids: [14398]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [14408]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [14416]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=20#p68'>)}
                  spids: [14424]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<102>}
                  spids: [14438]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Rsyslog>)}
                  spids: [14443]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'system logging'>)}
                  spids: [14453]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [14463]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [14471]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=20#p68'>)}
                  spids: [14479]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<103>}
                  spids: [14493]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <DietPi-Ramlog>)}
                  spids: [14498]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'minimal, optimized logging'>)}
                  spids: [14508]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [14518]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [14526]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=20#p68'>)}
                  spids: [14534]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<104>}
                  spids: [14561]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Dropbear>)}
                  spids: [14566]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'ssh server'>)}
                  spids: [14576]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [14586]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [14594]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=10#p62'>)}
                  spids: [14602]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<105>}
                  spids: [14616]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'OpenSSH Server'>)}
                  spids: [14621]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ )}
                  spids: [14631]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [14640]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [14648]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_ONLINEDOC_URL
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'f=8&t=5&start=10#p63'>)}
                  spids: [14656]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<74>}
                  spids: [14683]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'free index'>)}
                  spids: [14687]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ )}
                  spids: [14697]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [14706]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [14714]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<77>}
                  spids: [14722]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'free index'>)}
                  spids: [14726]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ )}
                  spids: [14736]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [14745]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [14753]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<80>}
                  spids: [14761]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'free index'>)}
                  spids: [14765]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ )}
                  spids: [14775]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [14784]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [14792]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index_current)
                  op: assign_op.Equal
                  rhs: {<86>}
                  spids: [14800]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_NAME
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <'free index'>)}
                  spids: [14804]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_WHIP_DESC
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {(SQ )}
                  spids: [14814]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_CATEGORY_INDEX
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [14823]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_TYPE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index_current')})
                    )
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [14831]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TOTAL_SOFTWARE_INDEXS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: <Id.VSub_Name aSOFTWARE_TYPE>
                        prefix_op: (Id.VSub_Pound)
                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                      )
                    }
                  spids: [14848]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [14889]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_INSTALL_STATE
                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 103>})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [14906]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_INSTALL_STATE
                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 104>})
                    )
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [14914]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Software_Arrays_Destroy
      body: 
        (command.BraceGroup
          children: [
            (C {<unset>} {<aSOFTWARE_CATEGORIES_DIETPI>})
            (C {<unset>} {<aSOFTWARE_CATEGORIES_LINUX>})
            (C {<unset>} {<aSOFTWARE_CATEGORY_INDEX>})
            (C {<unset>} {<aSOFTWARE_TYPE>})
            (C {<unset>} {<aSOFTWARE_WHIP_NAME>})
            (C {<unset>} {<aSOFTWARE_WHIP_DESC>})
            (C {<unset>} {<aSOFTWARE_ONLINEDOC_URL>})
            (C {<unset>} {<aSOFTWARE_INSTALL_STATE>})
            (C {<unset>} {<aSOFTWARE_REQUIRES_USERINPUT>})
            (C {<unset>} {<aSOFTWARE_REQUIRES_ALSA>})
            (C {<unset>} {<aSOFTWARE_REQUIRES_XSERVERXORG>})
            (C {<unset>} {<aSOFTWARE_REQUIRES_MYSQL>})
            (C {<unset>} {<aSOFTWARE_REQUIRES_SQLITE>})
            (C {<unset>} {<aSOFTWARE_REQUIRES_WEBSERVER>})
            (C {<unset>} {<aSOFTWARE_REQUIRES_DESKTOP>})
            (C {<unset>} {<aSOFTWARE_REQUIRES_GIT>})
            (C {<unset>} {<aSOFTWARE_REQUIRES_BUILDESSENTIAL>})
            (C {<unset>} {<aSOFTWARE_REQUIRES_RSYSLOG>})
            (C {<unset>} {<aSOFTWARE_REQUIRES_FFMPEG>})
            (C {<unset>} {<aSOFTWARE_REQUIRES_ORACLEJAVA>})
            (C {<unset>} {<aSOFTWARE_REQUIRES_NODEJS>})
            (C {<unset>} {<aSOFTWARE_AVAIL_G_HW_MODEL>})
            (C {<unset>} {<aSOFTWARE_AVAIL_G_HW_ARCH>})
          ]
        )
    )
    (command.ShFunction
      name: Install_Disable_Requires_UserInput
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Unary
                              op_id: Id.Arith_Bang
                              child: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$G_USER_INPUTS')})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: (sh_lhs_expr.Name name:i)
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                          right: 
                            (arith_expr.ArithWord
                              w: {($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')}
                            )
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: (sh_lhs_expr.Name name:i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DAmp
                                              left: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: 
                                                        {
                                                          (braced_var_sub
                                                            token: 
                                                              <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  (arith_expr.ArithWord
                                                                    w: {($ Id.VSub_DollarName '$i')}
                                                                  )
                                                              )
                                                          )
                                                        }
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                                )
                                              right: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: 
                                                          <Id.VSub_Name aSOFTWARE_REQUIRES_USERINPUT>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              name: aSOFTWARE_INSTALL_STATE
                                              index: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$i')}
                                                )
                                            )
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [15149]
                                        )
                                      ]
                                    )
                                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: 
                                                  (arith_expr.ArithWord
                                                    w: {($ Id.VSub_DollarName '$i')}
                                                  )
                                              )
                                          ) <': Requires user input and can not be automated.'>
                                        )
                                      }
                                    )
                                    (C {<G_DIETPI-NOTIFY>} {<1>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: 
                                                  (arith_expr.ArithWord
                                                    w: {($ Id.VSub_DollarName '$i')}
                                                  )
                                              )
                                          ) <": Will not be installed. Please run 'dietpi-software' to install.">
                                        )
                                      }
                                    )
                                  ]
                                  spids: [15112 15141]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [15073 15085]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Install_Flag_Prereq_Software
      body: 
        (command.BraceGroup
          children: [
            (C {<G_DIETPI-NOTIFY>} {<3>} {<DietPi-Software>} {(DQ <'Checking for prerequisite software'>)})
            (C {<local>} {<Id.Lit_VarLike 'index='> <0>})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 166>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 70>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [15274]
                        )
                      ]
                    )
                  ]
                  spids: [15251 15270]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 159>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 36>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [15314]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 37>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [15325]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 65>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [15352]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 96>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [15363]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 121>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [15375]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 124>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [15386]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 129>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [15401]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 163>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [15416]
                        )
                      ]
                    )
                  ]
                  spids: [15291 15310]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 168>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                            bracket_op: 
                              (bracket_op.ArrayIndex
                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 128>})
                              )
                          ) <' will be installed'>
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 128>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [15487]
                        )
                      ]
                    )
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                            bracket_op: 
                              (bracket_op.ArrayIndex
                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 78>})
                              )
                          ) <' will be installed'>
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 78>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [15514]
                        )
                      ]
                    )
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                            bracket_op: 
                              (bracket_op.ArrayIndex
                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                              )
                          ) <' will be installed'>
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [15541]
                        )
                      ]
                    )
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                            bracket_op: 
                              (bracket_op.ArrayIndex
                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 96>})
                              )
                          ) <' will be installed'>
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 96>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [15568]
                        )
                      ]
                    )
                  ]
                  spids: [15436 15455]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 169>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 69>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [15611]
                        )
                      ]
                    )
                  ]
                  spids: [15588 15607]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:index)
                  op: assign_op.Equal
                  rhs: {<152>}
                  spids: [15635]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DPipe
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DPipe
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DPipe
                                              left: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: 
                                                        {
                                                          (braced_var_sub
                                                            token: 
                                                              <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  (arith_expr.ArithWord
                                                                    w: {<Id.Lit_Digits 31>}
                                                                  )
                                                              )
                                                          )
                                                        }
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                                )
                                              right: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: 
                                                        {
                                                          (braced_var_sub
                                                            token: 
                                                              <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  (arith_expr.ArithWord
                                                                    w: {<Id.Lit_Digits 37>}
                                                                  )
                                                              )
                                                          )
                                                        }
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                                )
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {<Id.Lit_Digits 128>}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {<Id.Lit_Digits 138>}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {<Id.Lit_Digits 163>}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 168>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$index')}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [15755]
                                )
                              ]
                            )
                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                                    bracket_op: 
                                      (bracket_op.ArrayIndex
                                        expr: 
                                          (arith_expr.ArithWord
                                            w: {($ Id.VSub_DollarName '$index')}
                                          )
                                      )
                                  ) <' will be installed'>
                                )
                              }
                            )
                          ]
                          spids: [15732 15751]
                        )
                      ]
                    )
                  ]
                  spids: [15639 15728]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DPipe
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {<Id.Lit_Digits 41>}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {<Id.Lit_Digits 144>}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {<Id.Lit_Digits 145>}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 147>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {<Id.Lit_Digits 150>}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 150>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [15884]
                                )
                              ]
                            )
                            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Mono runtime libary will be installed'>)})
                          ]
                          spids: [15861 15880]
                        )
                      ]
                    )
                  ]
                  spids: [15796 15857]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 108>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {<Id.Lit_Digits 140>}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 140>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [15961]
                                )
                              ]
                            )
                            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'SDL2 will be installed'>)})
                          ]
                          spids: [15938 15957]
                        )
                      ]
                    )
                  ]
                  spids: [15915 15934]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DPipe
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DPipe
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DPipe
                                              left: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DPipe
                                                  left: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DPipe
                                                      left: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_DEqual
                                                          left: 
                                                            (arith_expr.ArithWord
                                                              w: 
                                                                {
                                                                  (braced_var_sub
                                                                    token: 
                                                                      <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                      >
                                                                    bracket_op: 
                                                                      (bracket_op.ArrayIndex
                                                                        expr: 
                                                                          (arith_expr.ArithWord
                                                                            w: {<Id.Lit_Digits 58>}
                                                                          )
                                                                      )
                                                                  )
                                                                }
                                                            )
                                                          right: 
                                                            (arith_expr.ArithWord
                                                              w: {<Id.Lit_Digits 1>}
                                                            )
                                                        )
                                                      right: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_DEqual
                                                          left: 
                                                            (arith_expr.ArithWord
                                                              w: 
                                                                {
                                                                  (braced_var_sub
                                                                    token: 
                                                                      <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                      >
                                                                    bracket_op: 
                                                                      (bracket_op.ArrayIndex
                                                                        expr: 
                                                                          (arith_expr.ArithWord
                                                                            w: {<Id.Lit_Digits 99>}
                                                                          )
                                                                      )
                                                                  )
                                                                }
                                                            )
                                                          right: 
                                                            (arith_expr.ArithWord
                                                              w: {<Id.Lit_Digits 1>}
                                                            )
                                                        )
                                                    )
                                                  right: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: 
                                                        (arith_expr.ArithWord
                                                          w: 
                                                            {
                                                              (braced_var_sub
                                                                token: 
                                                                  <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                  >
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      (arith_expr.ArithWord
                                                                        w: {<Id.Lit_Digits 118>}
                                                                      )
                                                                  )
                                                              )
                                                            }
                                                        )
                                                      right: 
                                                        (arith_expr.ArithWord
                                                          w: {<Id.Lit_Digits 1>}
                                                        )
                                                    )
                                                )
                                              right: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: 
                                                        {
                                                          (braced_var_sub
                                                            token: 
                                                              <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  (arith_expr.ArithWord
                                                                    w: {<Id.Lit_Digits 136>}
                                                                  )
                                                              )
                                                          )
                                                        }
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                                )
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {<Id.Lit_Digits 139>}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {<Id.Lit_Digits 142>}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {<Id.Lit_Digits 153>}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 169>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {<Id.Lit_Digits 130>}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 130>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [16136]
                                )
                              ]
                            )
                            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Python-Pip will be installed'>)})
                          ]
                          spids: [16113 16132]
                        )
                      ]
                    )
                  ]
                  spids: [15992 16109]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DPipe
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 32>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {<Id.Lit_Digits 119>}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 129>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {<Id.Lit_Digits 128>}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 128>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [16257]
                                )
                              ]
                            )
                            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'MPD will be installed'>)})
                          ]
                          spids: [16230 16249]
                        )
                      ]
                    )
                  ]
                  spids: [16179 16226]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 126>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 94>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 94>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [16338]
                                )
                              ]
                            )
                            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'ProFTP will be installed'>)})
                          ]
                          spids: [16315 16334]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 96>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 96>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [16388]
                                )
                              ]
                            )
                            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Samba Server will be installed'>)})
                          ]
                          spids: [16365 16384]
                        )
                      ]
                    )
                  ]
                  spids: [16288 16307]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 47>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 114>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 91>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 91>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [16479]
                                )
                              ]
                            )
                            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Redis will be installed'>)})
                          ]
                          spids: [16456 16475]
                        )
                      ]
                    )
                  ]
                  spids: [16419 16452]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 82>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 84>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16548]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 88>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16556]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 89>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16564]
                        )
                      ]
                    )
                  ]
                  spids: [16526 16545]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 81>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 84>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16602]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 87>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16610]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 89>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16618]
                        )
                      ]
                    )
                  ]
                  spids: [16580 16599]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 79>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 85>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16656]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 88>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16664]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 89>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16672]
                        )
                      ]
                    )
                  ]
                  spids: [16634 16653]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 78>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 85>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16710]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 87>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16718]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 89>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16726]
                        )
                      ]
                    )
                  ]
                  spids: [16688 16707]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 76>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 83>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16764]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 88>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16772]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 89>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16780]
                        )
                      ]
                    )
                  ]
                  spids: [16742 16761]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 75>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 83>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16818]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 87>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16826]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 89>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [16834]
                        )
                      ]
                    )
                  ]
                  spids: [16796 16815]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_REQUIRES_WEBSERVER>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {($ Id.VSub_DollarName '$i')}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DAmp
                                              left: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DAmp
                                                  left: 
                                                    (arith_expr.Unary
                                                      op_id: Id.Arith_Bang
                                                      child: 
                                                        (arith_expr.ArithWord
                                                          w: 
                                                            {
                                                              (braced_var_sub
                                                                token: 
                                                                  <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                  >
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      (arith_expr.ArithWord
                                                                        w: {<Id.Lit_Digits 83>}
                                                                      )
                                                                  )
                                                              )
                                                            }
                                                        )
                                                    )
                                                  right: 
                                                    (arith_expr.Unary
                                                      op_id: Id.Arith_Bang
                                                      child: 
                                                        (arith_expr.ArithWord
                                                          w: 
                                                            {
                                                              (braced_var_sub
                                                                token: 
                                                                  <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                  >
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      (arith_expr.ArithWord
                                                                        w: {<Id.Lit_Digits 84>}
                                                                      )
                                                                  )
                                                              )
                                                            }
                                                        )
                                                    )
                                                )
                                              right: 
                                                (arith_expr.Unary
                                                  op_id: Id.Arith_Bang
                                                  child: 
                                                    (arith_expr.ArithWord
                                                      w: 
                                                        {
                                                          (braced_var_sub
                                                            token: 
                                                              <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  (arith_expr.ArithWord
                                                                    w: {<Id.Lit_Digits 85>}
                                                                  )
                                                              )
                                                          )
                                                        }
                                                    )
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: 
                                                        (arith_expr.ArithWord
                                                          w: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$INDEX_WEBSERVER_TARGET'
                                                              )
                                                            }
                                                        )
                                                      right: 
                                                        (arith_expr.ArithWord
                                                          w: {<Id.Lit_Digits 0>}
                                                        )
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.IndexedName
                                                      name: aSOFTWARE_INSTALL_STATE
                                                      index: 
                                                        (arith_expr.ArithWord
                                                          w: {<Id.Lit_Digits 83>}
                                                        )
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [16985]
                                                )
                                              ]
                                            )
                                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                                              {(DQ <'Apache2 will be installed'>)}
                                            )
                                          ]
                                          spids: [16963 16977]
                                        )
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: 
                                                        (arith_expr.ArithWord
                                                          w: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$INDEX_WEBSERVER_TARGET'
                                                              )
                                                            }
                                                        )
                                                      right: 
                                                        (arith_expr.Unary
                                                          op_id: Id.Node_UnaryMinus
                                                          child: 
                                                            (arith_expr.ArithWord
                                                              w: {<Id.Lit_Digits 1>}
                                                            )
                                                        )
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.IndexedName
                                                      name: aSOFTWARE_INSTALL_STATE
                                                      index: 
                                                        (arith_expr.ArithWord
                                                          w: {<Id.Lit_Digits 85>}
                                                        )
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [17026]
                                                )
                                              ]
                                            )
                                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                                              {(DQ <'Nginx will be installed'>)}
                                            )
                                          ]
                                          spids: [17003 17018]
                                        )
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: 
                                                        (arith_expr.ArithWord
                                                          w: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$INDEX_WEBSERVER_TARGET'
                                                              )
                                                            }
                                                        )
                                                      right: 
                                                        (arith_expr.Unary
                                                          op_id: Id.Node_UnaryMinus
                                                          child: 
                                                            (arith_expr.ArithWord
                                                              w: {<Id.Lit_Digits 2>}
                                                            )
                                                        )
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.IndexedName
                                                      name: aSOFTWARE_INSTALL_STATE
                                                      index: 
                                                        (arith_expr.ArithWord
                                                          w: {<Id.Lit_Digits 84>}
                                                        )
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [17067]
                                                )
                                              ]
                                            )
                                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                                              {(DQ <'Lighttpd will be installed'>)}
                                            )
                                          ]
                                          spids: [17044 17059]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              name: aSOFTWARE_INSTALL_STATE
                                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 89>})
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [17093]
                                        )
                                      ]
                                    )
                                    (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'PHP will be installed'>)})
                                  ]
                                  spids: [16914 16955]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [16873 16902]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_REQUIRES_MYSQL>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {($ Id.VSub_DollarName '$i')}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Unary
                                              op_id: Id.Arith_Bang
                                              child: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {<Id.Lit_Digits 88>}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              name: aSOFTWARE_INSTALL_STATE
                                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 88>})
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [17216]
                                        )
                                      ]
                                    )
                                    (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'MariaDB will be installed'>)})
                                  ]
                                  spids: [17191 17208]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [17154 17183]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_REQUIRES_SQLITE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {($ Id.VSub_DollarName '$i')}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 87>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [17315]
                                )
                              ]
                            )
                            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'SQlite will be installed'>)})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [17278 17307]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_GreatEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 83>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 87>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 75>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [17408]
                                )
                              ]
                            )
                          ]
                          spids: [17381 17400]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 88>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 76>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [17452]
                                )
                              ]
                            )
                          ]
                          spids: [17425 17444]
                        )
                      ]
                    )
                  ]
                  spids: [17354 17373]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_GreatEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 85>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 87>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 78>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [17524]
                                )
                              ]
                            )
                          ]
                          spids: [17497 17516]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 88>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 79>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [17568]
                                )
                              ]
                            )
                          ]
                          spids: [17541 17560]
                        )
                      ]
                    )
                  ]
                  spids: [17470 17489]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_GreatEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 84>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 87>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 81>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [17639]
                                )
                              ]
                            )
                          ]
                          spids: [17612 17631]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 88>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 82>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [17683]
                                )
                              ]
                            )
                          ]
                          spids: [17656 17675]
                        )
                      ]
                    )
                  ]
                  spids: [17585 17604]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_REQUIRES_DESKTOP>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {($ Id.VSub_DollarName '$i')}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DAmp
                                              left: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DAmp
                                                  left: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DAmp
                                                      left: 
                                                        (arith_expr.Unary
                                                          op_id: Id.Arith_Bang
                                                          child: 
                                                            (arith_expr.ArithWord
                                                              w: 
                                                                {
                                                                  (braced_var_sub
                                                                    token: 
                                                                      <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                      >
                                                                    bracket_op: 
                                                                      (bracket_op.ArrayIndex
                                                                        expr: 
                                                                          (arith_expr.ArithWord
                                                                            w: {<Id.Lit_Digits 23>}
                                                                          )
                                                                      )
                                                                  )
                                                                }
                                                            )
                                                        )
                                                      right: 
                                                        (arith_expr.Unary
                                                          op_id: Id.Arith_Bang
                                                          child: 
                                                            (arith_expr.ArithWord
                                                              w: 
                                                                {
                                                                  (braced_var_sub
                                                                    token: 
                                                                      <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                      >
                                                                    bracket_op: 
                                                                      (bracket_op.ArrayIndex
                                                                        expr: 
                                                                          (arith_expr.ArithWord
                                                                            w: {<Id.Lit_Digits 24>}
                                                                          )
                                                                      )
                                                                  )
                                                                }
                                                            )
                                                        )
                                                    )
                                                  right: 
                                                    (arith_expr.Unary
                                                      op_id: Id.Arith_Bang
                                                      child: 
                                                        (arith_expr.ArithWord
                                                          w: 
                                                            {
                                                              (braced_var_sub
                                                                token: 
                                                                  <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                  >
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      (arith_expr.ArithWord
                                                                        w: {<Id.Lit_Digits 25>}
                                                                      )
                                                                  )
                                                              )
                                                            }
                                                        )
                                                    )
                                                )
                                              right: 
                                                (arith_expr.Unary
                                                  op_id: Id.Arith_Bang
                                                  child: 
                                                    (arith_expr.ArithWord
                                                      w: 
                                                        {
                                                          (braced_var_sub
                                                            token: 
                                                              <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  (arith_expr.ArithWord
                                                                    w: {<Id.Lit_Digits 26>}
                                                                  )
                                                              )
                                                          )
                                                        }
                                                    )
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              name: aSOFTWARE_INSTALL_STATE
                                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 23>})
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [17822]
                                        )
                                      ]
                                    )
                                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                                      {(DQ <'LXDE desktop will be installed'>)}
                                    )
                                  ]
                                  spids: [17765 17818]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [17728 17757]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_REQUIRES_GIT>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {($ Id.VSub_DollarName '$i')}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 17>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [17920]
                                )
                              ]
                            )
                            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Git will be installed'>)})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [17883 17912]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: 
                                                  <Id.VSub_Name aSOFTWARE_REQUIRES_BUILDESSENTIAL>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {($ Id.VSub_DollarName '$i')}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 16>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [18015]
                                )
                              ]
                            )
                            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Build-Essential will be installed'>)})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [17978 18007]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_REQUIRES_RSYSLOG>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {($ Id.VSub_DollarName '$i')}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 102>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [18110]
                                )
                              ]
                            )
                            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Rsyslog will be installed'>)})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [18073 18102]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_REQUIRES_FFMPEG>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {($ Id.VSub_DollarName '$i')}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 7>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [18205]
                                )
                              ]
                            )
                            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'FFmpeg will be installed'>)})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [18168 18197]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_REQUIRES_ORACLEJAVA>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {($ Id.VSub_DollarName '$i')}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 8>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [18300]
                                )
                              ]
                            )
                            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'OpenJDK 8 will be installed'>)})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [18263 18292]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_REQUIRES_NODEJS>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {($ Id.VSub_DollarName '$i')}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 9>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [18395]
                                )
                              ]
                            )
                            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'NodeJS will be installed'>)})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [18358 18387]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_REQUIRES_ALSA>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {($ Id.VSub_DollarName '$i')}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 5>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [18490]
                                )
                              ]
                            )
                            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Alsa will be installed'>)})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [18453 18482]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_REQUIRES_XSERVERXORG>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {($ Id.VSub_DollarName '$i')}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 6>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [18585]
                                )
                              ]
                            )
                            (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Xserver will be installed'>)})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [18548 18577]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: Create_Desktop_Shared_Items
      body: 
        (command.BraceGroup
          children: [
            (C {<wget>} 
              {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/.gtk-bookmarks>} {<-O>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.gtk-bookmarks>}
            )
            (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$HOME')) </Desktop>})
            (C {<ln>} {<-sf>} {</usr/share/applications/htop.desktop>} 
              {(DQ ($ Id.VSub_DollarName '$HOME')) </Desktop/htop.desktop>}
            )
            (C {<mkdir>} {<-p>} {</usr/share/applications>})
            (C {<wget>} 
              {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/dietpi-software.desktop>} {<-O>} {</usr/share/applications/dietpi-software.desktop>}
            )
            (C {<wget>} 
              {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/dietpi-update.desktop>} {<-O>} {</usr/share/applications/dietpi-update.desktop>}
            )
            (C {<wget>} 
              {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/dietpi-config.desktop>} {<-O>} {</usr/share/applications/dietpi-config.desktop>}
            )
            (C {<wget>} 
              {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/dietpi-backup.desktop>} {<-O>} {</usr/share/applications/dietpi-backup.desktop>}
            )
            (C {<wget>} 
              {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/dietpi-sync.desktop>} {<-O>} {</usr/share/applications/dietpi-sync.desktop>}
            )
            (C {<wget>} 
              {<http> <Id.Lit_Other ':'> 
                <//dietpi.com/downloads/conf/desktop/dietpi-bugreport.desktop>
              } {<-O>} {</usr/share/applications/dietpi-bugreport.desktop>}
            )
            (C {<wget>} 
              {<http> <Id.Lit_Other ':'> 
                <//dietpi.com/downloads/conf/desktop/dietpi-process_tool.desktop>
              } {<-O>} {</usr/share/applications/dietpi-process_tool.desktop>}
            )
            (C {<wget>} 
              {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/dietpi-cleaner.desktop>} {<-O>} {</usr/share/applications/dietpi-cleaner.desktop>}
            )
            (C {<wget>} 
              {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/dietpi-cron.desktop>} {<-O>} {</usr/share/applications/dietpi-cron.desktop>}
            )
            (C {<wget>} 
              {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/dietpi-launcher.desktop>} {<-O>} {</usr/share/applications/dietpi-launcher.desktop>}
            )
            (C {<wget>} 
              {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/dietpi-justboom.desktop>} {<-O>} {</usr/share/applications/dietpi-justboom.desktop>}
            )
            (C {<ln>} {<-sf>} {</usr/share/applications/dietpi-software.desktop>} 
              {(DQ ($ Id.VSub_DollarName '$HOME')) </Desktop/dietpi-software.desktop>}
            )
            (C {<ln>} {<-sf>} {</usr/share/applications/dietpi-config.desktop>} 
              {(DQ ($ Id.VSub_DollarName '$HOME')) </Desktop/dietpi-config.desktop>}
            )
            (C {<ln>} {<-sf>} {</usr/share/applications/dietpi-launcher.desktop>} 
              {(DQ ($ Id.VSub_DollarName '$HOME')) </Desktop/dietpi-launcher.desktop>}
            )
            (C {<mkdir>} {<-p>} {</var/lib/dietpi/dietpi-software/installed/desktop_icons>})
            (C {<wget>} 
              {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/dietpi-icon.png>} {<-O>} {</var/lib/dietpi/dietpi-software/installed/desktop_icons/dietpi-icon.png>}
            )
            (C {<wget>} 
              {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/grey_16x16.png>} {<-O>} {</var/lib/dietpi/dietpi-software/installed/desktop_icons/grey_16x16.png>}
            )
            (C {<wget>} {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/kodi-icon.png>} 
              {<-O>} {</var/lib/dietpi/dietpi-software/installed/desktop_icons/kodi-icon.png>}
            )
            (C {<wget>} {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/justboom.png>} 
              {<-O>} {</var/lib/dietpi/dietpi-software/installed/desktop_icons/justboom.png>}
            )
            (C {<sed>} {<-i>} 
              {
                (SQ 
                  <
's#^Icon=/etc/dietpi/desktop_icons#Icon=/var/lib/dietpi/dietpi-software/installed/desktop_icons#g'
                  >
                )
              } {</usr/share/applications/> <Id.Lit_Star '*'> <.desktop>}
            )
            (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</usr/share/applications/> <Id.Lit_Star '*'>})
            (C {<chmod>} {<Id.Lit_Other '+'> <x>} 
              {(DQ ($ Id.VSub_DollarName '$HOME')) </Desktop/> <Id.Lit_Star '*'>}
            )
          ]
        )
    )
    (command.ShFunction
      name: Create_UserContent_Folders
      body: 
        (command.BraceGroup
          children: [
            (C {<mkdir>} {<-p>} 
              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </> 
                (DQ ($ Id.VSub_DollarName '$FOLDER_MUSIC'))
              }
            )
            (C {<mkdir>} {<-p>} 
              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </> 
                (DQ ($ Id.VSub_DollarName '$FOLDER_PICTURES'))
              }
            )
            (C {<mkdir>} {<-p>} 
              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </> 
                (DQ ($ Id.VSub_DollarName '$FOLDER_VIDEO'))
              }
            )
            (C {<mkdir>} {<-p>} 
              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </> 
                (DQ ($ Id.VSub_DollarName '$FOLDER_DOWNLOADS'))
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: Download_Test_Media
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} 
                          {
                            (DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </> 
                              ($ Id.VSub_DollarName '$FOLDER_MUSIC')
                            ) </fourdee_tech.ogg>
                          } {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<wget>} 
                      {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/audio/fourdee_tech.ogg>} {<-O>} 
                      {
                        (DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </> 
                          ($ Id.VSub_DollarName '$FOLDER_MUSIC')
                        ) </fourdee_tech.ogg>
                      }
                    )
                    (C {<wget>} 
                      {<http> <Id.Lit_Other ':'> 
                        <//network.absoluteradio.co.uk/core/audio/ogg/live.pls> <Id.Lit_QMark '?'> <Id.Lit_VarLike 'service='> <vrbb>
                      } {<-O>} 
                      {
                        (DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </> 
                          ($ Id.VSub_DollarName '$FOLDER_MUSIC')
                        ) </Absolute-Radio.pls>
                      }
                    )
                    (C {<wget>} 
                      {<http> <Id.Lit_Other ':'> 
                        <//network.absoluteradio.co.uk/core/audio/ogg/live.pls> <Id.Lit_QMark '?'> <Id.Lit_VarLike 'service='> <a8bb>
                      } {<-O>} 
                      {
                        (DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </> 
                          ($ Id.VSub_DollarName '$FOLDER_MUSIC')
                        ) </Absolute-Radio-80s.pls>
                      }
                    )
                    (C {<wget>} 
                      {<http> <Id.Lit_Other ':'> 
                        <//network.absoluteradio.co.uk/core/audio/ogg/live.pls> <Id.Lit_QMark '?'> <Id.Lit_VarLike 'service='> <a9bb>
                      } {<-O>} 
                      {
                        (DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </> 
                          ($ Id.VSub_DollarName '$FOLDER_MUSIC')
                        ) </Absolute-Radio-90s.pls>
                      }
                    )
                    (C {<wget>} 
                      {<http> <Id.Lit_Other ':'> 
                        <//network.absoluteradio.co.uk/core/audio/ogg/live.pls> <Id.Lit_QMark '?'> <Id.Lit_VarLike 'service='> <a0bb>
                      } {<-O>} 
                      {
                        (DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </> 
                          ($ Id.VSub_DollarName '$FOLDER_MUSIC')
                        ) </Absolute-Radio-00s.pls>
                      }
                    )
                  ]
                  spids: [19022 19040]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Optimize_BitTorrent
      body: 
        (command.BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'output='> <0>})
            (C {<local>} {<Id.Lit_VarLike 'gigabit_device='> <1>})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DPipe
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DPipe
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DPipe
                                              left: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_LessEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                                )
                                              right: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 30>})
                                                )
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 32>})
                                            )
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 40>})
                                        )
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 60>})
                                    )
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$G_HW_MODEL')})
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 70>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:gigabit_device)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [19244]
                        )
                      ]
                    )
                  ]
                  spids: [19186 19240]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_Number '$1')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:output)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Slash
                                    left: 
                                      (arith_expr.ArithWord
                                        w: {($ Id.VSub_DollarName '$RAM_TOTAL')}
                                      )
                                    right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                  )
                              )
                            }
                          spids: [19275]
                        )
                      ]
                    )
                  ]
                  spids: [19257 19271]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_Number '$1')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:output)
                          op: assign_op.Equal
                          rhs: {<2>}
                          spids: [19311]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 20>})
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 21>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:output)
                                  op: assign_op.Equal
                                  rhs: {<3>}
                                  spids: [19346]
                                )
                              ]
                            )
                          ]
                          spids: [19320 19342]
                        )
                      ]
                    )
                  ]
                  spids: [19293 19307]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_Number '$1')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:output)
                          op: assign_op.Equal
                          rhs: {<20>}
                          spids: [19377]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 20>})
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 21>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:output)
                                  op: assign_op.Equal
                                  rhs: {<40>}
                                  spids: [19412]
                                )
                              ]
                            )
                          ]
                          spids: [19386 19408]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$gigabit_device')}
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:output)
                                  op: assign_op.Equal
                                  rhs: {<30>}
                                  spids: [19435]
                                )
                              ]
                            )
                          ]
                          spids: [19421 19431]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:output)
                                  op: assign_op.Equal
                                  rhs: {<15>}
                                  spids: [19466]
                                )
                              ]
                            )
                          ]
                          spids: [19448 19462]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:output)
                                  op: assign_op.Equal
                                  rhs: {<13>}
                                  spids: [19493]
                                )
                              ]
                            )
                          ]
                          spids: [19475 19489]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_LessEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:output)
                                  op: assign_op.Equal
                                  rhs: {<7>}
                                  spids: [19520]
                                )
                              ]
                            )
                          ]
                          spids: [19502 19516]
                        )
                      ]
                    )
                  ]
                  spids: [19359 19373]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_Number '$1')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:output)
                          op: assign_op.Equal
                          rhs: {<3>}
                          spids: [19551]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 20>})
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 21>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:output)
                                  op: assign_op.Equal
                                  rhs: {<5>}
                                  spids: [19586]
                                )
                              ]
                            )
                          ]
                          spids: [19560 19582]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$gigabit_device')}
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:output)
                                  op: assign_op.Equal
                                  rhs: {<4>}
                                  spids: [19609]
                                )
                              ]
                            )
                          ]
                          spids: [19595 19605]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_LessEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:output)
                                  op: assign_op.Equal
                                  rhs: {<2>}
                                  spids: [19636]
                                )
                              ]
                            )
                          ]
                          spids: [19618 19632]
                        )
                      ]
                    )
                  ]
                  spids: [19533 19547]
                )
              ]
            )
            (C {<echo>} {($ Id.VSub_DollarName '$output')})
          ]
        )
    )
    (command.ShFunction
      name: Install_Dietpi_Software
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<23>}
                  spids: [19843]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'http://dietpi.com/downloads/conf/desktop'>)}
                          spids: [19878]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<lxde>} {<upower>} {<policykit-1>} {<iceweasel>} {<p7zip-full>} 
                      {<--no-install-recommends>}
                    )
                  ]
                  spids: [19847 19866]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<24>}
                  spids: [19921]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'http://dietpi.com/downloads/conf/desktop'>)}
                          spids: [19956]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<mate-desktop-environment-extras>} {<upower>} {<policykit-1>} 
                      {<iceweasel>} {<p7zip-full>} {<--no-install-recommends>}
                    )
                  ]
                  spids: [19925 19944]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<26>}
                  spids: [19995]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'http://dietpi.com/downloads/conf/desktop'>)}
                          spids: [20030]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<x-window-system-core>} {<wmaker>} {<gnustep>} {<gnustep-devel>} 
                      {<gnustep-games>} {<libc-dbg>} {<upower>} {<policykit-1>} {<iceweasel>} {<p7zip-full>} {<--no-install-recommends>}
                    )
                  ]
                  spids: [19999 20018]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<25>}
                  spids: [20079]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'http://dietpi.com/downloads/conf/desktop'>)}
                          spids: [20114]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<xfce4>} {<xfce4-terminal>} {<gnome-icon-theme>} {<tango-icon-theme>} 
                      {<iceweasel>} {<p7zip-full>} {<--no-install-recommends>}
                    )
                  ]
                  spids: [20083 20102]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<29>}
                  spids: [20155]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<xrdp>})]
                  spids: [20159 20178]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<30>}
                  spids: [20200]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_DESCRIPTION)
                          op: assign_op.Equal
                          rhs: {(DQ <'NoMachine (Secure RDP Server & Client)'>)}
                          spids: [20230]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://dietpi.com/downloads/binaries/all/nomachine_5.1.44_1_amd64.deb'
                                        >
                                      )
                                    }
                                  spids: [20259]
                                )
                              ]
                            )
                          ]
                          spids: [20241 20255]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://dietpi.com/downloads/binaries/all/nomachine_5.1.44_3_armv6hf.deb'
                                        >
                                      )
                                    }
                                  spids: [20288]
                                )
                              ]
                            )
                          ]
                          spids: [20270 20284]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://dietpi.com/downloads/binaries/all/nomachine_5.1.44_armhf.deb'
                                        >
                                      )
                                    }
                                  spids: [20317]
                                )
                              ]
                            )
                          ]
                          spids: [20299 20313]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.deb>}
                    )
                    (C {<dpkg>} {<-i>} {<package.deb>})
                    (C {<rm>} {<package.deb>})
                  ]
                  spids: [20204 20223]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<44>}
                  spids: [20372]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<transmission-daemon>})]
                  spids: [20376 20395]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<94>}
                  spids: [20416]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.Pipeline
                      children: [
                        (C {<echo>} {<-e>} 
                          {
                            (DQ 
                              <'proftpd-basic shared/proftpd/inetd_or_standalone select standalone'>
                            )
                          }
                        )
                        (C {<debconf-set-selections>})
                      ]
                      negated: F
                    )
                    (C {<G_AGI>} {<proftpd-basic>})
                  ]
                  spids: [20420 20439]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<96>}
                  spids: [20474]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<samba>} {<samba-common-bin>} {<--no-install-recommends>})
                  ]
                  spids: [20478 20497]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<95>}
                  spids: [20522]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<vsftpd>} {<--no-install-recommends>})
                  ]
                  spids: [20526 20545]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<109>}
                  spids: [20569]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<nfs-kernel-server>} {<nfs-common>} {<ucf>} {<rpcbind>})
                  ]
                  spids: [20573 20592]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<83>}
                  spids: [20620]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<apache2>})]
                  spids: [20624 20643]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<85>}
                  spids: [20664]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<nginx>} {<xml-core>} {<--no-install-recommends>})
                  ]
                  spids: [20668 20687]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<84>}
                  spids: [20712]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<lighttpd>})]
                  spids: [20716 20735]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<88>}
                  spids: [20756]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DAmp]
                      children: [
                        (C {<Id.Lit_LBracket '['>} 
                          {
                            (DQ 
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                command_list: 
                                  (command.CommandList
                                    children: [(C {<readlink>} {</var/lib/mysql>})]
                                  )
                              )
                            )
                          } {<Id.Lit_RBracket ']'>}
                        )
                        (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} 
                          {
                            (DQ 
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                command_list: 
                                  (command.CommandList
                                    children: [(C {<readlink>} {</var/lib/mysql>})]
                                  )
                              ) </mysql>
                            )
                          } {<Id.Lit_RBracket ']'>}
                        )
                        (C {<rm>} {</var/lib/mysql>})
                      ]
                    )
                    (C {<G_AGI>} {<mariadb-server>})
                  ]
                  spids: [20760 20779]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<87>}
                  spids: [20847]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<sqlite3>})]
                  spids: [20851 20870]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<91>}
                  spids: [20891]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<redis-server>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 89>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_AGI>} {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-redis>})
                          ]
                          spids: [20930 20949]
                        )
                      ]
                    )
                  ]
                  spids: [20895 20914]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<89>}
                  spids: [20974]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 83>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_AGI>} {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME'))} 
                              {<libapache2-mod-> (DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME'))}
                            )
                          ]
                          spids: [21009 21028]
                        )
                      ]
                      else_action: [
                        (C {<G_AGI>} {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-fpm>} 
                          {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-cgi>}
                        )
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$G_DISTRO')})
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                )
                            )
                            (C {<G_AGI>} {<php5-xsl>})
                          ]
                        )
                      ]
                    )
                    (C {<G_AGI>} {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-curl>} 
                      {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-gd>} {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-apcu>} 
                      {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-mcrypt>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_AGI>} 
                              {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-mbstring>} {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-zip>} 
                              {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-xml>}
                            )
                          ]
                          spids: [21121 21135]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 86>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_AGI>} {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-mysql>})
                          ]
                          spids: [21166 21185]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 88>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_Less
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<G_AGI>} 
                                      {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-mysqlnd>}
                                    )
                                  ]
                                  spids: [21225 21239]
                                )
                              ]
                              else_action: [
                                (C {<G_AGI>} 
                                  {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-mysql>}
                                )
                              ]
                            )
                          ]
                          spids: [21202 21221]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 87>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_AGI>} 
                              {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-sqlite> 
                                <Id.Lit_Star '*'>
                              }
                            )
                          ]
                          spids: [21279 21298]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 91>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_AGI>} {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-redis>})
                          ]
                          spids: [21323 21342]
                        )
                      ]
                    )
                  ]
                  spids: [20978 20997]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<90>}
                  spids: [21367]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_RUN_CMD>} {<systemctl>} {<start>} {<mysql>})
                    (command.Simple
                      words: [{<debconf-set-selections>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_TLess '<<<'>
                          fd: -1
                          arg_word: {(DQ <'phpmyadmin phpmyadmin/dbconfig-install boolean true'>)}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<debconf-set-selections>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_TLess '<<<'>
                          fd: -1
                          arg_word: 
                            {
                              (DQ <'phpmyadmin phpmyadmin/mysql/app-pass password '> 
                                ($ Id.VSub_DollarName '$GLOBAL_PW')
                              )
                            }
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<debconf-set-selections>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_TLess '<<<'>
                          fd: -1
                          arg_word: 
                            {
                              (DQ <'phpmyadmin phpmyadmin/app-password-confirm password '> 
                                ($ Id.VSub_DollarName '$GLOBAL_PW')
                              )
                            }
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 83>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{<debconf-set-selections>}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_TLess '<<<'>
                                  fd: -1
                                  arg_word: 
                                    {
                                      (DQ 
                                        <
'phpmyadmin phpmyadmin/reconfigure-webserver multiselect apache2'
                                        >
                                      )
                                    }
                                )
                              ]
                            )
                          ]
                          spids: [21446 21465]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 84>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{<debconf-set-selections>}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_TLess '<<<'>
                                  fd: -1
                                  arg_word: 
                                    {
                                      (DQ 
                                        <
'phpmyadmin phpmyadmin/reconfigure-webserver multiselect lighttpd'
                                        >
                                      )
                                    }
                                )
                              ]
                            )
                          ]
                          spids: [21479 21498]
                        )
                      ]
                      else_action: [
                        (command.Simple
                          words: [{<debconf-set-selections>}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_TLess '<<<'>
                              fd: -1
                              arg_word: 
                                {
                                  (DQ 
                                    <'phpmyadmin phpmyadmin/reconfigure-webserver multiselect none'>
                                  )
                                }
                            )
                          ]
                        )
                      ]
                    )
                    (C {<G_AGI>} {<phpmyadmin>})
                  ]
                  spids: [21371 21390]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<128>}
                  spids: [21544]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (SQ 
                                                <
'http://dietpi.com/downloads/binaries/all/mpd_0.19.21_arm64.deb'
                                                >
                                              )
                                            }
                                          spids: [21619]
                                        )
                                      ]
                                    )
                                    (C {<G_CHECK_URL>} 
                                      {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))}
                                    )
                                    (C {<G_AGI>} {<libupnp6>})
                                    (C {<G_AGI>} {<libmpdclient2>} {<libao-common>} {<libao4>} 
                                      {<libasound2>} {<libasound2-data>} {<libasyncns0>} {<libaudiofile1>} {<libavahi-client3>} {<libavahi-common-data>} 
                                      {<libavahi-common3>} {<libavcodec56>} {<libavformat56>} {<libavresample2>} {<libavutil54>} {<libbinio1ldbl>} {<libcaca0>} 
                                      {<libcdio-cdda1>} {<libcdio-paranoia1>} {<libcdio13>} {<libcups2>} {<libcurl3-gnutls>} {<libdirectfb-1.2-9>} {<libdnet>} 
                                      {<libfaad2>} {<libflac8>} {<libfluidsynth1>} {<libgme0>} {<libgomp1>} {<libgsm1>} {<libice6>} {<libid3tag0>} 
                                      {<libiso9660-8>} {<libjack-jackd2-0>} {<libjson-c2>} {<libldb1>} {<libmad0>} {<libmikmod3>} {<libmms0>} {<libmodplug1>} 
                                      {<libmp3lame0>} {<libmpcdec6>} {<libmpg123-0>} {<libnfs4>} {<libntdb1>} {<libogg0>} {<libopenal-data>} {<libopenal1>} 
                                      {<libopenjpeg5>} {<libopus0>} {<liborc-0.4-0>} {<libpulse0>} {<libresid-builder0c2a>} {<libroar2>} {<libsamplerate0>} 
                                      {<libschroedinger-1.0-0>} {<libsdl1.2debian>} {<libshout3>} {<libsidplay2>} {<libsidutils0>} {<libslp1>} {<libsm6>} {<libsmbclient>} 
                                      {<libsndfile1>} {<libsoxr0>} {<libspeex1>} {<libspeexdsp1>} {<libsqlite3-0>} {<libtalloc2>} {<libtdb1>} {<libtevent0>} 
                                      {<libtheora0>} {<libupnp6>} {<libva1>} {<libvorbis0a>} {<libvorbisenc2>} {<libvorbisfile3>} {<libvpx1>} {<libwavpack1>} 
                                      {<libwbclient0>} {<libwildmidi-config>} {<libwildmidi1>} {<libx11-6>} {<libx11-data>} {<libx11-xcb1>} {<libx264-142>} 
                                      {<libxau6>} {<libxcb1>} {<libxdmcp6>} {<libxext6>} {<libxi6>} {<libxtst6>} {<libxvidcore4>} {<libyajl2>} {<libzzip-0-13>} 
                                      {<mime-support>} {<python>} {<python-talloc>} {<python2.7>} {<samba-libs>} {<x11-common>} {<file>} 
                                      {<--no-install-recommends>}
                                    )
                                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} 
                                      {<-O>} {<package.deb>}
                                    )
                                    (C {<dpkg>} {<-i>} {<package.deb>})
                                    (C {<rm>} {<package.deb>})
                                  ]
                                  spids: [21601 21615]
                                )
                              ]
                              else_action: [(C {<G_AGI>} {<mpd>})]
                            )
                          ]
                          spids: [21579 21593]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                              op: assign_op.Equal
                              rhs: {(SQ <'http://dietpi.com/downloads/binaries/all/mpd_0.20.11-1_'>)}
                              spids: [21896]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                      op: assign_op.PlusEqual
                                      rhs: {(SQ <armv6>)}
                                      spids: [21925]
                                    )
                                  ]
                                )
                              ]
                              spids: [21907 21921]
                            )
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                      op: assign_op.PlusEqual
                                      rhs: {(SQ <armv7>)}
                                      spids: [21954]
                                    )
                                  ]
                                )
                              ]
                              spids: [21936 21950]
                            )
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                      op: assign_op.PlusEqual
                                      rhs: {(SQ <armv8>)}
                                      spids: [21983]
                                    )
                                  ]
                                )
                              ]
                              spids: [21965 21979]
                            )
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                      op: assign_op.PlusEqual
                                      rhs: {(SQ <amd64>)}
                                      spids: [22012]
                                    )
                                  ]
                                )
                              ]
                              spids: [21994 22008]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                              op: assign_op.PlusEqual
                              rhs: {(SQ <.deb>)}
                              spids: [22023]
                            )
                          ]
                        )
                        (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                        (C {<G_AGI>} {<libmpdclient2>} {<libflac8>} {<libyajl2>} {<libavahi-client3>} 
                          {<libvorbisfile3>} {<libwavpack1>} {<libmad0>} {<libmpg123-0>} {<libopus0>} {<libavformat57>} {<libfaad2>} 
                          {<libcdio-paranoia1>} {<libiso9660-8>} {<libshout3>} {<libid3tag0>}
                        )
                        (command.Simple
                          words: [{<apt-mark>} {<unhold>} {<mpd>}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_AndGreat '&>'>
                              fd: -1
                              arg_word: {</dev/null>}
                            )
                          ]
                        )
                        (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                          {<package.deb>}
                        )
                        (C {<dpkg>} {<-i>} {<package.deb>})
                        (C {<rm>} {<package.deb>})
                        (C {<apt-mark>} {<hold>} {<mpd>})
                      ]
                    )
                  ]
                  spids: [21548 21567]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<54>}
                  spids: [22138]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://www.phpbb.com/files/release/phpBB-3.2.1.zip'>)}
                          spids: [22169]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>} {<-d>} {</var/www>})
                    (C {<rm>} {<package.zip>})
                  ]
                  spids: [22142 22161]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<58>}
                  spids: [22219]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/OpenBazaar/OpenBazaar-Server.git'>)}
                          spids: [22250]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<libsodium-dev>} {<automake>} {<autoconf>} {<pkg-config>} {<libtool>} 
                      {<libssl-dev>} {<libffi-dev>} {<python-dev>} {<openssl>} {<libzmq3-dev>}
                    )
                    (C {<pip>} {<install>} {<cryptography>})
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                    (C {<git>} {<clone>} {<--depth> <Id.Lit_Equals '='> <1>} 
                      {<https> <Id.Lit_Other ':'> <//github.com/zeromq/libzmq>}
                    )
                    (C {<git>} {<clone>} {<--depth> <Id.Lit_Equals '='> <1>} 
                      {<https> <Id.Lit_Other ':'> <//github.com/pyca/pynacl/>}
                    )
                    (C {<git>} {<clone>} {<--depth> <Id.Lit_Equals '='> <1>} 
                      {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))}
                    )
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME')) </libzmq>})
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DAmp]
                      children: [
                        (C {<./autogen.sh>})
                        (C {<./configure>})
                        (C {<make>} {<-j>} {($ Id.VSub_DollarName '$G_HW_CPU_CORES')})
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DAmp]
                      children: [(C {<make>} {<check>}) (C {<make>} {<install>}) (C {<ldconfig>})]
                    )
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME')) </pynacl>})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<python>} {<setup.py>} {<build>})
                        (C {<python>} {<setup.py>} {<install>})
                      ]
                    )
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                    (C {<mkdir>} {<-p>} {</etc/openbazaar-server>})
                    (C {<mv>} 
                      {(DQ ($ Id.VSub_DollarName '$HOME')) </OpenBazaar-Server/> <Id.Lit_Star '*'>} {</etc/openbazaar-server/>}
                    )
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$HOME')) </OpenBazaar-Server>})
                    (C {<cd>} {</etc/openbazaar-server>})
                    (C {<pip>} {<install>} {<-r>} {<requirements.txt>})
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$HOME')) </libzmq>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$HOME')) </pynacl>})
                  ]
                  spids: [22223 22242]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<133>}
                  spids: [22528]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'http://yacy.net/release/yacy_v1.92_20161226_9000.tar.gz'>)}
                          spids: [22559]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.tar.gz>}
                    )
                    (C {<tar>} {<xvf>} {<package.tar.gz>} {<-C>} {</etc/>})
                    (C {<rm>} {<package.tar.gz>})
                  ]
                  spids: [22532 22551]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<47>}
                  spids: [22609]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {
                        (SQ 
                          <
'Installing needed PHP modules: https://doc.owncloud.org/server/latest/admin_manual/installation/source_installation.html#php-extensions'
                          >
                        )
                      }
                    )
                    (C {<G_AGI>} {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-intl>} 
                      {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-redis>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<-f>} {</var/www/owncloud/occ>} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                              {(SQ <'Existing ownCloud installation found, will NOT overwrite...'>)}
                            )
                          ]
                          spids: [22663 22674]
                        )
                      ]
                      else_action: [
                        (C {<local>} 
                          {<Id.Lit_VarLike 'datadir='> 
                            (DQ 
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (command.Pipeline
                                        children: [
                                          (C {<grep>} {<-m1>} 
                                            {(SQ <'^[[:blank:]]*SOFTWARE_OWNCLOUD_DATADIR='>)} {</DietPi/dietpi.txt>}
                                          )
                                          (C {<sed>} {(SQ <'s/^.*=//'>)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                              )
                            )
                          }
                        )
                        (command.AndOr
                          ops: [Id.Op_DPipe]
                          children: [
                            (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$datadir'))} 
                              {<Id.Lit_RBracket ']'>}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:datadir)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') 
                                        </owncloud_data>
                                      )
                                    }
                                  spids: [22730]
                                )
                              ]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-f>} 
                                      {(DQ ($ Id.VSub_DollarName '$datadir')) 
                                        </dietpi-owncloud-installation-backup/occ>
                                      } {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (C {<G_DIETPI-NOTIFY>} {<2>} 
                                  {(SQ <'ownCloud installation backup found, starting recovery...'>)}
                                )
                                (C {<G_RUN_CMD>} {<cp>} {<-a>} 
                                  {(DQ ($ Id.VSub_DollarName '$datadir')) 
                                    </dietpi-owncloud-installation-backup/.>
                                  } {</var/www/owncloud>}
                                )
                              ]
                              spids: [22737 22751]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'https://download.owncloud.org/community/owncloud-latest.zip'
                                        >
                                      )
                                    }
                                  spids: [22783]
                                )
                              ]
                            )
                            (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                            (C {<G_RUN_CMD>} {<wget>} 
                              {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} {<package.zip>}
                            )
                            (C {<G_RUN_CMD>} {<unzip>} {<-o>} {<package.zip>} {<-d>} {</var/www>})
                            (C {<rm>} {<package.zip>})
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [22613 22632]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<114>}
                  spids: [22844]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {
                        (SQ 
                          <
'Installing needed PHP modules: https://docs.nextcloud.com/server/12/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation'
                          >
                        )
                      }
                    )
                    (C {<G_AGI>} {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-intl>} 
                      {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-redis>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<-f>} {</var/www/nextcloud/occ>} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                              {(SQ <'Existing Nextcloud installation found, will NOT overwrite...'>)}
                            )
                          ]
                          spids: [22898 22909]
                        )
                      ]
                      else_action: [
                        (C {<local>} 
                          {<Id.Lit_VarLike 'datadir='> 
                            (DQ 
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (command.Pipeline
                                        children: [
                                          (C {<grep>} {<-m1>} 
                                            {(SQ <'^[[:blank:]]*SOFTWARE_NEXTCLOUD_DATADIR='>)} {</DietPi/dietpi.txt>}
                                          )
                                          (C {<sed>} {(SQ <'s/^.*=//'>)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                              )
                            )
                          }
                        )
                        (command.AndOr
                          ops: [Id.Op_DPipe]
                          children: [
                            (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$datadir'))} 
                              {<Id.Lit_RBracket ']'>}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:datadir)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') 
                                        </nextcloudcloud_data>
                                      )
                                    }
                                  spids: [22965]
                                )
                              ]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-f>} 
                                      {(DQ ($ Id.VSub_DollarName '$datadir')) 
                                        </dietpi-nextcloud-installation-backup/occ>
                                      } {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (C {<G_DIETPI-NOTIFY>} {<2>} 
                                  {(SQ <'Nextcloud installation backup found, starting recovery...'>)}
                                )
                                (C {<G_RUN_CMD>} {<cp>} {<-a>} 
                                  {(DQ ($ Id.VSub_DollarName '$datadir')) 
                                    </dietpi-nextcloud-installation-backup/.>
                                  } {</var/www/nextcloud>}
                                )
                              ]
                              spids: [22972 22986]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'https://download.nextcloud.com/server/releases/latest.zip'
                                        >
                                      )
                                    }
                                  spids: [23018]
                                )
                              ]
                            )
                            (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                            (C {<G_RUN_CMD>} {<wget>} 
                              {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} {<package.zip>}
                            )
                            (C {<G_RUN_CMD>} {<unzip>} {<-o>} {<package.zip>} {<-d>} {</var/www>})
                            (C {<rm>} {<package.zip>})
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [22848 22867]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<32>}
                  spids: [23079]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'http://dietpi.com/downloads/binaries/all/ympd_1.2.3.7z'>)}
                          spids: [23110]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.7z>}
                    )
                    (C {<7z>} {<x>} {<-y>} {<package.7z>})
                    (C {<local>} {<Id.Lit_VarLike 'binary_name='> (SQ <ympd_>)})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:binary_name)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <armv6>)}
                                  spids: [23175]
                                )
                              ]
                            )
                          ]
                          spids: [23157 23171]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:binary_name)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <armv7>)}
                                  spids: [23204]
                                )
                              ]
                            )
                          ]
                          spids: [23186 23200]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:binary_name)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <armv8>)}
                                  spids: [23233]
                                )
                              ]
                            )
                          ]
                          spids: [23215 23229]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:binary_name)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <amd64>)}
                                  spids: [23262]
                                )
                              ]
                            )
                          ]
                          spids: [23244 23258]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:binary_name)
                          op: assign_op.PlusEqual
                          rhs: {(DQ <_> ($ Id.VSub_DollarName '$G_DISTRO_NAME'))}
                          spids: [23273]
                        )
                      ]
                    )
                    (C {<mv>} {(DQ ($ Id.VSub_DollarName '$binary_name'))} {</usr/bin/ympd>})
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</usr/bin/ympd>})
                    (C {<rm>} {<ympd_> <Id.Lit_Star '*'>})
                    (C {<rm>} {<package.7z>})
                  ]
                  spids: [23083 23102]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<121>}
                  spids: [23319]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://download.roonlabs.com/builds/RoonBridge_linuxx64.tar.bz2'
                                        >
                                      )
                                    }
                                  spids: [23372]
                                )
                              ]
                            )
                          ]
                          spids: [23354 23368]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://download.roonlabs.com/builds/RoonBridge_linuxarmv8.tar.bz2'
                                        >
                                      )
                                    }
                                  spids: [23401]
                                )
                              ]
                            )
                          ]
                          spids: [23383 23397]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (SQ 
                                    <
'http://download.roonlabs.com/builds/RoonBridge_linuxarmv7hf.tar.bz2'
                                    >
                                  )
                                }
                              spids: [23416]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.tar.bz2>}
                    )
                    (C {<tar>} {<xvf>} {<package.tar.bz2>})
                    (C {<rm>} {<package.tar.bz2>})
                    (command.Simple
                      words: [{<rm>} {<-R>} {</etc/roonbridge>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} {</etc/roonbridge>})
                    (C {<mv>} {<RoonBridge/> <Id.Lit_Star '*'>} {</etc/roonbridge>})
                    (C {<rm>} {<-R>} {<RoonBridge>})
                  ]
                  spids: [23323 23342]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<119>}
                  spids: [23506]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://dietpi.com/downloads/binaries/all/cava_0.4.2_armv6.deb'
                                        >
                                      )
                                    }
                                  spids: [23559]
                                )
                              ]
                            )
                          ]
                          spids: [23541 23555]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://dietpi.com/downloads/binaries/all/cava_0.4.2_armv7.deb'
                                        >
                                      )
                                    }
                                  spids: [23588]
                                )
                              ]
                            )
                          ]
                          spids: [23570 23584]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://dietpi.com/downloads/binaries/all/cava_0.4.2_arm64.deb'
                                        >
                                      )
                                    }
                                  spids: [23617]
                                )
                              ]
                            )
                          ]
                          spids: [23599 23613]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<libpulse0>} {<libfftw3-3>})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.deb>}
                    )
                    (C {<dpkg>} {<-i>} {<package.deb>})
                    (C {<rm>} {<package.deb>})
                    (C {<wget>} 
                      {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/binaries/all/cava.psf>} {<-O>} {(DQ ($ Id.VSub_DollarName '$HOME')) </cava.psf>}
                    )
                  ]
                  spids: [23510 23529]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<118>}
                  spids: [23695]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://apt.mopidy.com/mopidy.gpg'>)}
                          spids: [23726]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (command.Pipeline
                      children: [
                        (C {<wget>} {<-q>} {<-O>} {<->} 
                          {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))}
                        )
                        (C {<apt-key>} {<add>} {<->})
                      ]
                      negated: F
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Great
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<wget>} {<https> <Id.Lit_Other ':'> <//apt.mopidy.com/stretch.list>} 
                              {<-O>} {</etc/apt/sources.list.d/mopidy.list>}
                            )
                          ]
                          spids: [23765 23779]
                        )
                      ]
                      else_action: [
                        (C {<wget>} 
                          {<https> <Id.Lit_Other ':'> <//apt.mopidy.com/> 
                            (DQ ($ Id.VSub_DollarName '$G_DISTRO_NAME')) <.list>
                          } {<-O>} {</etc/apt/sources.list.d/mopidy.list>}
                        )
                      ]
                    )
                    (C {<G_AGUP>})
                    (C {<G_AGI>} {<mopidy>})
                    (C {<pip>} {<install>} {<Mopidy-MusicBox-Webclient>} {<Mopidy-Local-Images>})
                  ]
                  spids: [23699 23718]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<31>}
                  spids: [23876]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.AndOr
                                  ops: [Id.Op_DAmp]
                                  children: [
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_GreatEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                        )
                                    )
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_Less
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 20>})
                                        )
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_AGI>} {<kodi-odroid>})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 11>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [(C {<G_AGI>} {<pulseaudio>} {<--no-install-recommends>})]
                                  spids: [23952 23966]
                                )
                              ]
                            )
                          ]
                          spids: [23911 23938]
                        )
                      ]
                      else_action: [(C {<G_AGI>} {<kodi>})]
                    )
                    (C {<G_AGI>} {<libcurl3-gnutls>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<G_AGI>} {<libnfs8>} {<libcec4>})]
                          spids: [24014 24028]
                        )
                      ]
                      else_action: [(C {<G_AGI>} {<libnfs4>} {<libcec3v4>})]
                    )
                  ]
                  spids: [23880 23899]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<39>}
                  spids: [24064]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<minidlna>})]
                  spids: [24068 24087]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<67>}
                  spids: [24108]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 20>})
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 21>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        <
'http://dietpi.com/downloads/binaries/all/noip_x32_x64.zip'
                                        >
                                      )
                                    }
                                  spids: [24169]
                                )
                              ]
                            )
                          ]
                          spids: [24143 24165]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 12>})
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DAmp
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_GreatEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 40>})
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_Less
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 50>})
                                            )
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {(DQ <'http://dietpi.com/downloads/binaries/all/noip_arm64.zip'>)}
                                  spids: [24221]
                                )
                              ]
                            )
                          ]
                          spids: [24180 24217]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                              op: assign_op.Equal
                              rhs: {(DQ <'http://dietpi.com/downloads/binaries/all/noip_armhf.zip'>)}
                              spids: [24236]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<dietpi-noip.zip>}
                    )
                    (C {<unzip>} {<-o>} {<dietpi-noip.zip>})
                    (C {<rm>} {<dietpi-noip.zip>})
                    (C {<mv>} {<noip_binary>} {</usr/local/bin/noip2>})
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</usr/local/bin/noip2>})
                  ]
                  spids: [24112 24131]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<108>}
                  spids: [24305]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {(SQ <'http://dietpi.com/downloads/binaries/all/amiberry-rpi_v2.1.1.7z'>)}
                          spids: [24336]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<alsa-oss>} {<joystick>} {<libsdl-image1.2>} {<libsdl-ttf2.0-0>} 
                      {<libsdl-gfx1.2-5>} {<libguichan-0.8.1-1> <Id.Lit_Star '*'>} {<libguichan-allegro-0.8.1-1> <Id.Lit_Star '*'>} 
                      {<libguichan-sdl-0.8.1-1> <Id.Lit_Star '*'>} {<libguichan-opengl-0.8.1-1> <Id.Lit_Star '*'>} {<libjpgalleg4.4>} {<libxml2>} {<libmpg123-0>}
                    )
                    (C {<G_AGI>} {<libpng12-0>} {<libflac8>} {<libmpg123-0>} {<libgoogle-perftools4>} 
                      {<libfreetype6>} {<libxxf86vm1>}
                    )
                    (command.Simple
                      words: [
                        {<mv>}
                        {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                          </amiberry/conf/autostart.uae>
                        }
                        {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                          </amiberry/conf/autostart_pre-dietpi-update.uae>
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.7z>}
                    )
                    (C {<7z>} {<x>} {<-y>} {<package.7z>} {<-o/etc>})
                    (C {<rm>} {<package.7z>})
                  ]
                  spids: [24309 24328]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<112>}
                  spids: [24469]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'http://dietpi.com/downloads/binaries/rpi/dxx-rebirth.7z'>)}
                          spids: [24500]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<libsdl-mixer1.2>} {<libsdl1.2debian>} {<libphysfs1>})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.7z>}
                    )
                    (C {<7z>} {<x>} {<-y>} {<package.7z>} 
                      {<-o> (DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA'))}
                    )
                    (C {<rm>} {<package.7z>})
                  ]
                  spids: [24473 24492]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<111>}
                  spids: [24563]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://hndl.urbackup.org/Server/2.1.20/urbackup-server_2.1.20_amd64.deb'
                                        >
                                      )
                                    }
                                  spids: [24612]
                                )
                              ]
                            )
                          ]
                          spids: [24594 24608]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://hndl.urbackup.org/Server/2.1.20/urbackup-server_2.1.20_armhf.deb'
                                        >
                                      )
                                    }
                                  spids: [24645]
                                )
                              ]
                            )
                          ]
                          spids: [24619 24641]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://hndl.urbackup.org/Server/2.1.20/urbackup-server-2.1.20.tar.gz'
                                        >
                                      )
                                    }
                                  spids: [24674]
                                )
                              ]
                            )
                          ]
                          spids: [24656 24670]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_AGI>} {<build-essential>} {<zlib1g-dev>} {<libcurl4-openssl-dev>} 
                              {<libcrypto> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <-dev>} {<sqlite3>}
                            )
                            (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                              {<package.tar>}
                            )
                            (C {<tar>} {<xzvf>} {<package.tar>})
                            (C {<rm>} {<package.tar>})
                            (C {<cd>} {<urbackup-server-> <Id.Lit_Star '*'>})
                            (C {<./configure>})
                            (C {<make>} {<-j>} {($ Id.VSub_DollarName '$G_HW_CPU_CORES')})
                            (C {<make>} {<install>})
                            (C {<sed>} {<-i>} 
                              {
                                (DQ 
                                  <
'/ExecStart=/c ExecStart=/usr/local/bin/urbackupsrv run --config /etc/default/urbackupsrv --no-consoletime'
                                  >
                                )
                              } {<urbackup-server.service>}
                            )
                            (C {<cp>} {<urbackup-server.service>} 
                              {</etc/systemd/system/urbackupsrv.service>}
                            )
                            (C {<cp>} {<defaults_server>} {</etc/default/urbackupsrv>})
                            (C {<cp>} {<logrotate_urbackupsrv>} {</etc/logrotate.d/urbackupsrv>})
                            (C {<cd>} {<..>})
                            (C {<rm>} {<-R>} {<urbackup-server-> <Id.Lit_Star '*'>})
                          ]
                          spids: [24697 24711]
                        )
                      ]
                      else_action: [
                        (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                          {<package.deb>}
                        )
                        (command.Pipeline
                          children: [
                            (C {<echo>} {<-e>} 
                              {
                                (DQ <'urbackup-server urbackup/backuppath string '> 
                                  ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </urbackup>
                                )
                              }
                            )
                            (C {<debconf-set-selections>})
                          ]
                          negated: F
                        )
                        (C {<dpkg>} {<-i>} {<package.deb>})
                        (C {<apt-get>} {<-f>} {<install>} {<-y>})
                        (C {<rm>} {<package.deb>})
                      ]
                    )
                  ]
                  spids: [24567 24586]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<51>}
                  spids: [24898]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(DQ <'http://dietpi.com/downloads/binaries/rpi/opentyrian_armhf.zip'>)}
                          spids: [24929]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<ibsdl1.2debian>} {<libsdl-net1.2>} {<--no-install-recommends>})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>} {<-d>} {</>})
                    (C {<rm>} {<package.zip>})
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</usr/local/games/opentyrian/opentyrian>})
                  ]
                  spids: [24902 24921]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<59>}
                  spids: [25001]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'https://github.com/Fourdee/RPi_Cam_Web_Interface/archive/6.2.29.zip'
                                >
                              )
                            }
                          spids: [25032]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<gpac>} {<motion>})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>})
                    (C {<rm>} {<package.zip>})
                    (C {<cd>} {<RPi_Cam> <Id.Lit_Star '*'>})
                    (C {<mkdir>} {<-p>} {</etc/motion>})
                    (C {<cp>} {<etc/motion/motion.conf.1>} {</etc/motion/motion.conf>})
                    (C {<cp>} {<etc/raspimjpeg/raspimjpeg.1>} {</etc/raspimjpeg>})
                    (C {<mkdir>} {<-p>} {</var/www/dietpicam/media>})
                    (C {<cp>} {<-R>} {<www/> <Id.Lit_Star '*'>} {</var/www/dietpicam/>})
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</var/www/dietpicam/raspizip.sh>})
                    (C {<mknod>} {</var/www/dietpicam/FIFO>} {<p>})
                    (C {<mknod>} {</var/www/dietpicam/FIFO1>} {<p>})
                    (C {<ln>} {<-sf>} {</run/shm/mjpeg/cam.jpg>} {</var/www/dietpicam/cam.jpg>})
                    (C {<ln>} {<-sf>} {</run/shm/mjpeg/status_mjpeg.txt>} 
                      {</var/www/dietpicam/status_mjpeg.txt>}
                    )
                    (C {<cp>} {<bin/raspimjpeg>} {</opt/vc/bin/raspimjpeg>})
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</opt/vc/bin/raspimjpeg>})
                    (C {<ln>} {<-s>} {</opt/vc/bin/raspimjpeg>} {</usr/bin/raspimjpeg>})
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$HOME')) </RPi_Cam> <Id.Lit_Star '*'>})
                  ]
                  spids: [25005 25024]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<45>}
                  spids: [25251]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<deluged>} {<deluge-web>} {<deluge-webui>} {<deluge-console>})
                  ]
                  spids: [25255 25274]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<100>}
                  spids: [25301]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<python>})
                    (C {<local>} {<Id.Lit_VarLike 'grasshopper_directory='> (SQ </var/www>)})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'http://sourceforge.net/projects/grasshopperwebapp/files/grasshopper_v5_application.zip/download'
                                >
                              )
                            }
                          spids: [25350]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<grasshopper.zip>}
                    )
                    (C {<unzip>} {<-o>} {<grasshopper.zip>} {<-d>} 
                      {(DQ ($ Id.VSub_DollarName '$grasshopper_directory'))}
                    )
                    (C {<rm>} {<grasshopper.zip>})
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} 
                      {(DQ ($ Id.VSub_DollarName '$grasshopper_directory')) </install/install.sh>}
                    )
                    (C {(DQ ($ Id.VSub_DollarName '$grasshopper_directory')) </install/install.sh>})
                  ]
                  spids: [25305 25324]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<106>}
                  spids: [25424]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/harmon25/raspcontrol/archive/master.zip'>)}
                          spids: [25455]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>})
                    (C {<rm>} {<package.zip>})
                    (C {<mkdir>} {<-p>} {</var/www/raspcontrol>})
                    (C {<mv>} {<raspcontrol-master/> <Id.Lit_Star '*'>} {</var/www/raspcontrol>})
                    (C {<rm>} {<-R>} {<raspcontrol-master>})
                  ]
                  spids: [25428 25447]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<115>}
                  spids: [25524]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'http://www.webmin.com/download/deb/webmin-current.deb'>)}
                          spids: [25555]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.deb>}
                    )
                    (C {<dpkg>} {<-i>} {<package.deb>})
                    (C {<G_AGF>})
                    (C {<rm>} {<package.deb>})
                  ]
                  spids: [25528 25547]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<126>}
                  spids: [25606]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'http://packages.openmediavault.org/public'>)}
                          spids: [25637]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <'deb '> ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS') <' erasmus main'>)
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/apt/sources.list.d/openmediavault.list>}
                        )
                      ]
                    )
                    (C {<G_AGUP>})
                    (C {<G_AGI>} {<openmediavault-keyring>})
                    (command.Simple
                      words: [{<debconf-set-selections>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_TLess '<<<'>
                          fd: -1
                          arg_word: {(DQ <'openmediavault openmediavault/run-initsystem note'>)}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<debconf-set-selections>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_TLess '<<<'>
                          fd: -1
                          arg_word: {(DQ <'postfix postfix/main_mailer_type select No configuration'>)}
                        )
                      ]
                    )
                    (C {<G_AGUP>})
                    (C {<G_AGI>} {<openmediavault>} {<postfix>})
                  ]
                  spids: [25610 25629]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<129>}
                  spids: [25714]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/ArturSierzant/OMPD/archive/master.zip'>)}
                          spids: [25745]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>} {<-d>} {</var/www/>})
                    (command.Simple
                      words: [{<rm>} {<-R>} {</var/www/ompd>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<mv>} {</var/www/OMPD> <Id.Lit_Star '*'>} {</var/www/ompd>})
                    (C {<rm>} {<package.zip>})
                  ]
                  spids: [25718 25737]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<135>}
                  spids: [25818]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<darkice>} {<icecast2>})]
                  spids: [25822 25841]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<63>}
                  spids: [25865]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/afaqurk/linux-dash/archive/master.zip'>)}
                          spids: [25896]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>})
                    (C {<rm>} {<package.zip>})
                    (C {<mkdir>} {<-p>} {</var/www/linuxdash>})
                    (C {<mv>} {<linux-dash-master/> <Id.Lit_Star '*'>} {</var/www/linuxdash>})
                    (C {<rm>} {<-R>} {<linux-dash-master>})
                  ]
                  spids: [25869 25888]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<93>}
                  spids: [25965]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'http://install.pi-hole.net'>)}
                          spids: [25996]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-cgi>} 
                      {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-sqlite> <Id.Lit_Star '*'>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                command_list: 
                                                  (command.CommandList
                                                    children: [
                                                      (command.Pipeline
                                                        children: [
                                                          (C {<free>} {<-m>})
                                                          (C {<grep>} {<-m1>} {(SQ <'Mem:'>)})
                                                          (C {<awk>} {(SQ <'{print $4}'>)})
                                                        ]
                                                        negated: F
                                                      )
                                                    ]
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 512>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DAmp]
                                          children: [
                                            (C {<Id.Lit_LBracket '['>} {<-f>} {</etc/dphys-swapfile>} 
                                              {<Id.Lit_RBracket ']'>}
                                            )
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_Less
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: 
                                                        {
                                                          (command_sub
                                                            left_token: <Id.Left_DollarParen '$('>
                                                            command_list: 
                                                              (command.CommandList
                                                                children: [
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (C {<grep>} 
                                                                        {(SQ <'CONF_SWAPSIZE='>)} {</etc/dphys-swapfile>}
                                                                      )
                                                                      (C {<sed>} {(SQ <'s/.*=//'>)})
                                                                    ]
                                                                    negated: F
                                                                  )
                                                                ]
                                                              )
                                                          )
                                                        }
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 512>})
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                                      {
                                        (DQ 
                                          <
'Increasing swapfile size to 512MB before running gravity.sh, please wait...'
                                          > <Id.Lit_Other '\\'> <n>
                                        )
                                      }
                                    )
                                    (C {</DietPi/dietpi/func/dietpi-set_dphys-swapfile>} {<512>})
                                  ]
                                  spids: [26073 26114]
                                )
                              ]
                            )
                          ]
                          spids: [26033 26069]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<mv>} {</etc/lighttpd/lighttpd.conf>} {</etc/lighttpd/lighttpd.conf.bak>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<install.sh>}
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<install.sh>})
                    (C {<./install.sh>})
                    (C {<local>} {<Id.Lit_VarLike 'exit_code='> ($ Id.VSub_QMark '$?')})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_NEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$exit_code')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<1>} 
                              {
                                (DQ <'Pi-Hole exited with code ('> ($ Id.VSub_DollarName '$exit_code') 
                                  <') and is not installed.'>
                                )
                              }
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                        )
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [26220]
                                )
                              ]
                            )
                          ]
                          spids: [26191 26205]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<mv>} {</etc/lighttpd/lighttpd.conf.bak>} {</etc/lighttpd/lighttpd.conf>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                  ]
                  spids: [25969 25988]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<33>}
                  spids: [26253]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'https://sourceforge.net/projects/subsonic/files/subsonic/5.3/subsonic-5.3.deb/download'
                                >
                              )
                            }
                          spids: [26284]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.deb>}
                    )
                    (C {<dpkg>} {<-i>} {<package.deb>})
                    (C {<rm>} {<package.deb>})
                  ]
                  spids: [26257 26276]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<34>}
                  spids: [26339]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'https://sourceforge.net/projects/subsonic/files/subsonic/6.1.3/subsonic-6.1.3.deb/download'
                                >
                              )
                            }
                          spids: [26370]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.deb>}
                    )
                    (C {<dpkg>} {<-i>} {<package.deb>})
                    (C {<rm>} {<package.deb>})
                  ]
                  spids: [26343 26362]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<68>}
                  spids: [26425]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'https://github.com/weaved/installer/raw/master/Raspbian%20deb/1.3-07/weavedconnectd_1.3-07v_armhf.deb'
                                >
                              )
                            }
                          spids: [26456]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.deb>}
                    )
                    (C {<dpkg>} {<-i>} {<package.deb>})
                    (C {<rm>} {<package.deb>})
                  ]
                  spids: [26429 26448]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 71>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 69>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [26529]
                        )
                      ]
                    )
                  ]
                  spids: [26506 26525]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<69>}
                  spids: [26546]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<-f>} {</etc/.dietpi_image_version>} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<G_AGI>} {<python-rpi.gpio>} {<python3-rpi.gpio>})]
                          spids: [26581 26592]
                        )
                      ]
                      else_action: [(C {<G_AGI>} {<python3-pip>}) (C {<pip3>} {<install>} {<RPi.GPIO>})]
                    )
                  ]
                  spids: [26550 26569]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<70>}
                  spids: [26637]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://git.drogon.net/?p=wiringPi;a=snapshot;h=HEAD;sf=tgz'
                                        >
                                      )
                                    }
                                  spids: [26694]
                                )
                              ]
                            )
                          ]
                          spids: [26672 26686]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_GreatEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_Less
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 20>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'https://github.com/hardkernel/wiringPi/archive/master.zip'
                                        >
                                      )
                                    }
                                  spids: [26731]
                                )
                              ]
                            )
                          ]
                          spids: [26705 26727]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 51>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'https://github.com/LeMaker/WiringBP/archive/bananapro.zip'
                                        >
                                      )
                                    }
                                  spids: [26760]
                                )
                              ]
                            )
                          ]
                          spids: [26742 26756]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                              {<package.tar>}
                            )
                            (C {<tar>} {<xfz>} {<package.tar>})
                            (C {<rm>} {<package.tar>})
                          ]
                          spids: [26783 26797]
                        )
                      ]
                      else_action: [
                        (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                          {<package.zip>}
                        )
                        (C {<unzip>} {<package.zip>})
                        (C {<rm>} {<package.zip>})
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 51>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<mv>} {<WiringBP> <Id.Lit_Star '*'>} {<wiringPi>})]
                          spids: [26859 26873]
                        )
                      ]
                    )
                    (C {<cd>} {<wiringPi> <Id.Lit_Star '*'>})
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<build>})
                    (C {<./build>})
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                  ]
                  spids: [26641 26660]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<72>}
                  spids: [26928]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {</DietPi/dietpi/func/dietpi-set_hardware>} {<i2c>} {<enable>})
                  ]
                  spids: [26932 26951]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<122>}
                  spids: [26975]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<python>} {<python3>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<G_AGI>} {<python-rpi.gpio>})]
                          spids: [27018 27032]
                        )
                      ]
                    )
                    (C {<npm>} {<install>} {<-g>} {<node-red>} {<--unsafe-perm>})
                  ]
                  spids: [26979 26998]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<123>}
                  spids: [27070]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Great
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<G_AGI>} {<mosquitto>})]
                          spids: [27101 27115]
                        )
                      ]
                      else_action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [(C {<dpkg>} {<--add-architecture>} {<armhf>}) (C {<G_AGUP>})]
                              spids: [27137 27151]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                              op: assign_op.Equal
                              rhs: {(SQ <'http://dietpi.com/downloads/binaries/all/'>)}
                              spids: [27178]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DAmp
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_GreatEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_LessEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                            )
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                      op: assign_op.PlusEqual
                                      rhs: {(SQ <'libssl1.0.0_1.0.1t-1+deb8u7_armhf.deb'>)}
                                      spids: [27215]
                                    )
                                  ]
                                )
                              ]
                              spids: [27189 27211]
                            )
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                      op: assign_op.PlusEqual
                                      rhs: {(SQ <'libssl1.0.0_1.0.1t-1+deb8u7_amd64.deb'>)}
                                      spids: [27244]
                                    )
                                  ]
                                )
                              ]
                              spids: [27226 27240]
                            )
                          ]
                        )
                        (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                        (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                          {<package.deb>}
                        )
                        (C {<dpkg>} {<-i>} {<package.deb>})
                        (C {<rm>} {<package.deb>})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (SQ 
                                    <
'http://dietpi.com/downloads/binaries/all/mosquitto_1.4.14-0mosquitto1_nows1_armhf.deb'
                                    >
                                  )
                                }
                              spids: [27286]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (SQ 
                                            <
'http://dietpi.com/downloads/binaries/all/mosquitto_1.4.14-0mosquitto1_nows1_amd64.deb'
                                            >
                                          )
                                        }
                                      spids: [27310]
                                    )
                                  ]
                                )
                              ]
                              spids: [27292 27306]
                            )
                          ]
                        )
                        (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                        (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                          {<package.deb>}
                        )
                        (C {<dpkg>} {<-i>} {<package.deb>})
                        (C {<G_AGF>})
                        (C {<rm>} {<package.deb>})
                      ]
                    )
                  ]
                  spids: [27074 27093]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<131>}
                  spids: [27376]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/blynkkk/blynk-server/releases'>)}
                          spids: [27411]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<mkdir>} {<-p>} {</etc/blynkserver>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'https://github.com/blynkkk/blynk-server/releases/download/v0.29.7/server-0.29.7-java8.jar'
                                >
                              )
                            }
                          spids: [27433]
                        )
                      ]
                    )
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {</etc/blynkserver/server.jar>}
                    )
                    (C {<G_AGI>} {<python>})
                    (C {<npm>} {<install>} {<-g>} {<onoff>})
                    (C {<npm>} {<install>} {<-g>} {<blynk-library>})
                  ]
                  spids: [27380 27399]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<124>}
                  spids: [27487]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Unary
                                      op_id: Id.Arith_Bang
                                      child: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_USER_INPUTS')}
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{<debconf-set-selections>}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_TLess '<<<'>
                                  fd: -1
                                  arg_word: {(DQ <'networkaudiod networkaudiod/license note false'>)}
                                )
                              ]
                            )
                          ]
                          spids: [27522 27534]
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'apackages='> (sh_array_literal left:<Id.Op_LParen _>)}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:apackages)
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [
                                          {
                                            (SQ 
                                              <
'http://dietpi.com/downloads/binaries/all/gcc-6-base_6.3.0-6_armhf.deb'
                                              >
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [27586]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:apackages)
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [
                                          {
                                            (SQ 
                                              <
'http://dietpi.com/downloads/binaries/all/libstdc++6_6.3.0-6_armhf.deb'
                                              >
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [27594]
                                )
                              ]
                            )
                          ]
                          spids: [27568 27582]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:apackages)
                          op: assign_op.PlusEqual
                          rhs: 
                            {
                              (sh_array_literal
                                left: <Id.Op_LParen _>
                                words: [
                                  {
                                    (SQ 
                                      <
'https://www.signalyst.eu/bins/naa/linux/stretch/networkaudiod_3.5.2-36_armhf.deb'
                                      >
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [27607]
                        )
                      ]
                    )
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: (sh_lhs_expr.Name name:i)
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                          right: 
                            (arith_expr.ArithWord
                              w: 
                                {
                                  (braced_var_sub
                                    token: <Id.VSub_Name apackages>
                                    prefix_op: (Id.VSub_Pound)
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                  )
                                }
                            )
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: (sh_lhs_expr.Name name:i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: <Id.VSub_Name apackages>
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$i')}
                                                )
                                            )
                                        )
                                      )
                                    }
                                  spids: [27649]
                                )
                              ]
                            )
                            (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                          ]
                        )
                    )
                    (C {<G_AGI>} {<libasound2>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_AGI>} {<gcc-6-base>} 
                              {<libstdc> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <6>}
                            )
                          ]
                          spids: [27686 27700]
                        )
                      ]
                    )
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: (sh_lhs_expr.Name name:i)
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                          right: 
                            (arith_expr.ArithWord
                              w: 
                                {
                                  (braced_var_sub
                                    token: <Id.VSub_Name apackages>
                                    prefix_op: (Id.VSub_Pound)
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                  )
                                }
                            )
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: (sh_lhs_expr.Name name:i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<wget>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name apackages>
                                    bracket_op: 
                                      (bracket_op.ArrayIndex
                                        expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                      )
                                  )
                                )
                              } {<-O>} {<package.deb>}
                            )
                            (C {<dpkg>} {<-i>} {<package.deb>})
                            (C {<rm>} {<package.deb>})
                          ]
                        )
                    )
                    (C {<unset>} {<apackages>})
                  ]
                  spids: [27491 27510]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<125>}
                  spids: [27804]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<tomcat8>})]
                  spids: [27808 27827]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<71>}
                  spids: [27849]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'https://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz/download'
                                >
                              )
                            }
                          spids: [27880]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<python-dev>} {<python-setuptools>} {<--no-install-recommends>})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.tar>}
                    )
                    (C {<tar>} {<xvzf>} {<package.tar>})
                    (C {<rm>} {<package.tar>})
                    (C {<cd>} {<WebIOPi> <Id.Lit_Star '*'>})
                    (C {<sed>} {<-i>} {(SQ <'/read response/c\\response="n"'>)} {<setup.sh>})
                    (C {<./setup.sh>})
                    (C {<clear>})
                    (C {<cd>} {<..>})
                    (C {<rm>} {<-R>} {<WebIOPi> <Id.Lit_Star '*'>})
                  ]
                  spids: [27853 27872]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<62>}
                  spids: [27997]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 11>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {</DietPi/dietpi/func/dietpi-set_hardware>} {<lcdpanel>} 
                              {<odroid-cloudshell>}
                            )
                          ]
                          spids: [28036 28050]
                        )
                      ]
                    )
                  ]
                  spids: [28001 28020]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<98>}
                  spids: [28074]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://www.haproxy.org/download/1.8/src/haproxy-1.8.2.tar.gz'>)}
                          spids: [28106]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.tar>}
                    )
                    (C {<tar>} {<-xvf>} {<package.tar>})
                    (C {<rm>} {<package.tar>})
                    (C {<cd>} {<haproxy-> <Id.Lit_Star '*'>})
                    (C {<G_AGI>} {<libpcre3-dev>} {<libssl-dev>} {<zlib1g-dev>})
                    (C {<make>} {<-j>} {($ Id.VSub_DollarName '$G_HW_CPU_CORES')} 
                      {<Id.Lit_VarLike 'TARGET='> <linux2628>} {<Id.Lit_VarLike 'CPU='> <generic>} {<Id.Lit_VarLike 'USE_PCRE='> <1>} 
                      {<Id.Lit_VarLike 'USE_OPENSSL='> <1>} {<Id.Lit_VarLike 'USE_ZLIB='> <1>} {<Id.Lit_VarLike 'USE_LINUX_SPLICE='> <1>}
                    )
                    (C {<make>} {<install>})
                    (C {<mkdir>} {</etc/haproxy>})
                    (C {<cd>} {<..>})
                    (C {<rm>} {<-R>} {<haproxy-> <Id.Lit_Star '*'>})
                    (C {<cp>} {</DietPi/dietpi/conf/haproxy_init>} {</etc/init.d/haproxy>})
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</etc/init.d/haproxy>})
                    (C {<update-rc.d>} {<haproxy>} {<defaults>})
                  ]
                  spids: [28078 28097]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<35>}
                  spids: [28267]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [(C {<dpkg>} {<--add-architecture>} {<armhf>}) (C {<G_AGUP>})]
                                  spids: [28324 28338]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://dietpi.com/downloads/binaries/all/logitechmediaserver_7.9.1_armv7-(stretch).deb'
                                        >
                                      )
                                    }
                                  spids: [28357]
                                )
                              ]
                            )
                            (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                              {<package.deb>}
                            )
                            (C {<dpkg>} {<-i>} {<package.deb>})
                            (C {<rm>} {<package.deb>})
                            (C {<G_AGF>})
                          ]
                          spids: [28302 28316]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (SQ 
                                    <
'http://dietpi.com/downloads/binaries/all/logitechmediaserver_7.9.0_all.deb'
                                    >
                                  )
                                }
                              spids: [28394]
                            )
                          ]
                        )
                        (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                        (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                          {<package.deb>}
                        )
                        (C {<dpkg>} {<-i>} {<package.deb>})
                        (C {<rm>} {<package.deb>})
                        (C {<G_AGF>})
                        (C {<service>} {<logitechmediaserver>} {<stop>})
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (C {<wget>} 
                                  {<http> <Id.Lit_Other ':'> 
                                    <
//dietpi.com/downloads/binaries/all/logitechmediaserver_7.9.0_CPAN_5.20_armv6hf.tar.gz
                                    >
                                  } {<-O>} {<package.tar>}
                                )
                                (C {<tar>} {<xvzf>} {<package.tar>} {<-C>} {</>})
                                (C {<rm>} {<package.tar>})
                              ]
                              spids: [28456 28470]
                            )
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (C {<G_AGI>} {<libxml-parser-perl>})
                                (C {<G_AGI>} {<zlib1g-dev>} {<libjpeg-dev>} {<libpng-dev>} 
                                  {<libjpeg62-turbo-dev>}
                                )
                                (C {<wget>} 
                                  {<http> <Id.Lit_Other ':'> 
                                    <
//dietpi.com/downloads/binaries/all/DietPi-LMS7.9-CPAN_arm64.zip
                                    >
                                  } {<-O>} {<package.zip>}
                                )
                                (C {<unzip>} {<-o>} {<package.zip>} {<-d>} {</usr/share/squeezeboxserver>})
                                (C {<rm>} {<package.zip>})
                              ]
                              spids: [28506 28520]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [28271 28290]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<55>}
                  spids: [28588]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://wordpress.org/latest.zip'>)}
                          spids: [28619]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>} {<-d>} {</var/www/>})
                    (C {<rm>} {<package.zip>})
                  ]
                  spids: [28592 28611]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<27>}
                  spids: [28669]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<tightvncserver>} {<x11vnc>} {<--no-install-recommends>})
                  ]
                  spids: [28673 28692]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<28>}
                  spids: [28718]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<vnc4server>} {<x11vnc>} {<--no-install-recommends>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<G_AGI>} {<tigervnc-common>})]
                          spids: [28763 28777]
                        )
                      ]
                    )
                  ]
                  spids: [28722 28741]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<120>}
                  spids: [28799]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<realvnc-vnc-server>})]
                  spids: [28803 28822]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<73>}
                  spids: [28880]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<touch>} {</var/log/auth.log>})
                    (C {<G_AGI>} {<fail2ban>} {<--no-install-recommends>})
                  ]
                  spids: [28884 28903]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<64>}
                  spids: [28936]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/phpsysinfo/phpsysinfo/archive/master.zip'>)}
                          spids: [28968]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>} {<-d>} {</var/www/>})
                    (C {<rm>} {<package.zip>})
                    (C {<mv>} {</var/www/phpsysinfo-> <Id.Lit_Star '*'>} {</var/www/phpsysinfo>})
                  ]
                  spids: [28940 28959]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<56>}
                  spids: [29026]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'http://dietpi.com/downloads/binaries/all/Single_File_PHP_Gallery_4.6.1.zip'
                                >
                              )
                            }
                          spids: [29058]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>} {<-d>} {</var/www/gallery>})
                    (C {<rm>} {<package.zip>})
                  ]
                  spids: [29030 29049]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<40>}
                  spids: [29108]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/ampache/ampache/archive/master.zip'>)}
                          spids: [29139]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>})
                    (C {<rm>} {<package.zip>})
                    (C {<mv>} {<ampache-> <Id.Lit_Star '*'>} {</var/www/ampache>})
                    (command.Simple
                      words: [{<php>} {<-r>} {(DQ <"readfile('https://getcomposer.org/installer');">)}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {<composer-setup.php>}
                        )
                      ]
                    )
                    (C {<php>} {<composer-setup.php>})
                    (C {<php>} {<-r>} {(DQ <"unlink('composer-setup.php');">)})
                    (C {<mv>} {<composer.phar>} {</usr/local/bin/composer>})
                    (C {<cd>} {</var/www/ampache>})
                    (C {<composer>} {<install>} {<--prefer-source>} {<--no-interaction>})
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                  ]
                  spids: [29112 29131]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<97>}
                  spids: [29256]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<openvpn>} {<easy-rsa>} {<iptables>})]
                  spids: [29260 29279]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<117>}
                  spids: [29305]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://install.pivpn.io'>)}
                          spids: [29336]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<lsb-release>})
                    (C {<useradd>} {<pivpn>})
                    (C {<mkdir>} {<-p>} {</home/pivpn>})
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: [(C {<true>})]
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                              {<pivpn_install.sh>}
                            )
                            (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<pivpn_install.sh>})
                            (C {<sed>} {<-i>} {(SQ <'/shutdown[[:space:]]/d'>)} {<pivpn_install.sh>})
                            (C {<./pivpn_install.sh>})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_NEqual
                                              left: (arith_expr.ArithWord w:{($ Id.VSub_QMark '$?')})
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<whiptail>} {<--title>} {(DQ <'PiVPN failed/aborted'>)} 
                                      {<--yesno>} 
                                      {
                                        (DQ 
                                          <
'The PiVPN installer was not successful and/or canceled prior to its completion.'
                                          > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'nWould you like DietPi to run the PiVPN installer again?'>
                                        )
                                      } {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<--defaultno>} {<12>} {<70>}
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_NEqual
                                                      left: 
                                                        (arith_expr.ArithWord
                                                          w: {($ Id.VSub_QMark '$?')}
                                                        )
                                                      right: 
                                                        (arith_expr.ArithWord
                                                          w: {<Id.Lit_Digits 0>}
                                                        )
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.IndexedName
                                                      name: aSOFTWARE_INSTALL_STATE
                                                      index: 
                                                        (arith_expr.ArithWord
                                                          w: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$INSTALLING_INDEX'
                                                              )
                                                            }
                                                        )
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<0>}
                                                  spids: [29488]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          spids: [29470 29484]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [29421 29435]
                                )
                              ]
                              else_action: [
                                (C {<rm>} {<pivpn_install.sh>})
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Break break>
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [29309 29328]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<92>}
                  spids: [29533]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_AGI>} {<certbot>})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_GreatEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {<Id.Lit_Digits 83>}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [(C {<G_AGI>} {<python-certbot-apache>})]
                                  spids: [29588 29607]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_GreatEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {<Id.Lit_Digits 85>}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [(C {<G_AGI>} {<python-certbot-nginx>})]
                                  spids: [29621 29640]
                                )
                              ]
                            )
                          ]
                          spids: [29564 29578]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                              op: assign_op.Equal
                              rhs: {(SQ <'https://github.com/certbot/certbot/archive/master.zip'>)}
                              spids: [29658]
                            )
                          ]
                        )
                        (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                        (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                          {<package.zip>}
                        )
                        (C {<unzip>} {<-o>} {<package.zip>} {<-d>} {</root>})
                        (C {<rm>} {<package.zip>})
                        (C {<mv>} {<certbot> <Id.Lit_Star '*'>} {</etc/certbot_scripts>})
                        (C {<cd>} {</etc/certbot_scripts>})
                        (C {<./certbot-auto>} {<-n>} {<--os-packages-only>})
                        (C {<cd>} {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) </>})
                      ]
                    )
                  ]
                  spids: [29537 29556]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 61>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 60>})
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [29766]
                        )
                      ]
                    )
                  ]
                  spids: [29743 29762]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<60>}
                  spids: [29783]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'http://dietpi.com/downloads/binaries/all/hostapd_2.5_all.zip'>)}
                          spids: [29814]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<hostapd>} {<isc-dhcp-server>} {<iptables>} {<libnl-3-200>})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>})
                    (C {<rm>} {<package.zip>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                command_list: 
                                                  (command.CommandList
                                                    children: [
                                                      (command.Pipeline
                                                        children: [
                                                          (C {<lsusb>})
                                                          (C {<grep>} {<-ci>} {<-m1>} {(SQ <RTL8188C>)})
                                                        ]
                                                        negated: F
                                                      )
                                                    ]
                                                  )
                                              )
                                            }
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 70>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WIFIHOTSPOT_RTL8188C_DEVICE)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [29913]
                                )
                              ]
                            )
                          ]
                          spids: [29873 29906]
                        )
                      ]
                    )
                    (C {<local>} {<Id.Lit_VarLike 'filename_hostapd='> (SQ )})
                    (C {<local>} {<Id.Lit_VarLike 'filename_hostapd_cli='> (SQ )})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:filename_hostapd)
                                  op: assign_op.Equal
                                  rhs: {(SQ <hostapd-nl80211-armv6>)}
                                  spids: [29963]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:filename_hostapd_cli)
                                  op: assign_op.Equal
                                  rhs: {(SQ <hostapd_cli-armv6>)}
                                  spids: [29969]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  ($ Id.VSub_DollarName 
'$WIFIHOTSPOT_RTL8188C_DEVICE'
                                                  )
                                                }
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:filename_hostapd)
                                          op: assign_op.Equal
                                          rhs: {(SQ <hostapd-rtl8188c-armv6>)}
                                          spids: [29990]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [29976 29986]
                                )
                              ]
                            )
                          ]
                          spids: [29945 29959]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:filename_hostapd)
                                  op: assign_op.Equal
                                  rhs: {(SQ <hostapd-nl80211-armv7>)}
                                  spids: [30023]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:filename_hostapd_cli)
                                  op: assign_op.Equal
                                  rhs: {(SQ <hostapd_cli-armv7>)}
                                  spids: [30029]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  ($ Id.VSub_DollarName 
'$WIFIHOTSPOT_RTL8188C_DEVICE'
                                                  )
                                                }
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:filename_hostapd)
                                          op: assign_op.Equal
                                          rhs: {(SQ <hostapd-rtl8188c-armv7>)}
                                          spids: [30050]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [30036 30046]
                                )
                              ]
                            )
                          ]
                          spids: [30005 30019]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:filename_hostapd)
                                  op: assign_op.Equal
                                  rhs: {(SQ <hostapd-nl80211-arm64>)}
                                  spids: [30083]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:filename_hostapd_cli)
                                  op: assign_op.Equal
                                  rhs: {(SQ <hostapd_cli-arm64>)}
                                  spids: [30089]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  ($ Id.VSub_DollarName 
'$WIFIHOTSPOT_RTL8188C_DEVICE'
                                                  )
                                                }
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:filename_hostapd)
                                          op: assign_op.Equal
                                          rhs: {(SQ <hostapd-rtl8188c-arm64>)}
                                          spids: [30110]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [30096 30106]
                                )
                              ]
                            )
                          ]
                          spids: [30065 30079]
                        )
                      ]
                    )
                    (C {<mv>} {(DQ ($ Id.VSub_DollarName '$filename_hostapd'))} {</usr/sbin/hostapd>})
                    (C {<mv>} {(DQ ($ Id.VSub_DollarName '$filename_hostapd_cli'))} 
                      {</usr/sbin/hostapd_cli>}
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</usr/sbin/hostapd>})
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</usr/sbin/hostapd_cli>})
                    (C {<rm>} {<hostapd-> <Id.Lit_Star '*'>})
                    (C {</DietPi/dietpi/func/dietpi-set_hardware>} {<wifimodules>} {<enable>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'http://dietpi.com/downloads/binaries/all/'>)}
                                  spids: [30206]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DPipe
                                              left: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                                )
                                              right: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <'libssl1.0.0_1.0.1t-1+deb8u7_armhf.deb'>)}
                                          spids: [30243]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [30217 30239]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <'libssl1.0.0_1.0.1t-1+deb8u7_arm64.deb'>)}
                                          spids: [30272]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [30254 30268]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <'libssl1.0.0_1.0.1t-1+deb8u7_amd64.deb'>)}
                                          spids: [30301]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [30283 30297]
                                )
                              ]
                            )
                            (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                            (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                              {<package.deb>}
                            )
                            (C {<dpkg>} {<-i>} {<package.deb>})
                            (C {<rm>} {<package.deb>})
                          ]
                          spids: [30188 30202]
                        )
                      ]
                    )
                  ]
                  spids: [29787 29806]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<61>}
                  spids: [30357]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<tor>})]
                  spids: [30361 30380]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<37>}
                  spids: [30406]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {(SQ <'http://dietpi.com/downloads/binaries/all/shairport-sync_3.1.3_'>)}
                          spids: [30437]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <armv6.7z>)}
                                  spids: [30466]
                                )
                              ]
                            )
                          ]
                          spids: [30448 30462]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <armv7.7z>)}
                                  spids: [30495]
                                )
                              ]
                            )
                          ]
                          spids: [30477 30491]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <arm64.7z>)}
                                  spids: [30524]
                                )
                              ]
                            )
                          ]
                          spids: [30506 30520]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<openssl>} {<libsoxr0>} {<libavahi-client3>} {<libtool>} {<libconfig9>} 
                      {<libpopt0>} {<libdaemon0>} {<--no-install-recommends>}
                    )
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.7z>}
                    )
                    (C {<7z>} {<x>} {<-y>} {<package.7z>} {<-o/>})
                    (C {<rm>} {<package.7z>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'http://dietpi.com/downloads/binaries/all/'>)}
                                  spids: [30640]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DPipe
                                              left: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                                )
                                              right: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <'libssl1.0.0_1.0.1t-1+deb8u7_armhf.deb'>)}
                                          spids: [30677]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [30651 30673]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <'libssl1.0.0_1.0.1t-1+deb8u7_arm64.deb'>)}
                                          spids: [30706]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [30688 30702]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <'libssl1.0.0_1.0.1t-1+deb8u7_amd64.deb'>)}
                                          spids: [30735]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [30717 30731]
                                )
                              ]
                            )
                            (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                            (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                              {<package.deb>}
                            )
                            (C {<dpkg>} {<-i>} {<package.deb>})
                            (C {<rm>} {<package.deb>})
                          ]
                          spids: [30622 30636]
                        )
                      ]
                    )
                  ]
                  spids: [30410 30429]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<38>}
                  spids: [30790]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'http://dietpi.com/downloads/conf/BruteFIR/'>)}
                          spids: [30825]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<brutefir>})
                    (C {<wget>} {<-r>} {<-nH>} {<--cut-dirs> <Id.Lit_Equals '='> <2>} {<--no-parent>} 
                      {<--reject> <Id.Lit_Equals '='> (DQ <'index.htm*'>)} {<-e>} {<Id.Lit_VarLike 'robots='> <off>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))}
                    )
                    (C {<mv>} {<BruteFIR>} {</etc/>})
                  ]
                  spids: [30794 30813]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<48>}
                  spids: [30893]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'https://download.pydio.com/pub/core/archives/pydio-core-8.0.2.zip'
                                >
                              )
                            }
                          spids: [30928]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>} {<-d>} {</var/www>})
                    (C {<mv>} {</var/www/pydio-core-> <Id.Lit_Star '*'>} {</var/www/pydio>})
                    (C {<rm>} {<package.zip>})
                  ]
                  spids: [30897 30916]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<36>}
                  spids: [30986]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {(SQ <'http://dietpi.com/downloads/binaries/all/squeezelite-1.8_all.7z'>)}
                          spids: [31017]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<squeezelite>})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.7z>}
                    )
                    (C {<7z>} {<x>} {<-y>} {<package.7z>} {<-o/usr/bin>})
                    (C {<rm>} {<package.7z>})
                    (C {<rm>} {</usr/bin/squeezelite>})
                    (C {<local>} {<Id.Lit_VarLike 'target_binary='> (SQ )})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:target_binary)
                                  op: assign_op.Equal
                                  rhs: {(SQ <squeezelite_armv6>)}
                                  spids: [31105]
                                )
                              ]
                            )
                          ]
                          spids: [31087 31101]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:target_binary)
                                  op: assign_op.Equal
                                  rhs: {(SQ <squeezelite_armv7>)}
                                  spids: [31134]
                                )
                              ]
                            )
                          ]
                          spids: [31116 31130]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:target_binary)
                                  op: assign_op.Equal
                                  rhs: {(SQ <squeezelite_arm64>)}
                                  spids: [31163]
                                )
                              ]
                            )
                          ]
                          spids: [31145 31159]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:target_binary)
                                  op: assign_op.Equal
                                  rhs: {(SQ <squeezelite_amd64>)}
                                  spids: [31192]
                                )
                              ]
                            )
                          ]
                          spids: [31174 31188]
                        )
                      ]
                    )
                    (C {<ln>} {<-sf>} {</usr/bin/> (DQ ($ Id.VSub_DollarName '$target_binary'))} 
                      {</usr/bin/squeezelite>}
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</usr/bin/squeezelite>})
                  ]
                  spids: [30990 31009]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<99>}
                  spids: [31232]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/Fourdee/emonhub/archive/emon-pi.zip'>)}
                          spids: [31267]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<minicom>} {<python-serial>} {<python-configobj>} 
                      {<--no-install-recommends>}
                    )
                    (C {<pip>} {<install>} {<paho-mqtt>} {<pydispatcher>})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>})
                    (C {<rm>} {<package.zip>})
                    (C {<rm>} {<-R>} {</etc/emonhub>})
                    (C {<mkdir>} {<-p>} {</etc/emonhub>})
                    (C {<mv>} {<emonhub-> <Id.Lit_Star '*'> </> <Id.Lit_Star '*'>} {</etc/emonhub/>})
                    (C {<rm>} {<-R>} {<emonhub-> <Id.Lit_Star '*'>})
                  ]
                  spids: [31236 31255]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<66>}
                  spids: [31375]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'https://github.com/XavierBerger/RPi-Monitor-deb/raw/master/packages/rpimonitor_2.12-r0_all.deb'
                                >
                              )
                            }
                          spids: [31410]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.deb>}
                    )
                    (C {<dpkg>} {<-i>} {<package.deb>})
                    (C {<rm>} {<package.deb>})
                    (C {<apt-get>} {<-f>} {<-y>} {<install>})
                  ]
                  spids: [31379 31398]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<65>}
                  spids: [31470]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'http://dietpi.com/downloads/binaries/all/netdata_1.6.0_'>)}
                          spids: [31501]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <armv6.deb>)}
                                  spids: [31530]
                                )
                              ]
                            )
                          ]
                          spids: [31512 31526]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <armv7.deb>)}
                                  spids: [31559]
                                )
                              ]
                            )
                          ]
                          spids: [31541 31555]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <arm64.deb>)}
                                  spids: [31588]
                                )
                              ]
                            )
                          ]
                          spids: [31570 31584]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <amd64.deb>)}
                                  spids: [31617]
                                )
                              ]
                            )
                          ]
                          spids: [31599 31613]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<--no-install-recommends>} {<zlib1g-dev>})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.deb>}
                    )
                    (C {<dpkg>} {<-i>} {<package.deb>})
                    (C {<rm>} {<package.deb>})
                  ]
                  spids: [31474 31493]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<57>}
                  spids: [31684]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/fruux/Baikal/archive/master.zip'>)}
                          spids: [31719]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>} {<-d>} {</var/www>})
                    (C {<rm>} {<package.zip>})
                    (C {<mv>} {</var/www/Baikal> <Id.Lit_Star '*'>} {</var/www/baikal>})
                  ]
                  spids: [31688 31707]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<43>}
                  spids: [31777]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<mumble-server>})]
                  spids: [31781 31800]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<41>}
                  spids: [31822]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'http://download.opensuse.org/repositories/home:/emby/xUbuntu_14.04/'
                                >
                              )
                            }
                          spids: [31857]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://download.opensuse.org/repositories/home:/emby/Debian_'
                                        >
                                      )
                                    }
                                  spids: [31886]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <8.0>)}
                                          spids: [31911]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [31893 31907]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <9.0>)}
                                          spids: [31936]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [31918 31932]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 5>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <Next>)}
                                          spids: [31965]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [31943 31957]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ </>)}
                                  spids: [31976]
                                )
                              ]
                            )
                          ]
                          spids: [31868 31882]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {(DQ <'deb '> ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS') <' /'>)}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/apt/sources.list.d/emby-server.list>}
                        )
                      ]
                    )
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS')) <Release.key>})
                    (command.Simple
                      words: [{<apt-key>} {<add>} {<->}]
                      redirects: [(redir.Redir op:<Id.Redir_Less '<'> fd:-1 arg_word:{<Release.key>})]
                    )
                    (C {<rm>} {<Release.key>})
                    (C {<G_AGUP>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<wget>} 
                              {<http> <Id.Lit_Other ':'> 
                                <//ftp.us.debian.org/debian/pool/main/libj/libjpeg8/libjpeg8_8d-1> <Id.Lit_Other '+'> <deb7u1_armhf.deb>
                              } {<-O>} {<package.deb>}
                            )
                            (C {<dpkg>} {<-i>} {<package.deb>})
                            (C {<rm>} {<package.deb>})
                            (C {<wget>} 
                              {<http> <Id.Lit_Other ':'> 
                                <
//ftp.us.debian.org/debian/pool/main/libp/libpng/libpng12-0_1.2.50-2
                                > <Id.Lit_Other '+'> <deb8u3_armhf.deb>
                              } {<-O>} {<package.deb>}
                            )
                            (C {<dpkg>} {<-i>} {<package.deb>})
                            (C {<rm>} {<package.deb>})
                            (C {<wget>} 
                              {<http> <Id.Lit_Other ':'> 
                                <
//ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebp5_0.4.1-1.2
                                > <Id.Lit_Other '+'> <b2_armhf.deb>
                              } {<-O>} {<package.deb>}
                            )
                            (C {<dpkg>} {<-i>} {<package.deb>})
                            (C {<rm>} {<package.deb>})
                          ]
                          spids: [32042 32056]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<wget>} 
                              {<http> <Id.Lit_Other ':'> 
                                <
//ftp.us.debian.org/debian/pool/main/libp/libpng/libpng12-0_1.2.50-2
                                > <Id.Lit_Other '+'> <deb8u3_arm64.deb>
                              } {<-O>} {<package.deb>}
                            )
                            (C {<dpkg>} {<-i>} {<package.deb>})
                            (C {<rm>} {<package.deb>})
                            (C {<wget>} 
                              {<http> <Id.Lit_Other ':'> 
                                <
//ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebp5_0.4.1-1.2
                                > <Id.Lit_Other '+'> <b2_arm64.deb>
                              } {<-O>} {<package.deb>}
                            )
                            (C {<dpkg>} {<-i>} {<package.deb>})
                            (C {<rm>} {<package.deb>})
                            (C {<wget>} 
                              {<https> <Id.Lit_Other ':'> 
                                <
//mirror.i-novus.ru/ubuntu-ports/pool/main/libj/libjpeg-turbo/libjpeg-turbo8_1.3.0-0ubuntu2_arm64.deb
                                >
                              } {<-O>} {<package.deb>}
                            )
                            (C {<dpkg>} {<-i>} {<package.deb>})
                            (C {<rm>} {<package.deb>})
                            (C {<wget>} 
                              {<http> <Id.Lit_Other ':'> 
                                <
//turul.canonical.com/pool/main/libj/libjpeg8-empty/libjpeg8_8c-2ubuntu8_arm64.deb
                                >
                              } {<-O>} {<package.deb>}
                            )
                            (C {<dpkg>} {<-i>} {<package.deb>})
                            (C {<rm>} {<package.deb>})
                          ]
                          spids: [32142 32156]
                        )
                      ]
                    )
                    (C {<G_AGI>} {<emby-server>} {<embymagick>})
                  ]
                  spids: [31826 31845]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<42>}
                  spids: [32280]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'https://downloads.plex.tv/plex-media-server/1.10.1.4602-f54242b6b/plexmediaserver_1.10.1.4602-f54242b6b_amd64.deb'
                                        >
                                      )
                                    }
                                  spids: [32338]
                                )
                              ]
                            )
                          ]
                          spids: [32320 32334]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                              op: assign_op.Equal
                              rhs: {(SQ <'http://dev2day.de/pms/'>)}
                              spids: [32353]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                              {<package.deb>}
                            )
                            (C {<dpkg>} {<-i>} {<package.deb>})
                            (C {<rm>} {<package.deb>})
                          ]
                          spids: [32376 32390]
                        )
                      ]
                      else_action: [
                        (command.Simple
                          words: [
                            {<echo>}
                            {<-e>}
                            {
                              (DQ <'deb [arch=armhf] '> ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS') 
                                <' '> ($ Id.VSub_DollarName '$G_DISTRO_NAME') <' main'>
                              )
                            }
                          ]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_Great '>'>
                              fd: -1
                              arg_word: {</etc/apt/sources.list.d/plex.list>}
                            )
                          ]
                        )
                        (command.Pipeline
                          children: [
                            (C {<wget>} {<-O>} {<->} 
                              {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS')) 
                                <dev2day-pms.gpg.key>
                              }
                            )
                            (C {<apt-key>} {<add>} {<->})
                          ]
                          negated: F
                        )
                        (C {<G_AGUP>})
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (C {<dpkg>} {<--add-architecture>} {<armhf>})
                                (C {<G_AGUP>})
                                (C {<G_AGI>} {<binutils> <Id.Lit_Other ':'> <armhf>} 
                                  {<plexmediaserver-installer> <Id.Lit_Other ':'> <armhf>}
                                )
                              ]
                              spids: [32471 32485]
                            )
                          ]
                          else_action: [(C {<G_AGI>} {<plexmediaserver-installer>})]
                        )
                      ]
                    )
                  ]
                  spids: [32284 32303]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<52>}
                  spids: [32541]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://builds.cuberite.org/job/Cuberite%20Linux%20x64%20Master/lastSuccessfulBuild/artifact/Cuberite.tar.gz'
                                        >
                                      )
                                    }
                                  spids: [32594]
                                )
                              ]
                            )
                          ]
                          spids: [32576 32590]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://builds.cuberite.org/job/Cuberite%20Linux%20raspi-armhf%20Master/lastSuccessfulBuild/artifact/Cuberite.tar.gz'
                                        >
                                      )
                                    }
                                  spids: [32631]
                                )
                              ]
                            )
                          ]
                          spids: [32605 32627]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.tar>}
                    )
                    (C {<mkdir>} {<-p>} {</etc/cubrite>})
                    (C {<tar>} {<xzvf>} {<package.tar>} {<-C>} {</etc/cubrite>})
                    (C {<rm>} {<package.tar>})
                    (C {<mv>} {</etc/cubrite/Server/> <Id.Lit_Star '*'>} {</etc/cubrite/>})
                    (C {<rm>} {<-R>} {</etc/cuberite/Server>})
                  ]
                  spids: [32545 32564]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<53>}
                  spids: [32712]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/hexparrot/mineos-node.git'>)}
                          spids: [32748]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<python>} {<python3>} {<supervisor>} {<rdiff-backup>} {<screen>} {<rsync>})
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </mineos>})
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </mineos>})
                    (C {<git>} {<clone>} 
                      {<https> <Id.Lit_Other ':'> <//github.com/hexparrot/mineos-node.git>} {<minecraft>}
                    )
                    (C {<cd>} {<minecraft>})
                    (C {<git>} {<config>} {<core.filemode>} {<false>})
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<service.js>} {<mineos_console.js>} 
                      {<generate-sslcert.sh>} {<webui.js>}
                    )
                    (C {<npm>} {<install>})
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                  ]
                  spids: [32716 32735]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<49>}
                  spids: [32863]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'http://dietpi.com/downloads/binaries/all/gogs_'>)}
                          spids: [32894]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <armv6.zip>)}
                                  spids: [32923]
                                )
                              ]
                            )
                          ]
                          spids: [32905 32919]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <armv7.zip>)}
                                  spids: [32952]
                                )
                              ]
                            )
                          ]
                          spids: [32934 32948]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <amd64.zip>)}
                                  spids: [32981]
                                )
                              ]
                            )
                          ]
                          spids: [32963 32977]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>})
                    (C {<rm>} {<package.zip>})
                    (C {<mv>} {<gogs> <Id.Lit_Star '*'>} {</etc/gogs>})
                  ]
                  spids: [32867 32886]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<46>}
                  spids: [33040]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<qbittorrent-nox>})]
                  spids: [33044 33063]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<107>}
                  spids: [33085]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'http://bintray.com/novik65/generic/download_file?file_path=ruTorrent-3.7.zip'
                                >
                              )
                            }
                          spids: [33116]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<rtorrent>} {<screen>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<G_AGI>} {<unrar-free>})]
                          spids: [33145 33159]
                        )
                      ]
                      else_action: [(C {<G_AGI>} {<unrar>})]
                    )
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>})
                    (C {<rm>} {<package.zip>})
                    (C {<mkdir>} {<-p>} {</var/www/rutorrent>})
                    (C {<mv>} {<ruTorrent-> <Id.Lit_Star '*'> </> <Id.Lit_Star '*'>} 
                      {</var/www/rutorrent/>}
                    )
                    (C {<rm>} {<-R>} {<ruTorrent-> <Id.Lit_Star '*'>})
                  ]
                  spids: [33089 33108]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<132>}
                  spids: [33248]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<G_AGI>} {<aria2>})]
                          spids: [33279 33293]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                              op: assign_op.Equal
                              rhs: {(SQ <'http://dietpi.com/downloads/binaries/all/aria2_'>)}
                              spids: [33311]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                      op: assign_op.PlusEqual
                                      rhs: {(SQ <armv6.7z>)}
                                      spids: [33340]
                                    )
                                  ]
                                )
                              ]
                              spids: [33322 33336]
                            )
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                      op: assign_op.PlusEqual
                                      rhs: {(SQ <armv7.7z>)}
                                      spids: [33369]
                                    )
                                  ]
                                )
                              ]
                              spids: [33351 33365]
                            )
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                      op: assign_op.PlusEqual
                                      rhs: {(SQ <arm64.7z>)}
                                      spids: [33398]
                                    )
                                  ]
                                )
                              ]
                              spids: [33380 33394]
                            )
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                      op: assign_op.PlusEqual
                                      rhs: {(SQ <x86_64.7z>)}
                                      spids: [33427]
                                    )
                                  ]
                                )
                              ]
                              spids: [33409 33423]
                            )
                          ]
                        )
                        (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                        (C {<G_AGI>} {<libc-ares2>})
                        (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                          {<package.7z>}
                        )
                        (C {<7z>} {<x>} {<-y>} {<package.7z>})
                        (C {<rm>} {<package.7z>})
                        (C {<mv>} {<aria2_> <Id.Lit_Star '*'>} {</usr/local/bin/aria2c>})
                        (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</usr/local/bin/aria2c>})
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/ziahamza/webui-aria2/archive/master.zip'>)}
                          spids: [33507]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>})
                    (C {<rm>} {<package.zip>})
                    (C {<cp>} {<-R>} {<webui-aria2> <Id.Lit_Star '*'>} {</var/www/aria2>})
                    (C {<rm>} {<-R>} {<webui-aria2> <Id.Lit_Star '*'>})
                  ]
                  spids: [33252 33271]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<116>}
                  spids: [33573]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/SickRage/SickRage/archive/master.zip'>)}
                          spids: [33604]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<python>} {<libxslt1.1>} {<libxml2>} {<python-openssl>} 
                      {<python-xmltodict>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<G_AGI>} {<unrar-free>})]
                          spids: [33636 33650]
                        )
                      ]
                      else_action: [(C {<G_AGI>} {<unrar>})]
                    )
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>})
                    (C {<rm>} {<package.zip>})
                    (C {<mkdir>} {<-p>} {</etc/sickrage>})
                    (C {<mv>} {<SickRage-> <Id.Lit_Star '*'> </> <Id.Lit_Star '*'>} {</etc/sickrage/>})
                    (C {<rm>} {<-R>} {<SickRage-> <Id.Lit_Star '*'>})
                  ]
                  spids: [33577 33596]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<50>}
                  spids: [33733]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'https://github.com/syncthing/syncthing/releases/download/v0.14.42/syncthing-linux-arm-v0.14.42.tar.gz'
                                        >
                                      )
                                    }
                                  spids: [33794]
                                )
                              ]
                            )
                          ]
                          spids: [33768 33790]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'https://github.com/syncthing/syncthing/releases/download/v0.14.42/syncthing-linux-arm64-v0.14.42.tar.gz'
                                        >
                                      )
                                    }
                                  spids: [33823]
                                )
                              ]
                            )
                          ]
                          spids: [33805 33819]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'https://github.com/syncthing/syncthing/releases/download/v0.14.42/syncthing-linux-amd64-v0.14.42.tar.gz'
                                        >
                                      )
                                    }
                                  spids: [33852]
                                )
                              ]
                            )
                          ]
                          spids: [33834 33848]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {<https> <Id.Lit_Other ':'> <//github.com/syncthing/syncthing>})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.tar>}
                    )
                    (C {<tar>} {<xzvf>} {<package.tar>})
                    (C {<rm>} {<package.tar>})
                    (C {<mkdir>} {<-p>} {</etc/syncthing>})
                    (C {<cp>} {<-R>} {<syncthing-> <Id.Lit_Star '*'> </syncthing>} {</etc/syncthing/>})
                    (C {<rm>} {<-R>} {<syncthing-> <Id.Lit_Star '*'>})
                  ]
                  spids: [33737 33756]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<134>}
                  spids: [33943]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS1)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://dietpi.com/downloads/binaries/all/libjpeg8_8d1-2_armhf.deb'
                                        >
                                      )
                                    }
                                  spids: [34016]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Great
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS2)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (SQ 
                                            <
'http://dietpi.com/downloads/binaries/all/libssl1.0.0_1.0.2l-1_bpo8+1_armhf.deb'
                                            >
                                          )
                                        }
                                      spids: [34035]
                                    )
                                  ]
                                )
                              ]
                            )
                            (C {<G_AGI>} {<libpng12-0>})
                          ]
                          spids: [33990 34012]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS1)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://dietpi.com/downloads/binaries/all/libjpeg8_8d1-2_amd64.deb'
                                        >
                                      )
                                    }
                                  spids: [34069]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp Id.Op_DPipe]
                              children: [
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Great
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS2)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (SQ 
                                            <
'http://dietpi.com/downloads/binaries/all/libpng12-0_1.2.50-2+deb8u3_amd64.deb'
                                            >
                                          )
                                        }
                                      spids: [34088]
                                    )
                                  ]
                                )
                                (C {<AGI>} {<libpng12-0>})
                              ]
                            )
                          ]
                          spids: [34051 34065]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS1'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS1'))} {<-O>} 
                      {<package.deb>}
                    )
                    (C {<dpkg>} {<-i>} {<package.deb>})
                    (C {<rm>} {<package.deb>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Great
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS2'))})
                            (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS2'))} {<-O>} 
                              {<package.deb>}
                            )
                            (C {<dpkg>} {<-i>} {<package.deb>})
                            (C {<rm>} {<package.deb>})
                          ]
                          spids: [34136 34150]
                        )
                      ]
                    )
                    (C {<G_AGI>} {<libfontconfig1>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://patch.codelathe.com/tonido/live/installer/armv6l-rpi/tonido.tar.gz'
                                        >
                                      )
                                    }
                                  spids: [34233]
                                )
                              ]
                            )
                          ]
                          spids: [34207 34229]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'http://www.tonido.com/download.php?tonido64.tar.gz'>)}
                                  spids: [34262]
                                )
                              ]
                            )
                          ]
                          spids: [34244 34258]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.tar>}
                    )
                    (C {<mkdir>} {</etc/tonido>})
                    (C {<tar>} {<xvf>} {<package.tar>} {<-C>} {</etc/tonido>})
                    (C {<rm>} {<package.tar>})
                  ]
                  spids: [33947 33966]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<113>}
                  spids: [34322]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_Less
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [(C {<G_AGI>} {<chromium-browser>})]
                                  spids: [34375 34389]
                                )
                              ]
                              else_action: [(C {<G_AGI>} {<chromium>})]
                            )
                          ]
                          spids: [34357 34371]
                        )
                      ]
                      else_action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DPipe
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                            )
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (SQ 
                                            <
'http://dietpi.com/downloads/binaries/all/chromium_52.0.2743.116-1-deb8u1.1_armhf.deb'
                                            >
                                          )
                                        }
                                      spids: [34447]
                                    )
                                  ]
                                )
                              ]
                              spids: [34421 34443]
                            )
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (SQ 
                                            <
'http://dietpi.com/downloads/binaries/all/chromium_52.0.2743.116-1-deb8u1.1_arm64.deb'
                                            >
                                          )
                                        }
                                      spids: [34476]
                                    )
                                  ]
                                )
                              ]
                              spids: [34458 34472]
                            )
                          ]
                        )
                        (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                        (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                          {<package.deb>}
                        )
                        (C {<dpkg>} {<-i>} {<package.deb>})
                        (C {<rm>} {<package.deb>})
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DAmp
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_GreatEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_Less
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 20>})
                                            )
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (C {<G_AGI>} {<libgnome-keyring0>} {<libnspr4>} {<libnss3>} {<libnss3-1d>} 
                                  {<libspeechd2>} {<libxslt1.1>} {<libxss1>} {<xdg-utils>} {<libgnome-keyring-common>} {<libltdl7>}
                                )
                              ]
                              spids: [34523 34545]
                            )
                          ]
                          else_action: [(C {<G_AGF>})]
                        )
                        (C {<wget>} 
                          {<http> <Id.Lit_Other ':'> 
                            <
//dietpi.com/downloads/binaries/all/chromium-l10n_52.0.2743.116-1-deb8u1.1_all.deb
                            >
                          } {<-O>} {<package.deb>}
                        )
                        (C {<dpkg>} {<-i>} {<package.deb>})
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DPipe
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                            )
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (C {<wget>} 
                                  {<http> <Id.Lit_Other ':'> 
                                    <
//dietpi.com/downloads/binaries/all/chromedriver_52.0.2743.116-1-deb8u1.1_armhf.deb
                                    >
                                  } {<-O>} {<package.deb>}
                                )
                                (C {<dpkg>} {<-i>} {<package.deb>})
                              ]
                              spids: [34608 34630]
                            )
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (C {<wget>} 
                                  {<http> <Id.Lit_Other ':'> 
                                    <
//dietpi.com/downloads/binaries/all/chromedriver_52.0.2743.116-1-deb8u1.1_arm64.deb
                                    >
                                  } {<-O>} {<package.deb>}
                                )
                                (C {<dpkg>} {<-i>} {<package.deb>})
                              ]
                              spids: [34657 34671]
                            )
                          ]
                        )
                        (C {<rm>} {<package.deb>})
                        (C {<apt-mark>} {<hold>} {<chromium>} {<chromedriver>})
                      ]
                    )
                  ]
                  spids: [34326 34345]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<136>}
                  spids: [34730]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'https://github.com/Motion-Project/motion/releases/download/release-4.1.1/pi_jessie_motion_4.1.1-1_armhf.deb'
                                        >
                                      )
                                    }
                                  spids: [34783]
                                )
                              ]
                            )
                            (C {<G_CHECK_URL>} {(DQ <'http://github.com/Motion-Project/motion'>)})
                            (C {<G_AGI>} {<v4l-utils>} {<python>} {<python-dev>} {<curl>} {<libssl-dev>} 
                              {<libcurl4-openssl-dev>} {<libjpeg-dev>} {<zlib1g-dev>} {<libx264-142>} {<libavcodec56>} {<libavformat56>} {<libmysqlclient18>} 
                              {<libswscale3>} {<libpq5>}
                            )
                            (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                              {<package.deb>}
                            )
                            (C {<dpkg>} {<-i>} {<package.deb>})
                            (C {<rm>} {<package.deb>})
                            (C {<pip>} {<install>} {<motioneye>})
                          ]
                          spids: [34765 34779]
                        )
                      ]
                      else_action: [
                        (C {<G_AGI>} {<v4l-utils>} {<python>} {<python-dev>} {<curl>} {<libssl-dev>} 
                          {<libcurl4-openssl-dev>} {<libjpeg-dev>} {<zlib1g-dev>}
                        )
                        (C {<G_AGI>} {<motion>})
                        (C {<pip>} {<install>} {<motioneye>})
                      ]
                    )
                  ]
                  spids: [34734 34753]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<137>}
                  spids: [34940]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'http://davesteele.github.io/cloudprint-service'>)}
                                  spids: [34992]
                                )
                              ]
                            )
                            (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ </repo>)}
                                  spids: [35011]
                                )
                              ]
                            )
                            (command.Simple
                              words: [
                                {<echo>}
                                {<-e>}
                                {
                                  (DQ <'deb '> ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS') 
                                    <' cloudprint-jessie main'>
                                  )
                                }
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_Great '>'>
                                  fd: -1
                                  arg_word: {</etc/apt/sources.list.d/cloudprint.list>}
                                )
                              ]
                            )
                            (command.Pipeline
                              children: [
                                (C {<wget>} {<-q>} {<-O>} {<->} 
                                  {<https> <Id.Lit_Other ':'> 
                                    <//davesteele.github.io/key-366150CE.pub.txt>
                                  }
                                )
                                (C {<apt-key>} {<add>} {<->})
                              ]
                              negated: F
                            )
                            (C {<G_AGUP>})
                            (C {<G_AGI>} {<cloudprint-service>})
                          ]
                          spids: [34971 34985]
                        )
                      ]
                      else_action: [(C {<G_AGI>} {<cloudprint-service>})]
                    )
                  ]
                  spids: [34944 34963]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<138>}
                  spids: [35086]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://virtualhere.com/sites/default/files/usbserver/vhusbd'>)}
                          spids: [35117]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <arm>)}
                                  spids: [35154]
                                )
                              ]
                            )
                          ]
                          spids: [35128 35150]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <arm64>)}
                                  spids: [35183]
                                )
                              ]
                            )
                          ]
                          spids: [35165 35179]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <x86_64>)}
                                  spids: [35212]
                                )
                              ]
                            )
                          ]
                          spids: [35194 35208]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<mkdir>} {<-p>} {</etc/vhusbd>})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {</etc/vhusbd/vhusbd>}
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</etc/vhusbd/vhusbd>})
                  ]
                  spids: [35090 35109]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<139>}
                  spids: [35267]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<local>} {<Id.Lit_VarLike 'version='> (SQ <2.3.2>)})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'https://github.com/sabnzbd/sabnzbd/archive/'> 
                                ($ Id.VSub_DollarName '$version') <.zip>
                              )
                            }
                          spids: [35307]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<par2>} {<python-dev>} {<libffi-dev>} {<libssl-dev>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<G_AGI>} {<unrar-free>})]
                          spids: [35340 35354]
                        )
                      ]
                      else_action: [(C {<G_AGI>} {<unrar>})]
                    )
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<mkdir>} {<-p>} {</etc/sabnzbd>})
                    (C {<unzip>} {<-o>} {<package.zip>} {<-d>} {</etc/sabnzbd>})
                    (C {<rm>} {<package.zip>})
                    (C {<mv>} 
                      {</etc/sabnzbd/sabnzbd-> (DQ ($ Id.VSub_DollarName '$version')) </> 
                        <Id.Lit_Star '*'>
                      } {</etc/sabnzbd/>}
                    )
                    (C {<rm>} {<-R>} {</etc/sabnzbd/sabnzbd-> (DQ ($ Id.VSub_DollarName '$version'))})
                    (C {<pip>} {<install>} {<cheetah>} {<cryptography>} {<sabyenc>})
                  ]
                  spids: [35271 35290]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<141>}
                  spids: [35456]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/Fornoth/spotify-connect-web/releases'>)}
                          spids: [35487]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.PlusEqual
                          rhs: {(SQ </download/0.0.3-alpha/spotify-connect-web_0.0.3-alpha.tar.gz>)}
                          spids: [35504]
                        )
                      ]
                    )
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.tar>}
                    )
                    (C {<tar>} {<zxvf>} {<package.tar>} {<-C>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </>}
                    )
                    (C {<rm>} {<package.tar>})
                  ]
                  spids: [35460 35479]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<142>}
                  spids: [35550]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'https://github.com/CouchPotato/CouchPotatoServer/archive/master.zip'
                                >
                              )
                            }
                          spids: [35581]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<libffi-dev>} {<libssl-dev>} {<python-lxml>} {<python3-lxml>})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>})
                    (C {<rm>} {<package.zip>})
                    (command.Simple
                      words: [{<rm>} {<-R>} {</etc/couchpotato>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<mv>} {<CouchPotato> <Id.Lit_Star '*'>} {</etc/couchpotato>})
                    (C {<pip>} {<install>} {<--upgrade>} {<pyopenssl>})
                  ]
                  spids: [35554 35573]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<143>}
                  spids: [35669]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/phanan/koel/archive/v3.7.0.zip'>)}
                          spids: [35700]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<python>})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>})
                    (C {<rm>} {<package.zip>})
                    (C {<mv>} {<koel-> <Id.Lit_Star '*'>} {</var/www/koel>})
                    (command.Simple
                      words: [{<php>} {<-r>} {(DQ <"readfile('https://getcomposer.org/installer');">)}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {<composer-setup.php>}
                        )
                      ]
                    )
                    (C {<php>} {<composer-setup.php>})
                    (C {<php>} {<-r>} {(DQ <"unlink('composer-setup.php');">)})
                    (C {<mv>} {<composer.phar>} {</usr/local/bin/composer>})
                    (C {<cd>} {</var/www/koel>})
                    (C {<npm>} {<install>} {<yarn>} {<-g>} {<--unsafe-perm>})
                    (C {<composer>} {<install>})
                    (C {<npm>} {<install>})
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                  ]
                  spids: [35673 35692]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<144>}
                  spids: [35831]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<apt-key>} {<adv>} {<--keyserver>} {<keyserver.ubuntu.com>} {<--recv-keys>} 
                      {<FDA5DFFC>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [
                                {<echo>}
                                {<-e>}
                                {(DQ <'deb [arch=armhf] https://apt.sonarr.tv/ master main'>)}
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_Great '>'>
                                  fd: -1
                                  arg_word: {</etc/apt/sources.list.d/sonarr.list>}
                                )
                              ]
                            )
                            (C {<dpkg>} {<--add-architecture>} {<armhf>})
                          ]
                          spids: [35875 35889]
                        )
                      ]
                      else_action: [
                        (command.Simple
                          words: [{<echo>} {<-e>} {(DQ <'deb https://apt.sonarr.tv/ master main'>)}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_Great '>'>
                              fd: -1
                              arg_word: {</etc/apt/sources.list.d/sonarr.list>}
                            )
                          ]
                        )
                      ]
                    )
                    (C {<G_AGUP>})
                    (C {<G_AGI>} {<nzbdrone>})
                  ]
                  spids: [35835 35854]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<145>}
                  spids: [35953]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://api.github.com/repos/Radarr/Radarr/releases'>)}
                          spids: [35984]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<mono-devel>} {<mediainfo>} {<sqlite3>} {<libmono-cil-dev>})
                    (C {<wget>} 
                      {
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {<curl>} {<-s>} 
                                      {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))}
                                    )
                                    (C {<grep>} {<linux.tar.gz>})
                                    (C {<grep>} {<browser_download_url>})
                                    (C {<head>} {<-1>})
                                    (C {<cut>} {<-d>} 
                                      {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)} {<-f>} {<4>}
                                    )
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      } {<-O>} {<package.tar>}
                    )
                    (C {<tar>} {<-xf>} {<package.tar>} {<-C>} {</opt/>})
                    (C {<rm>} {<package.tar>})
                  ]
                  spids: [35957 35976]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<146>}
                  spids: [36085]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/JonnyWong16/plexpy.git'>)}
                          spids: [36116]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<python>})
                    (C {<git>} {<clone>} {<--depth> <Id.Lit_Equals '='> <1>} 
                      {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))}
                    )
                    (C {<mv>} {<plexpy>} {</opt/>})
                  ]
                  spids: [36089 36108]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<147>}
                  spids: [36167]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://api.github.com/repos/Jackett/Jackett/releases'>)}
                          spids: [36198]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<mono-devel>})
                    (C {<wget>} 
                      {
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {<curl>} {<-s>} 
                                      {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))}
                                    )
                                    (C {<grep>} {<Jackett.Binaries.Mono.tar.gz>})
                                    (C {<grep>} {<browser_download_url>})
                                    (C {<head>} {<-1>})
                                    (C {<cut>} {<-d>} 
                                      {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)} {<-f>} {<4>}
                                    )
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      } {<-O>} {<package.tar>}
                    )
                    (C {<tar>} {<-xvf>} {<package.tar>})
                    (C {<rm>} {<package.tar>})
                    (C {<mkdir>} {</opt/jackett>})
                    (C {<mv>} {<Jackett/> <Id.Lit_Star '*'>} {</opt/jackett>})
                    (C {<rm>} {<-R>} {<Jackett>})
                  ]
                  spids: [36171 36190]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<148>}
                  spids: [36312]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'http://dist.jriver.com/latest/mediacenter/mediacenter22native.list'
                                >
                              )
                            }
                          spids: [36343]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (command.Pipeline
                      children: [
                        (C {<wget>} {<-q>} {<-O>} {<->} 
                          {<http> <Id.Lit_Other ':'> <//dist.jriver.com/mediacenter> 
                            <Id.Lit_Splice '@jriver'> <.com.gpg.key>
                          }
                        )
                        (C {<apt-key>} {<add>} {<->})
                      ]
                      negated: F
                    )
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {</etc/apt/sources.list.d/mediacenter22.list>}
                    )
                    (C {<G_AGUP>})
                    (C {<G_AGI>} {<mediacenter22>})
                  ]
                  spids: [36316 36335]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<149>}
                  spids: [36411]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://nzbget.net'>)}
                          spids: [36442]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.PlusEqual
                          rhs: {(SQ </download/nzbget-latest-bin-linux.run>)}
                          spids: [36457]
                        )
                      ]
                    )
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.run>}
                    )
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget>})
                    (C {<sh>} {<package.run>} {<--destdir>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget>}
                    )
                    (C {<rm>} {<package.run>})
                  ]
                  spids: [36415 36434]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<155>}
                  spids: [36511]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/Hellowlol/HTPC-Manager.git'>)}
                          spids: [36542]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<python>} {<python-pip>} {<python-imaging>} {<python-dev>})
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                    (C {<git>} {<clone>} {<--depth> <Id.Lit_Equals '='> <1>} 
                      {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))}
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </htpc-manager>}
                    )
                    (C {<mv>} {(DQ ($ Id.VSub_DollarName '$HOME')) </HTPC-Manager/> <Id.Lit_Star '*'>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </htpc-manager/>}
                    )
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$HOME')) </HTPC-Manager>})
                    (C {<pip>} {<install>} {<psutil>})
                  ]
                  spids: [36515 36534]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<153>}
                  spids: [36653]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/foosel/OctoPrint.git'>)}
                          spids: [36684]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<python>} {<python-dev>})
                    (C {<git>} {<clone>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<mv>} {<OctoPrint> <Id.Lit_Star '*'>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </octoprint>}
                    )
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </octoprint>})
                    (C {<python>} {<setup.py>} {<install>})
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                  ]
                  spids: [36657 36676]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<154>}
                  spids: [36758]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {(SQ <'http://download.roonlabs.com/builds/RoonServer_linuxx64.tar.bz2'>)}
                          spids: [36789]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<libav-tools>} {<cifs-utils>})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.tar>}
                    )
                    (C {<tar>} {<xvf>} {<package.tar>})
                    (C {<rm>} {<package.tar>})
                    (C {<mv>} {<RoonServer>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </roonserver>}
                    )
                  ]
                  spids: [36762 36781]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<156>}
                  spids: [36854]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.Simple
                      words: [{<debconf-set-selections>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_TLess '<<<'>
                          fd: -1
                          arg_word: {(DQ <'steam steam/question select I AGREE'>)}
                        )
                      ]
                    )
                    (C {<G_AGI>} {<steam>})
                  ]
                  spids: [36858 36877]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<158>}
                  spids: [36909]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'https://dl.minio.io/server/minio/release/linux-amd64/minio'
                                        >
                                      )
                                    }
                                  spids: [36967]
                                )
                              ]
                            )
                          ]
                          spids: [36949 36963]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                              op: assign_op.Equal
                              rhs: {(SQ <'https://dl.minio.io/server/minio/release/linux-arm/minio'>)}
                              spids: [36978]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {<-O>} {</usr/local/bin/minio>} 
                      {($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS')}
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</usr/local/bin/minio>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'https://github.com/minio/minio-service/raw/master/linux-systemd/minio.service'
                                >
                              )
                            }
                          spids: [37023]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {<-O>} {</etc/systemd/system/minio.service>} 
                      {($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS')}
                    )
                    (C {<adduser>} {<--system>} {<--group>} {<minio-user>})
                    (C {<mkdir>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </minio-data>})
                  ]
                  spids: [36913 36932]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<162>}
                  spids: [37087]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://get.docker.com'>)}
                          spids: [37118]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {<-O>} {<DockerInstall.sh>} 
                      {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))}
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<DockerInstall.sh>})
                    (C {<./DockerInstall.sh>})
                  ]
                  spids: [37091 37110]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<161>}
                  spids: [37172]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'http://FuguHub.com/install/FuguHub.linux.install'>)}
                                  spids: [37221]
                                )
                              ]
                            )
                          ]
                          spids: [37203 37217]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                              op: assign_op.Equal
                              rhs: {(SQ <'http://FuguHub.com/releases/raspberrypi/install.sh'>)}
                              spids: [37232]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {<-O>} {<FHinstall.sh>} 
                      {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))}
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<FHinstall.sh>})
                    (C {<./FHinstall.sh>})
                    (C {<rm>} {<FHinstall.sh>})
                    (C {<wget>} {<http> <Id.Lit_Other ':'> <//fuguhub.com/box.zip>} {<-O>} 
                      {</home/bd/applications/box.zip>}
                    )
                  ]
                  spids: [37176 37195]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<164>}
                  spids: [37298]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'http://ci.mengcraft.com:8080/job/nukkit/lastStableBuild/artifact/target/nukkit-1.0-SNAPSHOT.jar'
                                >
                              )
                            }
                          spids: [37329]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<mkdir>} {</usr/local/bin/nukkit>})
                    (C {<wget>} {<-O>} {</usr/local/bin/nukkit/nukkit.jar>} 
                      {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))}
                    )
                  ]
                  spids: [37302 37321]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<165>}
                  spids: [37369]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://dl.gitea.io/gitea/1.3.2/gitea-1.3.2-'>)}
                          spids: [37400]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <linux-arm-6>)}
                                  spids: [37429]
                                )
                              ]
                            )
                          ]
                          spids: [37411 37425]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <linux-arm-7>)}
                                  spids: [37458]
                                )
                              ]
                            )
                          ]
                          spids: [37440 37454]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <linux-arm64>)}
                                  spids: [37487]
                                )
                              ]
                            )
                          ]
                          spids: [37469 37483]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <linux-amd64>)}
                                  spids: [37516]
                                )
                              ]
                            )
                          ]
                          spids: [37498 37512]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                        </gitea/gitea-repositories>
                      }
                    )
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </gitea/gitea>}
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </gitea/gitea>}
                    )
                  ]
                  spids: [37373 37392]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<159>}
                  spids: [37584]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: 
                                                  (arith_expr.ArithWord
                                                    w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                                  )
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 160>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'http://dietpi.com/downloads/binaries/all/allo_web_interface_v5.7z'
                                >
                              )
                            }
                          spids: [37632]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.7z>}
                    )
                    (C {<7z>} {<x>} {<-y>} {<package.7z>} {<-o/var/www/>})
                    (C {<rm>} {<package.7z>})
                  ]
                  spids: [37591 37624]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<163>}
                  spids: [37682]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'http://dietpi.com/downloads/binaries/all/gmrender_1_'>)}
                          spids: [37713]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <amd64.deb>)}
                                  spids: [37737]
                                )
                              ]
                            )
                          ]
                          spids: [37719 37733]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <arm64.deb>)}
                                  spids: [37762]
                                )
                              ]
                            )
                          ]
                          spids: [37744 37758]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <armv7.deb>)}
                                  spids: [37787]
                                )
                              ]
                            )
                          ]
                          spids: [37769 37783]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <armv6.deb>)}
                                  spids: [37812]
                                )
                              ]
                            )
                          ]
                          spids: [37794 37808]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<libupnp6>} {<gstreamer1.0-plugins-base>} {<gstreamer1.0-plugins-good>} 
                      {<gstreamer1.0-plugins-bad>} {<gstreamer1.0-plugins-ugly>} {<gstreamer1.0-alsa>}
                    )
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.deb>}
                    )
                    (C {<dpkg>} {<-i>} {<package.deb>})
                    (C {<rm>} {<package.deb>})
                  ]
                  spids: [37686 37705]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<166>}
                  spids: [37879]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>})]
                  spids: [37883 37902]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<167>}
                  spids: [37923]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://dtcooper.github.io/raspotify/key.asc'>)}
                          spids: [37954]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (command.Pipeline
                      children: [
                        (C {<wget>} {<-O>} {<->} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                        (C {<apt-key>} {<add>} {<->})
                      ]
                      negated: F
                    )
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {(DQ <'deb https://dtcooper.github.io/raspotify jessie main'>)}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/apt/sources.list.d/raspotify.list>}
                        )
                      ]
                    )
                    (C {<G_AGUP>})
                    (C {<G_AGI>} {<raspotify>})
                  ]
                  spids: [37927 37946]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<168>}
                  spids: [38018]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <'http://dietpi.com/downloads/binaries/moode/rel-stretch-r40b9.zip'>
                              )
                            }
                          spids: [38049]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.zip>}
                    )
                    (C {<unzip>} {<-o>} {<package.zip>})
                    (C {<G_AGI>} {<rpi-update>} {<mpc>} {<memcached>} 
                      {($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME') <-memcache>} {<bs2b-ladspa>} {<libbs2b0>} {<libasound2-plugin-equal>} {<telnet>} {<automake>} {<sysstat>} {<tcpdump>} 
                      {<shellinabox>} {<udisks-glue>} {<exfat-fuse>} {<inotify-tools>} {<libav-tools>}
                    )
                    (C {<G_AGI>} {<dnsmasq>} {<hostapd>})
                    (C {<G_AGI>} {<bluez>} {<bluez-firmware>} {<dh-autoreconf>} {<expect>} {<libortp-dev>} 
                      {<libbluetooth-dev>} {<libasound2-dev>} {<libusb-dev>} {<libglib2.0-dev>} {<libudev-dev>} {<libical-dev>} {<libreadline-dev>} 
                      {<libsbc1>} {<libsbc-dev>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<G_AGI>} {<pi-bluetooth>})]
                          spids: [38190 38204]
                        )
                      ]
                    )
                    (C {<systemctl>} {<stop>} {<shellinabox>})
                    (C {<systemctl>} {<disable>} {<shellinabox>})
                    (C {<systemctl>} {<disable>} {<hostapd>})
                    (C {<systemctl>} {<disable>} {<dnsmasq>})
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                    (C {<git>} {<clone>} {<https> <Id.Lit_Other ':'> <//github.com/Arkq/bluez-alsa.git>} 
                      {<--depth> <Id.Lit_Equals '='> <1>}
                    )
                    (C {<cd>} {<bluez-alsa>})
                    (C {<autoreconf>} {<--install>})
                    (C {<mkdir>} {<build>})
                    (C {<cd>} {<build>})
                    (C {<../configure>} {<--disable-hcitop>} 
                      {<--with-alsaplugindir> <Id.Lit_Equals '='> 
                        </usr/lib/arm-linux-gnueabihf/alsa-lib>
                      }
                    )
                    (C {<make>} {<-j>} 
                      {
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: (command.CommandList children:[(C {<nproc>} {<--all>})])
                        )
                      }
                    )
                    (C {<make>} {<install>})
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                    (C {<rm>} {<-rf>} {<bluez-alsa>})
                    (C {<systemctl>} {<daemon-reload>})
                    (C {<systemctl>} {<disable>} {<bluetooth.service>})
                    (C {<systemctl>} {<disable>} {<bluealsa.service>})
                    (C {<systemctl>} {<disable>} {<hciuart.service>})
                    (C {<mkdir>} {<-p>} {</var/run/bluealsa>})
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                    (C {<cp>} {<./rel-stretch/other/wiringpi/wiringPi-> <Id.Lit_Star '*'> <.tar.gz>} 
                      {<./>}
                    )
                    (C {<tar>} {<xfz>} {<./wiringPi-> <Id.Lit_Star '*'> <.tar.gz>})
                    (C {<cd>} {<wiringPi-96344ff>})
                    (C {<./build>})
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                    (C {<rm>} {<-rf>} {<./wiringPi-> <Id.Lit_Star '*'>})
                    (C {<cp>} {<./rel-stretch/other/rotenc/rotenc.c>} {<./>})
                    (C {<gcc>} {<-std> <Id.Lit_Equals '='> <c99>} {<rotenc.c>} {<-orotenc>} {<-lwiringPi>})
                    (C {<cp>} {<./rotenc>} {</usr/local/bin>})
                    (C {<rm>} {<./rotenc> <Id.Lit_Star '*'>})
                  ]
                  spids: [38022 38041]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<169>}
                  spids: [38483]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://github.com/google/aiyprojects-raspbian.git'>)}
                          spids: [38514]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<git>} {<clone>} {<-b>} {<voicekit>} 
                      {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </voice-recognizer-raspi>}
                    )
                    (C {<cd>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </voice-recognizer-raspi>}
                    )
                    (C {<pip3>} {<install>} {<--upgrade>} {<pip>} {<virtualenv>})
                    (C {<virtualenv>} {<--system-site-packages>} {<-p>} {<python3>} {<env>})
                    (C {<env/bin/pip>} {<install>} {<-r>} {<requirements.txt>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<env/bin/pip>} {<install>} 
                              {<google-assistant-library> <Id.Lit_Equals '='> <Id.Lit_Equals '='> 
                                <0.0.3>
                              }
                            )
                          ]
                          spids: [38591 38605]
                        )
                      ]
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'s#/home/pi#'> ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') <'#g'>)} {<systemd/voice-recognizer.service>}
                    )
                    (C {<sed>} {<-i>} {(DQ <'/^User=/c'> <Id.Lit_Other '\\'> <'User=dietpi'>)} 
                      {<systemd/voice-recognizer.service>}
                    )
                    (C {<cp>} {<systemd/voice-recognizer.service>} {</etc/systemd/system/>})
                    (C {<cp>} {<systemd/alsa-init.service>} {</etc/systemd/system/>})
                    (C {<source>} {<env/bin/activate>})
                    (C {<cp>} {<src/assistant_library_with_button_demo.py>} {<src/main.py>})
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                  ]
                  spids: [38487 38506]
                )
              ]
            )
            (C {<G_ERROR_HANDLER_RESET>})
          ]
        )
    )
    (command.ShFunction
      name: Install_Linux_Software
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<5>}
                  spids: [38731]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<alsa-utils>})
                    (C {<local>} 
                      {<Id.Lit_VarLike 'soundcard='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {<cat>} {</DietPi/dietpi.txt>})
                                    (C {<grep>} {<-m1>} {(SQ <'^CONFIG_SOUNDCARD='>)})
                                    (C {<sed>} {(SQ <'s/.*=//'>)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      }
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.AndOr
                                  ops: [Id.Op_DAmp Id.Op_DPipe]
                                  children: [
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_Less
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                        )
                                    )
                                    (C {<Id.Lit_LBracket '['>} 
                                      {(DQ ($ Id.VSub_DollarName '$soundcard'))} {<Id.Lit_Equals '='>} {(DQ <none>)} {<Id.Lit_RBracket ']'>}
                                    )
                                    (C {<Id.Lit_LBracket '['>} 
                                      {(DQ ($ Id.VSub_DollarName '$soundcard'))} {<Id.Lit_Equals '='>} {(DQ <default>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:soundcard)
                                  op: assign_op.Equal
                                  rhs: {(SQ <rpi-bcm2835>)}
                                  spids: [38856]
                                )
                              ]
                            )
                          ]
                          spids: [38805 38852]
                        )
                      ]
                    )
                    (C {</DietPi/dietpi/func/dietpi-set_hardware>} {<soundcard>} 
                      {(DQ ($ Id.VSub_DollarName '$soundcard'))}
                    )
                  ]
                  spids: [38735 38754]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<6>}
                  spids: [38885]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<xcompmgr>} {<xterm>} {<xinit>} {<xauth>} {<xserver-xorg>} {<dbus-x11>} 
                      {<xfonts-base>} {<x11-xserver-utils>} {<x11-common>} {<x11-utils>} {<--no-install-recommends>}
                    )
                    (C {<mkdir>} {<-p>} {</etc/xdg/autostart>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 38973
                          stdin_parts: [
                            <'[Desktop Entry]\n'>
                            <'Type=Application\n'>
                            <'Name=xcompmgr\n'>
                            <'NoDisplay=true\n'>
                            <'Exec=xcompmgr -a\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/xdg/autostart/xcompmgr.desktop>}
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<sleep>} {<1>})]
                          spids: [38980 38994]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 12>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_AGI>} {<aml-libs-odroid>} {<mali450-odroid>} 
                              {<xf86-video-mali-odroid>} {<libump-odroid>} {<--no-install-recommends>}
                            )
                            (C {<G_AGI>} {<xf86-video-fbturbo-odroid>})
                            (command.Simple
                              words: [{<cat>}]
                              redirects: [
                                (redir.HereDoc
                                  op: <Id.Redir_DLess '<<'>
                                  fd: -1
                                  here_begin: {<_EOF_>}
                                  here_end_span_id: 39107
                                  stdin_parts: [
                                    <'Section '>
                                    <Id.Right_DoubleQuote '"'>
                                    <Device>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'        Identifier      '>
                                    <Id.Right_DoubleQuote '"'>
                                    <FBTurbo>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'        Driver          '>
                                    <Id.Right_DoubleQuote '"'>
                                    <fbturbo>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'        Option          '>
                                    <Id.Right_DoubleQuote '"'>
                                    <fbdev>
                                    <Id.Right_DoubleQuote '"'>
                                    <' '>
                                    <Id.Right_DoubleQuote '"'>
                                    </dev/fb0>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'        Option          '>
                                    <Id.Right_DoubleQuote '"'>
                                    <SwapbuffersWait>
                                    <Id.Right_DoubleQuote '"'>
                                    <' '>
                                    <Id.Right_DoubleQuote '"'>
                                    <true>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'        #Option          '>
                                    <Id.Right_DoubleQuote '"'>
                                    <Rotate>
                                    <Id.Right_DoubleQuote '"'>
                                    <' '>
                                    <Id.Right_DoubleQuote '"'>
                                    <CCW>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'EndSection\n'>
                                  ]
                                )
                                (redir.Redir
                                  op: <Id.Redir_Great '>'>
                                  fd: -1
                                  arg_word: {</etc/X11/xorg.conf>}
                                )
                              ]
                            )
                          ]
                          spids: [39008 39022]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 11>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_AGI>} {<firmware-samsung>} {<xf86-video-armsoc-odroid>} 
                              {<malit628-odroid>} {<--no-install-recommends>}
                            )
                            (C {<cp>} {</DietPi/dietpi/conf/xorg_xu4.conf>} {</etc/X11/xorg.conf>})
                          ]
                          spids: [39114 39128]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_AGI>} {<aml-libs-odroid>} {<xf86-video-mali-odroid>} {<libump-odroid>} 
                              {<mali450-odroid>} {<--no-install-recommends>}
                            )
                            (C {<cp>} {</DietPi/dietpi/conf/xorg_c1.conf>} {</etc/X11/xorg.conf>})
                          ]
                          spids: [39156 39170]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 40>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'http://dietpi.com/downloads/binaries/all/libump_1-1_arm64.deb'
                                        >
                                      )
                                    }
                                  spids: [39218]
                                )
                              ]
                            )
                            (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                            (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                              {<package.deb>}
                            )
                            (C {<dpkg>} {<-i>} {<package.deb>})
                            (C {<rm>} {<package.deb>})
                            (C {<wget>} 
                              {<http> <Id.Lit_Other ':'> 
                                <
//dietpi.com/downloads/binaries/all/xf86-video-fbturbo_1-1_arm64.deb
                                >
                              } {<-O>} {<package.deb>}
                            )
                            (C {<dpkg>} {<-i>} {<package.deb>})
                            (C {<rm>} {<package.deb>})
                            (command.Simple
                              words: [{<cat>}]
                              redirects: [
                                (redir.HereDoc
                                  op: <Id.Redir_DLess '<<'>
                                  fd: -1
                                  here_begin: {<_EOF_>}
                                  here_end_span_id: 39325
                                  stdin_parts: [
                                    <'Section '>
                                    <Id.Right_DoubleQuote '"'>
                                    <Device>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'        Identifier      '>
                                    <Id.Right_DoubleQuote '"'>
                                    <'Allwinner A10/A13 FBDEV'>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'        Driver          '>
                                    <Id.Right_DoubleQuote '"'>
                                    <fbturbo>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'        Option          '>
                                    <Id.Right_DoubleQuote '"'>
                                    <fbdev>
                                    <Id.Right_DoubleQuote '"'>
                                    <' '>
                                    <Id.Right_DoubleQuote '"'>
                                    </dev/fb0>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'        Option          '>
                                    <Id.Right_DoubleQuote '"'>
                                    <SwapbuffersWait>
                                    <Id.Right_DoubleQuote '"'>
                                    <' '>
                                    <Id.Right_DoubleQuote '"'>
                                    <true>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'EndSection\n'>
                                  ]
                                )
                                (redir.Redir
                                  op: <Id.Redir_Great '>'>
                                  fd: -1
                                  arg_word: {</etc/X11/xorg.conf>}
                                )
                              ]
                            )
                          ]
                          spids: [39200 39214]
                        )
                      ]
                    )
                  ]
                  spids: [38889 38908]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<151>}
                  spids: [39379]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<nvidia-driver>} {<nvidia-xconfig>})
                    (C {<G_AGI>} {<libgl1-nvidia-glx> <Id.Lit_Other ':'> <i386>})
                  ]
                  spids: [39383 39402]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<152>}
                  spids: [39442]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<avahi-daemon>})]
                  spids: [39446 39465]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<16>}
                  spids: [39483]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<build-essential>} {<make>} {<autoconf>} {<automake>} 
                      {<--no-install-recommends>}
                    )
                  ]
                  spids: [39487 39506]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<170>}
                  spids: [39531]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<ntp>})
                    (C {<systemctl>} {<stop>} {<ntp>})
                    (C {<rm>} {</etc/init.d/ntp>})
                    (C {<Reset_NTPD>})
                  ]
                  spids: [39535 39554]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<17>}
                  spids: [39592]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<git>} {<--no-install-recommends>})]
                  spids: [39596 39615]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<4>}
                  spids: [39634]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<vifm>})]
                  spids: [39638 39657]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<20>}
                  spids: [39674]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<vim>})]
                  spids: [39678 39697]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<21>}
                  spids: [39714]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<vim-tiny>})]
                  spids: [39718 39737]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<127>}
                  spids: [39754]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<neovim>})]
                  spids: [39758 39777]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<18>}
                  spids: [39794]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<emacs>})]
                  spids: [39798 39817]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<12>}
                  spids: [39834]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<iperf>})]
                  spids: [39838 39857]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<3>}
                  spids: [39874]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<mc>})]
                  spids: [39878 39897]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<19>}
                  spids: [39914]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<jed>})]
                  spids: [39918 39937]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<10>}
                  spids: [39954]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<iftop>})]
                  spids: [39958 39977]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<11>}
                  spids: [39994]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<iptraf>})]
                  spids: [39998 40017]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<13>}
                  spids: [40034]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<mtr-tiny>})]
                  spids: [40038 40057]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<14>}
                  spids: [40074]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<nload>})]
                  spids: [40078 40097]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<15>}
                  spids: [40114]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<tcpdump>})]
                  spids: [40118 40137]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [40154]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Installing>}) (C {<G_AGI>} {<openssh-client>})]
                  spids: [40158 40177]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [40194]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.Simple
                      words: [{<rm>} {</mnt/samba/readme.txt>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<G_AGI>} {<smbclient>} {<cifs-utils>} {<--no-install-recommends>})
                  ]
                  spids: [40198 40217]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<2>}
                  spids: [40253]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.Simple
                      words: [{<rm>} {</mnt/ftp_client/readme.txt>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<G_AGI>} {<curlftpfs>})
                  ]
                  spids: [40257 40276]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<110>}
                  spids: [40308]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.Simple
                      words: [{<rm>} {</mnt/nfs_client/readme.txt>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<G_AGI>} {<nfs-common>})
                  ]
                  spids: [40312 40331]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<104>}
                  spids: [40363]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<dropbear>})
                    (C {<sed>} {<-i>} {(SQ <'/NO_START=1/c\\NO_START=0'>)} {</etc/default/dropbear>})
                  ]
                  spids: [40367 40386]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<105>}
                  spids: [40419]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<openssh-server>} {<--no-install-recommends>})
                    (C {<sed>} {<-i>} {(SQ <'/PermitRootLogin[[:space:]]/d'>)} {</etc/ssh/sshd_config>})
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                            <'n#Allow root login over SSH'> <Id.Lit_Other '\\'> <'nPermitRootLogin yes'>
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {</etc/ssh/sshd_config>}
                        )
                      ]
                    )
                    (C {<rm>} {</etc/ssh/ssh_host_key>})
                    (C {<rm>} {</etc/ssh/ssh_host_rsa_key>})
                    (C {<rm>} {</etc/ssh/ssh_host_dsa_key>})
                    (C {<ssh-keygen>} {<-f>} {</etc/ssh/ssh_host_key>} {<-N>} {(SQ )} {<-t>} {<rsa1>})
                    (C {<ssh-keygen>} {<-f>} {</etc/ssh/ssh_host_rsa_key>} {<-N>} {(SQ )} {<-t>} {<rsa>})
                    (C {<ssh-keygen>} {<-f>} {</etc/ssh/ssh_host_dsa_key>} {<-N>} {(SQ )} {<-t>} {<dsa>})
                    (C {<chmod>} {<-R>} {<700>} {</etc/ssh/>})
                    (C {<systemctl>} {<restart>} {<ssh>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                          op: assign_op.Equal
                          rhs: {<2>}
                          spids: [40599]
                        )
                      ]
                    )
                  ]
                  spids: [40423 40442]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<103>}
                  spids: [40612]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<sed>} {<-i>} 
                      {
                        (SQ 
                          <
'/\\/var\\/log/c\\tmpfs                   \\/var\\/log                tmpfs   defaults,size=20m,noatime,nodev,nosuid,mode=1777  0 0'
                          >
                        )
                      } {</etc/fstab>}
                    )
                  ]
                  spids: [40616 40635]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<101>}
                  spids: [40663]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<logrotate>} {<--no-install-recommends>})
                  ]
                  spids: [40667 40686]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<102>}
                  spids: [40705]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<G_AGI>} {<rsyslog>} {<--no-install-recommends>})
                  ]
                  spids: [40709 40728]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<7>}
                  spids: [40747]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: 
                                    {(SQ <'http://dietpi.com/downloads/binaries/rpi/ffmpeg_rpi.7z'>)}
                                  spids: [40800]
                                )
                              ]
                            )
                            (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                            (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                              {<package.7z>}
                            )
                            (C {<7z>} {<x>} {<-y>} {<package.7z>} {<-offmpeg_rpi>})
                            (C {<dpkg>} {<-i>} {<ffmpeg_rpi/> <Id.Lit_Star '*'> <.deb>})
                            (C {<rm>} {<-R>} {<ffmpeg_rpi>})
                            (C {<rm>} {<package.7z>})
                          ]
                          spids: [40782 40796]
                        )
                      ]
                      else_action: [(C {<G_AGI>} {<ffmpeg>})]
                    )
                  ]
                  spids: [40751 40770]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<8>}
                  spids: [40881]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{<cat>}]
                              redirects: [
                                (redir.HereDoc
                                  op: <Id.Redir_DLess '<<'>
                                  fd: -1
                                  here_begin: {<_EOF_>}
                                  here_end_span_id: 40948
                                  stdin_parts: [
                                    <'Package: openjdk-8-jdk\n'>
                                    <'Pin: release a=jessie-backports\n'>
                                    <'Pin-Priority: 990\n'>
                                  ]
                                )
                                (redir.Redir
                                  op: <Id.Redir_Great '>'>
                                  fd: -1
                                  arg_word: {</etc/apt/preferences.d/99-dietpi-openjdk-8-jdk>}
                                )
                              ]
                            )
                            (C {<G_AGI>} {<openjdk-8-jdk>} {<-t>} {<jessie-backports>})
                          ]
                          spids: [40916 40930]
                        )
                      ]
                      else_action: [(C {<G_AGI>} {<openjdk-8-jdk>})]
                    )
                  ]
                  spids: [40885 40904]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<9>}
                  spids: [40979]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'http://raw.githubusercontent.com/taaem/nodejs-linux-installer/master/node-install.sh'
                                >
                              )
                            }
                          spids: [41014]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<node_install.sh>}
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<node_install.sh>})
                    (C {<./node_install.sh>})
                    (C {<rm>} {<node_install.sh>})
                  ]
                  spids: [40983 41002]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<130>}
                  spids: [41065]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'https://bootstrap.pypa.io/get-pip.py'>)}
                          spids: [41096]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<G_AGI>} {<python>} {<python-dev>})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<install.py>}
                    )
                    (C {<python>} {<./install.py>})
                    (C {<rm>} {<install.py>})
                    (C {<G_AGI>} {<python-pip>} {<python3-pip>})
                  ]
                  spids: [41069 41088]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<140>}
                  spids: [41160]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: {(SQ <'http://dietpi.com/downloads/binaries/rpi/sdl2_rpi.7z'>)}
                          spids: [41191]
                        )
                      ]
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} {<-O>} 
                      {<package.7z>}
                    )
                    (C {<7z>} {<x>} {<-y>} {<package.7z>} {<-osdl2_rpi>})
                    (C {<rm>} {<package.7z>})
                    (C {<dpkg>} {<-i>} {<sdl2_rpi/no_opengl_x11/> <Id.Lit_Star '*'> <.deb>})
                    (C {<rm>} {<-R>} {<sdl2_rpi>})
                  ]
                  spids: [41164 41183]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<150>}
                  spids: [41263]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (C {<apt-key>} {<adv>} {<--keyserver>} 
                      {<hkp> <Id.Lit_Other ':'> <//keyserver.ubuntu.com> <Id.Lit_Other ':'> <80>} {<--recv-keys>} {<3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [
                                {<echo>}
                                {<-e>}
                                {
                                  (DQ <'deb http://download.mono-project.com/repo/debian raspbian'> 
                                    ($ Id.VSub_DollarName '$G_DISTRO_NAME') <' main'>
                                  )
                                }
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_Great '>'>
                                  fd: -1
                                  arg_word: {</etc/apt/sources.list.d/mono-xamarin.list>}
                                )
                              ]
                            )
                          ]
                          spids: [41316 41330]
                        )
                      ]
                      else_action: [
                        (command.Simple
                          words: [
                            {<echo>}
                            {<-e>}
                            {
                              (DQ <'deb http://download.mono-project.com/repo/debian '> 
                                ($ Id.VSub_DollarName '$G_DISTRO_NAME') <' main'>
                              )
                            }
                          ]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_Great '>'>
                              fd: -1
                              arg_word: {</etc/apt/sources.list.d/mono-xamarin.list>}
                            )
                          ]
                        )
                      ]
                    )
                    (C {<G_AGUP>})
                    (C {<G_AGI>} {<mono-runtime>})
                  ]
                  spids: [41267 41286]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<157>}
                  spids: [41392]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Installing>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:HA_USER)
                          op: assign_op.Equal
                          rhs: {(DQ <homeassistant>)}
                          spids: [41423]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:HA_USERROOT)
                          op: assign_op.Equal
                          rhs: {(DQ </home/> ($ Id.VSub_DollarName '$HA_USER'))}
                          spids: [41429]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:HA_SRVROOT)
                          op: assign_op.Equal
                          rhs: {(DQ </srv/homeassistant>)}
                          spids: [41436]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:HA_PYENV_ACTIVATION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'export PATH='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                ) ($ Id.VSub_DollarName '$HA_USERROOT') <'/.pyenv/bin:'> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\$'>
                                ) <PATH> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; eval '> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'(pyenv init -)'> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                ) <'; eval '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\$'>
                                ) <'(pyenv virtualenv-init -)'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                              )
                            }
                          spids: [41442]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:HA_PYTHON_VERSION)
                          op: assign_op.Equal
                          rhs: {(DQ <3.6.3>)}
                          spids: [41464]
                        )
                      ]
                    )
                    (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'HA_USER: '> ($ Id.VSub_DollarName '$HA_USER'))})
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {(DQ <'HA_USERROOT: '> ($ Id.VSub_DollarName '$HA_USERROOT'))}
                    )
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {(DQ <'HA_SRVROOT: '> ($ Id.VSub_DollarName '$HA_SRVROOT'))}
                    )
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {(DQ <'HA_PYENV_ACTIVATION: '> ($ Id.VSub_DollarName '$HA_PYENV_ACTIVATION'))}
                    )
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {(DQ <'HA_PYTHON_VERSION: '> ($ Id.VSub_DollarName '$HA_PYTHON_VERSION'))}
                    )
                    (C {<G_AGI>} {<libssl-dev>} {<git>} {<cmake>} {<libc-ares-dev>} {<uuid-dev>} {<daemon>} 
                      {<curl>} {<libgnutls28-dev>} {<libgnutlsxx28>} {<nmap>} {<net-tools>} {<sudo>} {<libglib2.0-dev>} {<libudev-dev>} 
                      {<swig>} {<libssl-dev>} {<libusb-1.0-0>} {<gcc>} {<libssl-dev>} {<libffi-dev>} {<libbz2-dev>} {<zlib1g-dev>} 
                      {<libreadline-dev>} {<libsqlite3-dev>} {<libncurses5-dev>} {<libncursesw5-dev>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<G_AGI>} {<libmysqlclient-dev>})]
                          spids: [41581 41595]
                        )
                      ]
                      else_action: [(C {<G_AGI>} {<libmariadbclient-dev>})]
                    )
                    (C {<adduser>} {<--system>} {($ Id.VSub_DollarName '$HA_USER')})
                    (C {<addgroup>} {($ Id.VSub_DollarName '$HA_USER')})
                    (C {<usermod>} {<-G>} {<dialout>} {<-a>} {($ Id.VSub_DollarName '$HA_USER')})
                    (C {<usermod>} {<-G>} {<dietpi>} {<-a>} {($ Id.VSub_DollarName '$HA_USER')})
                    (C {<mkdir>} {($ Id.VSub_DollarName '$HA_SRVROOT')})
                    (C {<chown>} 
                      {($ Id.VSub_DollarName '$HA_USER') <Id.Lit_Other ':'> 
                        ($ Id.VSub_DollarName '$HA_USER')
                      } {($ Id.VSub_DollarName '$HA_SRVROOT')}
                    )
                    (C {<su>} {<--shell>} {</bin/bash>} {<--command>} 
                      {
                        (DQ <'cd '> ($ Id.VSub_DollarName '$HA_USERROOT') 
                          <
'; curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash'
                          >
                        )
                      } {($ Id.VSub_DollarName '$HA_USER')}
                    )
                    (C {<su>} {<--shell>} {</bin/bash>} {<--command>} 
                      {
                        (DQ <'cd '> ($ Id.VSub_DollarName '$HA_USERROOT') <'; '> 
                          ($ Id.VSub_DollarName '$HA_PYENV_ACTIVATION') <'; pyenv install '> ($ Id.VSub_DollarName '$HA_PYTHON_VERSION')
                        )
                      } {($ Id.VSub_DollarName '$HA_USER')}
                    )
                    (C {<su>} {<--shell>} {</bin/bash>} {<--command>} 
                      {
                        (DQ <'cd '> ($ Id.VSub_DollarName '$HA_SRVROOT') <'; '> 
                          ($ Id.VSub_DollarName '$HA_PYENV_ACTIVATION') <'; pyenv virtualenv '> ($ Id.VSub_DollarName '$HA_PYTHON_VERSION') <' homeassistant-'> 
                          ($ Id.VSub_DollarName '$HA_PYTHON_VERSION')
                        )
                      } {($ Id.VSub_DollarName '$HA_USER')}
                    )
                    (C {<su>} {<--shell>} {</bin/bash>} {<--command>} 
                      {
                        (DQ <'cd '> ($ Id.VSub_DollarName '$HA_SRVROOT') <'; '> 
                          ($ Id.VSub_DollarName '$HA_PYENV_ACTIVATION') <'; pyenv local homeassistant-'> ($ Id.VSub_DollarName '$HA_PYTHON_VERSION')
                        )
                      } {($ Id.VSub_DollarName '$HA_USER')}
                    )
                    (C {<su>} {<--shell>} {</bin/bash>} {<--command>} 
                      {
                        (DQ <'cd '> ($ Id.VSub_DollarName '$HA_SRVROOT') <'; '> 
                          ($ Id.VSub_DollarName '$HA_PYENV_ACTIVATION') <'; pyenv local'>
                        )
                      } {($ Id.VSub_DollarName '$HA_USER')}
                    )
                    (C {<su>} {<--shell>} {</bin/bash>} {<--command>} 
                      {
                        (DQ <'cd '> ($ Id.VSub_DollarName '$HA_SRVROOT') <'; '> 
                          ($ Id.VSub_DollarName '$HA_PYENV_ACTIVATION') <'; pyenv activate homeassistant-'> ($ Id.VSub_DollarName '$HA_PYTHON_VERSION') 
                          <'; pip3 install colorlog PyMySQL mysqlclient'>
                        )
                      } {($ Id.VSub_DollarName '$HA_USER')}
                    )
                    (C {<su>} {<--shell>} {</bin/bash>} {<--command>} 
                      {
                        (DQ <'cd '> ($ Id.VSub_DollarName '$HA_SRVROOT') <'; '> 
                          ($ Id.VSub_DollarName '$HA_PYENV_ACTIVATION') <'; pyenv activate homeassistant-'> ($ Id.VSub_DollarName '$HA_PYTHON_VERSION') 
                          <'; pip3 install --upgrade homeassistant'>
                        )
                      } {($ Id.VSub_DollarName '$HA_USER')}
                    )
                    (command.Simple
                      words: [{<echo>} {(SQ <'#!/bin/bash'>)}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$HA_SRVROOT') </homeassistant-start.sh>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<echo>} {(DQ <'cd '> ($ Id.VSub_DollarName '$HA_SRVROOT'))}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$HA_SRVROOT') </homeassistant-start.sh>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$HA_PYENV_ACTIVATION'))}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$HA_SRVROOT') </homeassistant-start.sh>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [
                        {<echo>}
                        {
                          (DQ <'pyenv activate homeassistant-'> 
                            ($ Id.VSub_DollarName '$HA_PYTHON_VERSION')
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$HA_SRVROOT') </homeassistant-start.sh>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [
                        {<echo>}
                        {
                          (DQ <'hass -c '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                            ($ Id.VSub_DollarName '$HA_USERROOT') </.homeassistant> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$HA_SRVROOT') </homeassistant-start.sh>}
                        )
                      ]
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</srv/homeassistant/homeassistant-start.sh>})
                  ]
                  spids: [41396 41415]
                )
              ]
            )
            (C {<G_ERROR_HANDLER_RESET>})
          ]
        )
    )
    (command.ShFunction
      name: Uninstall_NonSelected_Choices
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$UNINSTALL_FILE'))} 
                          {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: [(C {<read>} {<-r>} {<line>})]
                      body: 
                        (command.DoGroup
                          children: [(C {<Uninstall_Software>} {(DQ ($ Id.VSub_DollarName '$line'))})]
                        )
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Less '<'>
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$UNINSTALL_FILE')}
                        )
                      ]
                    )
                    (C {<rm>} {($ Id.VSub_DollarName '$UNINSTALL_FILE')})
                  ]
                  spids: [41954 41967]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Apply_SSHServer_Choices
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_NEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INDEX_SSHSERVER_TARGET')}
                                )
                              right: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INDEX_SSHSERVER_CURRENT')}
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$INDEX_SSHSERVER_TARGET')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <104>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$UNINSTALL_FILE'))}
                                )
                              ]
                            )
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <105>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$UNINSTALL_FILE'))}
                                )
                              ]
                            )
                          ]
                          spids: [42053 42067]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$INDEX_SSHSERVER_TARGET')}
                                        )
                                      right: 
                                        (arith_expr.Unary
                                          op_id: Id.Node_UnaryMinus
                                          child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 104>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [42125]
                                )
                              ]
                            )
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <105>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$UNINSTALL_FILE'))}
                                )
                              ]
                            )
                          ]
                          spids: [42106 42121]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$INDEX_SSHSERVER_TARGET')}
                                        )
                                      right: 
                                        (arith_expr.Unary
                                          op_id: Id.Node_UnaryMinus
                                          child: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 105>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [42172]
                                )
                              ]
                            )
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <104>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$UNINSTALL_FILE'))}
                                )
                              ]
                            )
                          ]
                          spids: [42153 42168]
                        )
                      ]
                    )
                    (C {<G_DIETPI-NOTIFY>} {<3>} {<DietPi-Software>} {(DQ <'Stopping SSH servers'>)})
                    (command.Simple
                      words: [{<service>} {<ssh>} {<stop>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<service>} {<dropbear>} {<stop>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_SSHSERVER_CURRENT)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$INDEX_SSHSERVER_TARGET')}
                          spids: [42247]
                        )
                      ]
                    )
                  ]
                  spids: [42031 42045]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Apply_FileServer_Choices
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_NEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INDEX_FILESERVER_TARGET')}
                                )
                              right: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INDEX_FILESERVER_CURRENT')}
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$INDEX_FILESERVER_TARGET')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <96>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$UNINSTALL_FILE'))}
                                )
                              ]
                            )
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <94>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$UNINSTALL_FILE'))}
                                )
                              ]
                            )
                          ]
                          spids: [42297 42311]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$INDEX_FILESERVER_TARGET')}
                                        )
                                      right: 
                                        (arith_expr.Unary
                                          op_id: Id.Node_UnaryMinus
                                          child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 94>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [42372]
                                )
                              ]
                            )
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <96>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$UNINSTALL_FILE'))}
                                )
                              ]
                            )
                          ]
                          spids: [42353 42368]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$INDEX_FILESERVER_TARGET')}
                                        )
                                      right: 
                                        (arith_expr.Unary
                                          op_id: Id.Node_UnaryMinus
                                          child: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 96>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [42419]
                                )
                              ]
                            )
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <94>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$UNINSTALL_FILE'))}
                                )
                              ]
                            )
                          ]
                          spids: [42400 42415]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_FILESERVER_CURRENT)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$INDEX_FILESERVER_TARGET')}
                          spids: [42451]
                        )
                      ]
                    )
                  ]
                  spids: [42275 42289]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Apply_Logging_Choices
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_NEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INDEX_LOGGING_TARGET')}
                                )
                              right: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INDEX_LOGGING_CURRENT')}
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$INDEX_LOGGING_TARGET')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <101>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$UNINSTALL_FILE'))}
                                )
                              ]
                            )
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <103>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$UNINSTALL_FILE'))}
                                )
                              ]
                            )
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <102>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$UNINSTALL_FILE'))}
                                )
                              ]
                            )
                          ]
                          spids: [42501 42515]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$INDEX_LOGGING_TARGET')}
                                        )
                                      right: 
                                        (arith_expr.Unary
                                          op_id: Id.Node_UnaryMinus
                                          child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 103>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [42588]
                                )
                              ]
                            )
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <101>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$UNINSTALL_FILE'))}
                                )
                              ]
                            )
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <102>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$UNINSTALL_FILE'))}
                                )
                              ]
                            )
                          ]
                          spids: [42569 42584]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$INDEX_LOGGING_TARGET')}
                                        )
                                      right: 
                                        (arith_expr.Unary
                                          op_id: Id.Node_UnaryMinus
                                          child: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 103>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [42650]
                                )
                              ]
                            )
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <101>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$UNINSTALL_FILE'))}
                                )
                              ]
                            )
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <102>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$UNINSTALL_FILE'))}
                                )
                              ]
                            )
                          ]
                          spids: [42631 42646]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$INDEX_LOGGING_TARGET')}
                                        )
                                      right: 
                                        (arith_expr.Unary
                                          op_id: Id.Node_UnaryMinus
                                          child: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 101>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [42712]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 102>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [42720]
                                )
                              ]
                            )
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <103>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$UNINSTALL_FILE'))}
                                )
                              ]
                            )
                          ]
                          spids: [42693 42708]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_LOGGING_CURRENT)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$INDEX_LOGGING_TARGET')}
                          spids: [42752]
                        )
                      ]
                    )
                  ]
                  spids: [42479 42493]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Apply_Webserver_Preference
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_NEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INDEX_WEBSERVER_TARGET')}
                                )
                              right: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INDEX_WEBSERVER_CURRENT')}
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_WEBSERVER_CURRENT)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$INDEX_WEBSERVER_TARGET')}
                          spids: [42794]
                        )
                      ]
                    )
                  ]
                  spids: [42772 42786]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Install_Apply_Permissions
      body: 
        (command.BraceGroup
          children: [
            (C {<chown>} {<-R>} {<www-data> <Id.Lit_Other ':'> <www-data>} {</var/www>})
            (C {<chmod>} {<-R>} {<775>} {</var/www>})
            (C {<chmod>} {<-R>} {<777>} {</var/www/ompd/tmp>})
            (C {<chmod>} {<-R>} {<777>} {</var/www/ompd/stream>})
            (C {<chmod>} {<-R>} {<777>} {</var/www/ompd/cache>})
            (C {<chown>} {<-R>} {<dietpi> <Id.Lit_Other ':'> <dietpi>} {</home/dietpi>})
            (C {<chown>} {<-R>} {<dietpi> <Id.Lit_Other ':'> <dietpi>} 
              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA'))}
            )
            (C {<chmod>} {<-R>} {<775>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA'))})
            (C {<chown>} {<-R>} {<dietpi> <Id.Lit_Other ':'> <dietpi>} 
              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </> <Id.Lit_Star '*'>}
            )
            (C {<chmod>} {<-R>} {<775>} 
              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </> <Id.Lit_Star '*'>}
            )
            (C {<chown>} {<-R>} {<mpd> <Id.Lit_Other ':'> <audio>} 
              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </.mpd_cache>}
            )
            (C {<chown>} {<-R>} {<mysql> <Id.Lit_Other ':'> <mysql>} 
              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </mysql>}
            )
            (C {<chmod>} {<-R>} {<770>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </mysql>})
            (C {<chown>} {<-R>} {<mineos> <Id.Lit_Other ':'> <mineos>} 
              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </mineos/serverdata>}
            )
            (C {<chown>} {<-R>} {<urbackup> <Id.Lit_Other ':'> <urbackup>} 
              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </urbackup>}
            )
            (C {<chown>} {<-R>} {<www-data> <Id.Lit_Other ':'> <www-data>} 
              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </dietpicam>}
            )
            (C {<chown>} {<-R>} {<www-data> <Id.Lit_Other ':'> <www-data>} 
              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </pydio_data>}
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'datadir='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  command_list: 
                    (command.CommandList
                      children: [
                        (command.Pipeline
                          children: [
                            (C {<cat>} {</DietPi/dietpi.txt>})
                            (C {<grep>} {<-m1>} {(SQ <'^SOFTWARE_OWNCLOUD_DATADIR='>)})
                            (C {<sed>} {(SQ <'s/.*=//'>)})
                          ]
                          negated: F
                        )
                      ]
                    )
                )
              }
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-n>} 
                  {(DQ ($ Id.VSub_DollarName '$datadir'))} {<Id.Lit_RBracket ']'>}
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:datadir)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </owncloud_data>)}
                      spids: [43124]
                    )
                  ]
                )
              ]
            )
            (C {<chown>} {<-R>} {<www-data> <Id.Lit_Other ':'> <www-data>} 
              {(DQ ($ Id.VSub_DollarName '$datadir'))}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:datadir)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {<cat>} {</DietPi/dietpi.txt>})
                                  (C {<grep>} {<-m1>} {(SQ <'^SOFTWARE_NEXTCLOUD_DATADIR='>)})
                                  (C {<sed>} {(SQ <'s/.*=//'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [43145]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-n>} 
                  {(DQ ($ Id.VSub_DollarName '$datadir'))} {<Id.Lit_RBracket ']'>}
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:datadir)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </nextcloud_data>)}
                      spids: [43185]
                    )
                  ]
                )
              ]
            )
            (C {<chown>} {<-R>} {<www-data> <Id.Lit_Other ':'> <www-data>} 
              {(DQ ($ Id.VSub_DollarName '$datadir'))}
            )
            (C {<chown>} {<-R>} {<minio-user> <Id.Lit_Other ':'> <minio-user>} 
              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </minio-data>}
            )
            (C {<chown>} {<-R>} {<bd> <Id.Lit_Other ':'> <bd>} 
              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </fuguhub-data/>}
            )
            (C {<chown>} {<-R>} {<nodered> <Id.Lit_Other ':'> <nodered>} 
              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </node-red>}
            )
          ]
        )
    )
    (command.ShFunction
      name: Install_Apply_Configs
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<23>}
                  spids: [43448]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<rm>} {</usr/share/applications/lxrandr.desktop>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/pcmanfm/LXDE>})
                    (C {<wget>} 
                      {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/pcmanfm.conf>} {<-O>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/pcmanfm/LXDE/pcmanfm.conf>}
                    )
                    (C {<wget>} 
                      {<http> <Id.Lit_Other ':'> 
                        <//dietpi.com/downloads/conf/desktop/pcmanfm-desktopitems.conf>
                      } {<-O>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/pcmanfm/LXDE/desktop-items-0.conf>}
                    )
                    (C {<sed>} {<-i>} {(SQ <'/use_trash=/c\\use_trash=0'>)} {</etc/xdg/libfm/libfm.conf>})
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/lxpanel/LXDE/panels>}
                    )
                    (C {<wget>} {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/panel>} 
                      {<-O>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/lxpanel/LXDE/panels/panel>}
                    )
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/openbox>})
                    (C {<wget>} 
                      {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/lxde-rc.xml>} {<-O>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/openbox/lxde-rc.xml>}
                    )
                    (C {<ln>} {<-sf>} {</usr/share/applications/pcmanfm.desktop>} 
                      {(DQ ($ Id.VSub_DollarName '$HOME')) </Desktop/pcmanfm.desktop>}
                    )
                    (C {<Create_Desktop_Shared_Items>})
                  ]
                  spids: [43452 43471]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<24>}
                  spids: [43639]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<ln>} {<-sf>} {</usr/share/applications/caja.desktop>} 
                      {(DQ ($ Id.VSub_DollarName '$HOME')) </Desktop/caja.desktop>}
                    )
                    (C {<Create_Desktop_Shared_Items>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 12>})
                                        )
                                      right: 
                                        (arith_expr.Unary
                                          op_id: Id.Arith_Bang
                                          child: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_DollarParen '$('>
                                                    command_list: 
                                                      (command.CommandList
                                                        children: [
                                                          (command.Pipeline
                                                            children: [
                                                              (C {<cat>} {</etc/pulse/default.pa>})
                                                              (C {<grep>} {<-ci>} {<-m1>} 
                                                                {
                                                                  (SQ 
                                                                    <
'^set-default-sink alsa_output.platform-odroid_hdmi.37.analog-stereo'
                                                                    >
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                        ]
                                                      )
                                                  )
                                                }
                                            )
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [
                                {<echo>}
                                {<-e>}
                                {
                                  (DQ 
                                    <
'set-default-sink alsa_output.platform-odroid_hdmi.37.analog-stereo'
                                    >
                                  )
                                }
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {</etc/pulse/default.pa>}
                                )
                              ]
                            )
                          ]
                          spids: [43695 43732]
                        )
                      ]
                    )
                  ]
                  spids: [43643 43662]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<26>}
                  spids: [43762]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Configuration>}) (C {<Create_Desktop_Shared_Items>})]
                  spids: [43766 43785]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<25>}
                  spids: [43805]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Configuration>}) (C {<Create_Desktop_Shared_Items>})]
                  spids: [43809 43828]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<83>}
                  spids: [43848]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {<-p>} {</var/www>})
                    (C {<cp>} {</DietPi/dietpi/conf/apache2_jessie.conf>} {</etc/apache2/apache2.conf>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 43928
                          stdin_parts: [
                            <'<VirtualHost *:80>\n'>
                            <'ServerAdmin webmaster@localhost\n'>
                            <'DocumentRoot /var/www\n'>
                            <'\n'>
                            <'ErrorLog '>
                            (${ Id.VSub_Name APACHE_LOG_DIR)
                            <'/error.log\n'>
                            <'CustomLog '>
                            (${ Id.VSub_Name APACHE_LOG_DIR)
                            <'/access.log combined\n'>
                            <'</VirtualHost>\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/apache2/sites-available/000-default.conf>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 43953
                          stdin_parts: [
                            <'<IfModule mpm_event_module>\n'>
                            <'StartServers\t\t '>
                            ($ Id.VSub_DollarName '$G_HW_CPU_CORES')
                            <'\n'>
                            <'MinSpareThreads\t\t 1\n'>
                            <'MaxSpareThreads\t\t 8\n'>
                            <'ThreadLimit\t\t \t16\n'>
                            <'ThreadsPerChild\t\t 4\n'>
                            <'MaxRequestWorkers\t 50\n'>
                            <'MaxConnectionsPerChild   0\n'>
                            <'</IfModule>\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/apache2/mods-available/mpm_event.conf>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 43978
                          stdin_parts: [
                            <'<IfModule mpm_prefork_module>\n'>
                            <'StartServers\t\t '>
                            ($ Id.VSub_DollarName '$G_HW_CPU_CORES')
                            <'\n'>
                            <'MinSpareServers\t\t 1\n'>
                            <'MaxSpareServers\t\t '>
                            ($ Id.VSub_DollarName '$G_HW_CPU_CORES')
                            <'\n'>
                            <'MaxRequestWorkers\t 50\n'>
                            <'MaxConnectionsPerChild   0\n'>
                            <'</IfModule>\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/apache2/mods-available/mpm_prefork.conf>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 44003
                          stdin_parts: [
                            <'<IfModule mpm_worker_module>\n'>
                            <'StartServers\t\t '>
                            ($ Id.VSub_DollarName '$G_HW_CPU_CORES')
                            <'\n'>
                            <'MinSpareThreads\t\t 1\n'>
                            <'MaxSpareThreads\t\t 8\n'>
                            <'ThreadLimit\t\t \t16\n'>
                            <'ThreadsPerChild\t\t 4\n'>
                            <'MaxRequestWorkers\t 50\n'>
                            <'MaxConnectionsPerChild   0\n'>
                            <'</IfModule>\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/apache2/mods-available/mpm_worker.conf>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<mv>} {</var/www/html/index.html>} {</var/www/index.html>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<rm>} {<-R>} {</var/www/html>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'/CustomLog /c'> <Id.Lit_Other '\\'> <'        #CustomLog '>) 
                        (SQ <'${APACHE_LOG_DIR}'>) (DQ <'/access.log combined'>)
                      } {</etc/apache2/sites-available/> <Id.Lit_Star '*'>}
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'/LogLevel /c'> <Id.Lit_Other '\\'> <'        LogLevel error'>)} {</etc/apache2/sites-available/> <Id.Lit_Star '*'>}
                    )
                  ]
                  spids: [43852 43871]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<85>}
                  spids: [44080]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {<-p>} {</var/www>})
                    (C {<mkdir>} {</etc/nginx/sites-dietpi>})
                    (C {<cp>} {</DietPi/dietpi/conf/nginx.conf>} {</etc/nginx/nginx.conf>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<sed>} {<-i>} {(DQ <'s#/run/php5-fpm.sock#/run/php/php7.0-fpm.sock#g'>)} 
                              {</etc/nginx/nginx.conf>}
                            )
                          ]
                          spids: [44144 44158]
                        )
                      ]
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ </worker_processes/c> <Id.Lit_Other '\\'> <'worker_processes '> 
                          ($ Id.VSub_DollarName '$G_HW_CPU_CORES') <';'>
                        )
                      } {</etc/nginx/nginx.conf>}
                    )
                    (C {<cp>} {</DietPi/dietpi/conf/nginx.site-available-default>} 
                      {</etc/nginx/sites-available/default>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<sed>} {<-i>} {(DQ <'s#/run/php5-fpm.sock#/run/php/php7.0-fpm.sock#g'>)} 
                              {</etc/nginx/sites-available/default>}
                            )
                          ]
                          spids: [44211 44225]
                        )
                      ]
                    )
                    (C {<cp>} {</usr/share/nginx/html/index.html>} {</var/www/index.html>})
                  ]
                  spids: [44084 44103]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<84>}
                  spids: [44263]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {<-p>} {</var/www>})
                    (C {<sed>} {<-i>} 
                      {(SQ <'/^server.document-root/c\\server.document-root        = "/var/www"'>)} {</etc/lighttpd/lighttpd.conf>}
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'fp_php_fpm_sock='> (SQ </var/run/php/php7.0-fpm.sock>)}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:fp_php_fpm_sock)
                                  op: assign_op.Equal
                                  rhs: {(SQ </var/run/php5-fpm.sock>)}
                                  spids: [44352]
                                )
                              ]
                            )
                          ]
                          spids: [44334 44348]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 44405
                          stdin_parts: [
                            <'# -*- depends: fastcgi -*-\n'>
                            <'# /usr/share/doc/lighttpd/fastcgi.txt.gz\n'>
                            <
'# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi\n'
                            >
                            <'\n'>
                            <'## Start an FastCGI server using php-fpm\n'>
                            <'fastcgi.server += ( '>
                            <Id.Right_DoubleQuote '"'>
                            <.php>
                            <Id.Right_DoubleQuote '"'>
                            <' =>\n'>
                            <'        ((\n'>
                            <'                '>
                            <Id.Right_DoubleQuote '"'>
                            <socket>
                            <Id.Right_DoubleQuote '"'>
                            <' => '>
                            <Id.Right_DoubleQuote '"'>
                            ($ Id.VSub_DollarName '$fp_php_fpm_sock')
                            <Id.Right_DoubleQuote '"'>
                            <',\n'>
                            <'                '>
                            <Id.Right_DoubleQuote '"'>
                            <broken-scriptfilename>
                            <Id.Right_DoubleQuote '"'>
                            <' => '>
                            <Id.Right_DoubleQuote '"'>
                            <enable>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'        ))\n'>
                            <')\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/lighttpd/conf-available/15-fastcgi-php.conf>}
                        )
                      ]
                    )
                    (C {<lighttpd-enable-mod>} {<fastcgi>})
                    (C {<lighttpd-enable-mod>} {<fastcgi-php>})
                    (C {<mv>} {</var/www/html/index.lighttpd.html>} {</var/www/>})
                    (C {<service>} {<lighttpd>} {<force-reload>})
                  ]
                  spids: [44267 44286]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<89>}
                  spids: [44451]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 83>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<local>} 
                              {<Id.Lit_VarLike 'php_service='> 
                                (SQ </lib/systemd/system/apache2.service>)
                              }
                            )
                          ]
                          spids: [44486 44505]
                        )
                      ]
                      else_action: [
                        (C {<local>} 
                          {<Id.Lit_VarLike 'php_service='> 
                            (SQ <'/lib/systemd/system/php*-fpm.service'>)
                          }
                        )
                        (C {<sed>} {<-i>} {(SQ <'/cgi.fix_pathinfo=/c\\cgi.fix_pathinfo=1'>)} 
                          {(DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR')) </fpm/php.ini>}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ <'/pm.max_children = /c'> <Id.Lit_Other '\\'> <'pm.max_children = '> 
                              (word_part.ArithSub
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Star
                                    left: 
                                      (arith_expr.ArithWord
                                        w: {($ Id.VSub_DollarName '$G_HW_CPU_CORES')}
                                      )
                                    right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                  )
                              )
                            )
                          } {(DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR')) </fpm/pool.d/www.conf>}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ <'/pm.start_servers = /c'> <Id.Lit_Other '\\'> <'pm.start_servers = '> 
                              ($ Id.VSub_DollarName '$G_HW_CPU_CORES')
                            )
                          } {(DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR')) </fpm/pool.d/www.conf>}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ <'/pm.min_spare_servers = /c'> <Id.Lit_Other '\\'> 
                              <'pm.min_spare_servers = '> ($ Id.VSub_DollarName '$G_HW_CPU_CORES')
                            )
                          } {(DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR')) </fpm/pool.d/www.conf>}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ <'/pm.max_spare_servers = /c'> <Id.Lit_Other '\\'> 
                              <'pm.max_spare_servers = '> ($ Id.VSub_DollarName '$G_HW_CPU_CORES')
                            )
                          } {(DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR')) </fpm/pool.d/www.conf>}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ </env> <Id.Lit_Other '\\'> <'[HOSTNAME'> <Id.Lit_Other '\\'> <']/c'> 
                              <Id.Lit_Other '\\'> <env> <Id.Lit_Other '\\'> <'[HOSTNAME'> <Id.Lit_Other '\\'> <'] = '> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\$'>
                              ) <HOSTNAME>
                            )
                          } {(DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR')) </fpm/pool.d/www.conf>}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ </env> <Id.Lit_Other '\\'> <'[PATH'> <Id.Lit_Other '\\'> <']/c'> 
                              <Id.Lit_Other '\\'> <env> <Id.Lit_Other '\\'> <'[PATH'> <Id.Lit_Other '\\'> <'] = /usr/local/bin:/usr/bin:/bin'>
                            )
                          } {(DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR')) </fpm/pool.d/www.conf>}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ </env> <Id.Lit_Other '\\'> <'[TMP'> <Id.Lit_Other '\\'> <']/c'> 
                              <Id.Lit_Other '\\'> <env> <Id.Lit_Other '\\'> <'[TMP'> <Id.Lit_Other '\\'> <'] = /var/tmp'>
                            )
                          } {(DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR')) </fpm/pool.d/www.conf>}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ </env> <Id.Lit_Other '\\'> <'[TMPDIR'> <Id.Lit_Other '\\'> <']/c'> 
                              <Id.Lit_Other '\\'> <env> <Id.Lit_Other '\\'> <'[TMPDIR'> <Id.Lit_Other '\\'> <'] = /var/tmp'>
                            )
                          } {(DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR')) </fpm/pool.d/www.conf>}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ </env> <Id.Lit_Other '\\'> <'[TEMP'> <Id.Lit_Other '\\'> <']/c'> 
                              <Id.Lit_Other '\\'> <env> <Id.Lit_Other '\\'> <'[TEMP'> <Id.Lit_Other '\\'> <'] = /var/tmp'>
                            )
                          } {(DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR')) </fpm/pool.d/www.conf>}
                        )
                      ]
                    )
                    (C {<local>} {<Id.Lit_VarLike 'target_php_ini='> <0>})
                    (C {<local>} 
                      {<Id.Lit_VarLike 'target_php_cachesize='> 
                        (word_part.ArithSub
                          anode: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Slash
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$RAM_TOTAL')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 30>})
                            )
                        )
                      }
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$target_php_cachesize')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:target_php_cachesize)
                                  op: assign_op.Equal
                                  rhs: {<10>}
                                  spids: [44819]
                                )
                              ]
                            )
                          ]
                          spids: [44801 44815]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 83>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:target_php_ini)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </apache2/php.ini>)
                                    }
                                  spids: [44855]
                                )
                              ]
                            )
                          ]
                          spids: [44832 44851]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:target_php_ini)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </fpm/php.ini>)}
                              spids: [44867]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'/opcache.enable=/c'> <Id.Lit_Other '\\'> <'opcache.enable=1'>)} {($ Id.VSub_DollarName '$target_php_ini')}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/opcache.memory_consumption=/c'> <Id.Lit_Other '\\'> 
                          <'opcache.memory_consumption='> ($ Id.VSub_DollarName '$target_php_cachesize')
                        )
                      } {($ Id.VSub_DollarName '$target_php_ini')}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/opcache.revalidate_freq=/c'> <Id.Lit_Other '\\'> 
                          <'opcache.revalidate_freq=60'>
                        )
                      } {($ Id.VSub_DollarName '$target_php_ini')}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:target_php_ini)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/apcu.ini>)
                            }
                          spids: [44924]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:target_php_cachesize)
                          op: assign_op.PlusEqual
                          rhs: {(DQ <M>)}
                          spids: [44935]
                        )
                      ]
                    )
                    (C {<local>} {<Id.Lit_VarLike 'target_apc_ttl='> (SQ <259200>)})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 44974
                          stdin_parts: [
                            <'extension=apcu.so\n'>
                            <'apc.shm_size='>
                            ($ Id.VSub_DollarName '$target_php_cachesize')
                            <'\n'>
                            <'apc.ttl='>
                            ($ Id.VSub_DollarName '$target_apc_ttl')
                            <'\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {(DQ ($ Id.VSub_DollarName '$target_php_ini'))}
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'dietpi_php_ini='> 
                        (DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/dietpi.ini>)
                      }
                    )
                    (C {<touch>} {($ Id.VSub_DollarName '$dietpi_php_ini')})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  words: [
                                    {<grep>}
                                    {<-q>}
                                    {(SQ <'^\\s*PrivateTmp=true'>)}
                                    {($ Id.VSub_DollarName '$php_service')}
                                  ]
                                  redirects: [
                                    (redir.Redir
                                      op: <Id.Redir_AndGreat '&>'>
                                      fd: -1
                                      arg_word: {</dev/null>}
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<local>} {<Id.Lit_VarLike 'tmp_upload_dir='> (DQ </var/tmp>)})]
                          spids: [45005 45022]
                        )
                      ]
                      else_action: [
                        (C {<local>} {<Id.Lit_VarLike 'tmp_upload_dir='> (DQ </var/tmp/php_upload_tmp>)})
                        (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$tmp_upload_dir'))})
                        (C {<chown>} {<-R>} {<www-data> <Id.Lit_Other ':'> <www-data>} 
                          {(DQ ($ Id.VSub_DollarName '$tmp_upload_dir'))}
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(SQ <upload_tmp_dir>)} 
                          {($ Id.VSub_DollarName '$dietpi_php_ini')}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ </upload_tmp_dir/c> <Id.Lit_Other '\\'> <'upload_tmp_dir = '> 
                              ($ Id.VSub_DollarName '$tmp_upload_dir')
                            )
                          } {($ Id.VSub_DollarName '$dietpi_php_ini')}
                        )
                        (command.Simple
                          words: [
                            {<echo>}
                            {(DQ <'upload_tmp_dir = '> ($ Id.VSub_DollarName '$tmp_upload_dir'))}
                          ]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_DGreat '>>'>
                              fd: -1
                              arg_word: {($ Id.VSub_DollarName '$dietpi_php_ini')}
                            )
                          ]
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'php_max_upload_size='> 
                        (DQ 
                          (word_part.ArithSub
                            anode: 
                              (arith_expr.Binary
                                op_id: Id.Arith_Slash
                                left: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Slash
                                    left: 
                                      (arith_expr.ArithWord
                                        w: 
                                          {
                                            (command_sub
                                              left_token: <Id.Left_DollarParen '$('>
                                              command_list: 
                                                (command.CommandList
                                                  children: [
                                                    (C {<php>} {<-r>} {(SQ <'print(PHP_INT_MAX);'>)})
                                                  ]
                                                )
                                            )
                                          }
                                      )
                                    right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1024>})
                                  )
                                right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1024>})
                              )
                          ) <M>
                        )
                      }
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(SQ <upload_max_filesize>)} 
                          {($ Id.VSub_DollarName '$dietpi_php_ini')}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ </upload_max_filesize/c> <Id.Lit_Other '\\'> <'upload_max_filesize = '> 
                              ($ Id.VSub_DollarName '$php_max_upload_size')
                            )
                          } {($ Id.VSub_DollarName '$dietpi_php_ini')}
                        )
                        (command.Simple
                          words: [
                            {<echo>}
                            {
                              (DQ <'upload_max_filesize = '> 
                                ($ Id.VSub_DollarName '$php_max_upload_size')
                              )
                            }
                          ]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_DGreat '>>'>
                              fd: -1
                              arg_word: {($ Id.VSub_DollarName '$dietpi_php_ini')}
                            )
                          ]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(SQ <post_max_size>)} 
                          {($ Id.VSub_DollarName '$dietpi_php_ini')}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ </post_max_size/c> <Id.Lit_Other '\\'> <'post_max_size = '> 
                              ($ Id.VSub_DollarName '$php_max_upload_size')
                            )
                          } {($ Id.VSub_DollarName '$dietpi_php_ini')}
                        )
                        (command.Simple
                          words: [
                            {<echo>}
                            {(DQ <'post_max_size = '> ($ Id.VSub_DollarName '$php_max_upload_size'))}
                          ]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_DGreat '>>'>
                              fd: -1
                              arg_word: {($ Id.VSub_DollarName '$dietpi_php_ini')}
                            )
                          ]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 85>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<sed>} {<-i>} 
                              {
                                (DQ </client_max_body_size/c> <Id.Lit_Other '\\'> 
                                  <'    client_max_body_size '> ($ Id.VSub_DollarName '$php_max_upload_size') <';'>
                                )
                              } {</etc/nginx/nginx.conf>}
                            )
                          ]
                          spids: [45245 45264]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(SQ <default_charset>)} 
                          {($ Id.VSub_DollarName '$dietpi_php_ini')}
                        )
                        (C {<sed>} {<-i>} {(SQ <'/default_charset/c\\default_charset = "UTF-8"'>)} 
                          {($ Id.VSub_DollarName '$dietpi_php_ini')}
                        )
                        (command.Simple
                          words: [{<echo>} {(SQ <'default_charset = "UTF-8"'>)}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_DGreat '>>'>
                              fd: -1
                              arg_word: {($ Id.VSub_DollarName '$dietpi_php_ini')}
                            )
                          ]
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'modules_to_enable='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {<ls>} 
                                      {(DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR')) 
                                        </mods-available>
                                      }
                                    )
                                    (C {<grep>} {(SQ <.ini>)})
                                    (C {<sed>} {(SQ <s/.ini//>)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      }
                    )
                    (C {(${ Id.VSub_Name PHP_APT_PACKAGE_NAME) <enmod>} 
                      {(DQ ($ Id.VSub_DollarName '$modules_to_enable'))}
                    )
                    (command.Simple
                      words: [{<echo>} {(DQ <'<?php phpinfo(); ?>'>)}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</var/www/phpinfo.php>}
                        )
                      ]
                    )
                    (C {<wget>} 
                      {<https> <Id.Lit_Other ':'> 
                        <//raw.githubusercontent.com/rlerdorf/opcache-status/master/opcache.php>
                      } {<-O>} {</var/www/opcache.php>}
                    )
                    (C {<wget>} 
                      {<https> <Id.Lit_Other ':'> <//github.com/krakjoe/apcu/raw/master/apc.php>} {<-O>} {</var/www/apc.php>}
                    )
                  ]
                  spids: [44455 44474]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<88>}
                  spids: [45430]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} 
                                  {
                                    (DQ 
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        command_list: 
                                          (command.CommandList
                                            children: [(C {<readlink>} {</var/lib/mysql>})]
                                          )
                                      )
                                    )
                                  } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </mysql/>)} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_RUN_CMD>} {<systemctl>} {<stop>} {<mysql>})
                            (C {<mkdir>} {<-p>} 
                              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </mysql>}
                            )
                            (C {<cp>} {<-a>} {</var/lib/mysql/> <Id.Lit_Star '*'>} 
                              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </mysql/>}
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_NEqual
                                              left: (arith_expr.ArithWord w:{($ Id.VSub_QMark '$?')})
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<G_DIETPI-NOTIFY>} {<1>} 
                                      {
                                        (DQ <'Moving of MySQL data store failed to '> 
                                          ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') <'/mysql. DietPi-Software will now exit'>
                                        )
                                      }
                                    )
                                    (C {<Exit_Destroy>})
                                  ]
                                  spids: [45534 45548]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (command.Simple
                                  words: [{<rm>} {<-R>} {</var/lib/mysql>}]
                                  redirects: [
                                    (redir.Redir
                                      op: <Id.Redir_AndGreat '&>'>
                                      fd: -1
                                      arg_word: {</dev/null>}
                                    )
                                  ]
                                )
                                (command.Simple
                                  words: [{<rm>} {</var/lib/mysql>}]
                                  redirects: [
                                    (redir.Redir
                                      op: <Id.Redir_AndGreat '&>'>
                                      fd: -1
                                      arg_word: {</dev/null>}
                                    )
                                  ]
                                )
                              ]
                            )
                            (C {<ln>} {<-sf>} 
                              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </mysql>} {</var/lib/mysql>}
                            )
                            (C {<chown>} {<mysql> <Id.Lit_Other ':'> <mysql>} {</var/lib/mysql>})
                            (command.Simple
                              words: [{<Install_Apply_Permissions>}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_AndGreat '&>'>
                                  fd: -1
                                  arg_word: {</dev/null>}
                                )
                              ]
                            )
                          ]
                          spids: [45465 45488]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_RUN_CMD>} {<systemctl>} {<start>} {<mysql>})
                            (command.Simple
                              words: [
                                {<mysql>}
                                {<-e>}
                                {(DQ <"install plugin unix_socket soname 'auth_socket';">)}
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_AndGreat '&>'>
                                  fd: -1
                                  arg_word: {</dev/null>}
                                )
                              ]
                            )
                            (C {<mysql>} {<-e>} 
                              {
                                (DQ 
                                  <
"grant all privileges on *.* to 'root'@'localhost' identified via unix_socket with grant option;flush privileges"
                                  >
                                )
                              }
                            )
                            (command.Simple
                              words: [
                                {<mysql>}
                                {<-e>}
                                {
                                  (DQ 
                                    <
"drop user 'root'@'dietpi';drop user 'root'@'127.0.0.1';drop user 'root'@'::1'"
                                    >
                                  )
                                }
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_AndGreat '&>'>
                                  fd: -1
                                  arg_word: {</dev/null>}
                                )
                              ]
                            )
                          ]
                          spids: [45640 45654]
                        )
                      ]
                    )
                  ]
                  spids: [45434 45453]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<90>}
                  spids: [45753]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_GreatEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {<Id.Lit_Digits 84>}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_GreatEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {<Id.Lit_Digits 85>}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<ln>} {<-sf>} {</usr/share/phpmyadmin>} {</var/www>})]
                          spids: [45788 45821]
                        )
                      ]
                    )
                    (C {<mysql>} {<-e>} 
                      {(DQ <'grant all privileges on *.* to phpmyadmin@localhost with grant option'>)}
                    )
                  ]
                  spids: [45757 45776]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<91>}
                  spids: [45869]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <enmod>} {<redis>}]
                      redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
                    )
                  ]
                  spids: [45873 45892]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<58>}
                  spids: [45925]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 45987
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=openbazaar\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'WorkingDirectory=/etc/openbazaar-server\n'>
                            <'ExecStart='>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: (command.CommandList children:[(C {<which>} {<python>})])
                            )
                            <' openbazaard.py start -a 0.0.0.0\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/openbazaar.service>}
                        )
                      ]
                    )
                  ]
                  spids: [45929 45948]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<133>}
                  spids: [45998]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<-R>} {</etc/yacy>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 46062
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=DietPi YaCy Service\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'RemainAfterExit=yes\n'>
                            <"ExecStart=/bin/bash -c '/etc/yacy/startYACY.sh'\n">
                            <"ExecStop=/bin/bash -c '/etc/yacy/stopYACY.sh'\n">
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/yacy.service>}
                        )
                      ]
                    )
                    (C {<systemctl>} {<daemon-reload>})
                    (C {</etc/yacy/bin/passwd.sh>} {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))})
                  ]
                  spids: [46002 46021]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<47>}
                  spids: [46090]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {
                        (SQ 
                          <
'Enabling needed PHP modules: https://doc.owncloud.org/server/latest/admin_manual/installation/source_installation.html#php-extensions'
                          >
                        )
                      }
                    )
                    (C {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <enmod>} {<curl>} {<gd>} 
                      {<intl>} {<json>} {<pdo_mysql>} {<opcache>} {<apcu>} {<redis>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Great
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<phpenmod>} {<ctype>} {<dom>} {<fileinfo>} {<iconv>} {<mbstring>} {<posix>} 
                              {<simplexml>} {<xmlwriter>} {<xmlreader>} {<zip>} {<exif>}
                            )
                          ]
                          spids: [46156 46170]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(SQ <'apc.enable_cli='>)} 
                          {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/apcu.ini>}
                        )
                        (C {<sed>} {<-i>} {(SQ <'/apc.enable_cli=/c\\apc.enable_cli=1'>)} 
                          {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/apcu.ini>}
                        )
                        (command.Simple
                          words: [{<echo>} {(SQ <'apc.enable_cli=1'>)}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_DGreat '>>'>
                              fd: -1
                              arg_word: 
                                {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/apcu.ini>}
                            )
                          ]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 83>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                              {
                                (SQ 
                                  <
'Apache webserver found, enable ownCloud specific configuration: "https://doc.owncloud.org/server/latest/admin_manual/installation/source_installation.html#configure-apache-web-server"'
                                  >
                                )
                              }
                            )
                            (command.Simple
                              words: [{<a2enmod>} {<rewrite>} {<headers>} {<env>} {<dir>} {<mime>}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_Great '1>'>
                                  fd: 1
                                  arg_word: {</dev/null>}
                                )
                              ]
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'owncloud_conf='> 
                                (SQ </etc/apache2/sites-available/owncloud.conf>)
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} {<-f>} 
                                          {($ Id.VSub_DollarName '$owncloud_conf')} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                                      {
                                        (SQ 
                                          <
'Existing ownCloud configuration found, will save the new one for review and comparison to: /etc/apache2/sites-available/owncloud.conf.dietpi-new'
                                          >
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:owncloud_conf)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (SQ 
                                                <
/etc/apache2/sites-available/owncloud.conf.dietpi-new
                                                >
                                              )
                                            }
                                          spids: [46328]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [46304 46315]
                                )
                              ]
                            )
                            (C {<cp>} {</DietPi/dietpi/conf/apache.ownnextcloud.conf>} 
                              {($ Id.VSub_DollarName '$owncloud_conf')}
                            )
                            (C {<sed>} {<-i>} {(SQ <s/nextcloud/owncloud/g>)} 
                              {($ Id.VSub_DollarName '$owncloud_conf')}
                            )
                            (C {<sed>} {<-i>} {(SQ <'s/php_admin_value/#php_admin_value/'>)} 
                              {($ Id.VSub_DollarName '$owncloud_conf')}
                            )
                            (command.Simple
                              words: [{<a2ensite>} {<owncloud>}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_Great '1>'>
                                  fd: 1
                                  arg_word: {</dev/null>}
                                )
                              ]
                            )
                          ]
                          spids: [46247 46266]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 85>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                              {
                                (SQ 
                                  <
'Nginx webserver found, enable ownCloud specific configuration: "https://doc.owncloud.org/server/latest/admin_manual/installation/nginx_configuration.html#owncloud-in-a-subdir-of-nginx"'
                                  >
                                )
                              }
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'owncloud_config='> 
                                (SQ </etc/nginx/sites-dietpi/owncloud.config>)
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} {<-f>} 
                                          {($ Id.VSub_DollarName '$owncloud_config')} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                                      {
                                        (SQ 
                                          <
'Existing ownCloud configuration found, will save the new one for review and comparison to: /etc/nginx/sites-dietpi/owncloud.config.dietpi-new'
                                          >
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:owncloud_config)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (SQ 
                                                </etc/nginx/sites-dietpi/owncloud.config.dietpi-new>
                                              )
                                            }
                                          spids: [46449]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [46425 46436]
                                )
                              ]
                            )
                            (C {<cp>} {</DietPi/dietpi/conf/nginx.sites-dietpi.owncloud.config>} 
                              {($ Id.VSub_DollarName '$owncloud_config')}
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_Great
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<sed>} {<-i>} 
                                      {(SQ <'s|/run/php5-fpm.sock|/run/php/php7.0-fpm.sock|g'>)} {($ Id.VSub_DollarName '$owncloud_config')}
                                    )
                                    (C {<sed>} {<-i>} 
                                      {
                                        (SQ 
                                          <
's/#fastcgi_request_buffering off;/fastcgi_request_buffering off;/g'
                                          >
                                        )
                                      } {($ Id.VSub_DollarName '$owncloud_config')}
                                    )
                                  ]
                                  spids: [46471 46485]
                                )
                              ]
                            )
                            (command.Simple
                              words: [
                                {<wget>}
                                {<-q>}
                                {<--spider>}
                                {<--timeout> <Id.Lit_Equals '='> <10>}
                                {<--tries> <Id.Lit_Equals '='> <2>}
                                {<https> <Id.Lit_Other ':'> <//localhost>}
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_AndGreat '&>'>
                                  fd: -1
                                  arg_word: {</dev/null>}
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DPipe
                                              left: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: {($ Id.VSub_QMark '$?')}
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                                )
                                              right: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: {($ Id.VSub_QMark '$?')}
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 5>})
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<sed>} {<-i>} 
                                      {(SQ <'s/#fastcgi_param HTTPS on;/fastcgi_param HTTPS on;/g'>)} {($ Id.VSub_DollarName '$owncloud_config')}
                                    )
                                  ]
                                  spids: [46543 46564]
                                )
                              ]
                            )
                          ]
                          spids: [46385 46404]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 46607
                          stdin_parts: [
                            <'[mysqld]\n'>
                            <'innodb_large_prefix=1\n'>
                            <'innodb_file_format=barracuda\n'>
                            <'innodb_file_per_table=1\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/mysql/mariadb.conf.d/99-dietpi-4byte.cnf>}
                        )
                      ]
                    )
                    (C {<G_RUN_CMD>} {<systemctl>} {<restart>} {<mysql>})
                    (C {<.>} {</DietPi/dietpi/func/dietpi-globals>})
                    (C {<local>} 
                      {<Id.Lit_VarLike 'config_php='> (SQ </var/www/owncloud/config/config.php>)}
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'datadir='> 
                        (DQ 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            command_list: 
                              (command.CommandList
                                children: [
                                  (command.Pipeline
                                    children: [
                                      (C {<grep>} {<-m1>} 
                                        {(SQ <'^[[:blank:]]*SOFTWARE_OWNCLOUD_DATADIR='>)} {</DietPi/dietpi.txt>}
                                      )
                                      (C {<sed>} {(SQ <'s/^.*=//'>)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                          )
                        )
                      }
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$datadir'))} 
                          {<Id.Lit_RBracket ']'>}
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:datadir)
                              op: assign_op.Equal
                              rhs: 
                                {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </owncloud_data>)}
                              spids: [46680]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$datadir'))})
                    (command.Simple
                      words: [{<Install_Apply_Permissions>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<-d>} 
                                  {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                                    </mysql/owncloud>
                                  } {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                              {(SQ <'ownCloud database found, will NOT overwrite.'>)}
                            )
                          ]
                          spids: [46704 46718]
                        )
                      ]
                      else_action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-f>} 
                                      {(DQ ($ Id.VSub_DollarName '$datadir')) 
                                        </dietpi-owncloud-database-backup.sql>
                                      } {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (C {<G_DIETPI-NOTIFY>} {<2>} 
                                  {(SQ <'ownCloud database backup found, starting recovery...'>)}
                                )
                                (C {<local>} 
                                  {<Id.Lit_VarLike 'dbuser='> 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (command.Pipeline
                                              children: [
                                                (C {<grep>} {<-m1>} {(DQ <"^[[:blank:]]*'dbuser'">)} 
                                                  {($ Id.VSub_DollarName '$config_php')}
                                                )
                                                (C {<awk>} {(SQ <'{print $3}'>)})
                                                (C {<sed>} {(DQ <"s/[',]//g">)})
                                              ]
                                              negated: F
                                            )
                                          ]
                                        )
                                    )
                                  }
                                )
                                (C {<local>} 
                                  {<Id.Lit_VarLike 'dbpass='> 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (command.Pipeline
                                              children: [
                                                (C {<grep>} {<-m1>} {(DQ <"^[[:blank:]]*'dbpassword'">)} 
                                                  {($ Id.VSub_DollarName '$config_php')}
                                                )
                                                (C {<awk>} {(SQ <'{print $3}'>)})
                                                (C {<sed>} {(DQ <"s/[',]//g">)})
                                              ]
                                              negated: F
                                            )
                                          ]
                                        )
                                    )
                                  }
                                )
                                (C {</DietPi/dietpi/func/create_mysql_db>} {<owncloud>} 
                                  {(DQ ($ Id.VSub_DollarName '$dbuser'))} {(DQ ($ Id.VSub_DollarName '$dbpass'))}
                                )
                                (command.Simple
                                  words: [{<mysql>} {<-uroot>} {<owncloud>}]
                                  redirects: [
                                    (redir.Redir
                                      op: <Id.Redir_Less '<'>
                                      fd: -1
                                      arg_word: 
                                        {(DQ ($ Id.VSub_DollarName '$datadir')) 
                                          </dietpi-owncloud-database-backup.sql>
                                        }
                                    )
                                  ]
                                )
                              ]
                              spids: [46736 46750]
                            )
                          ]
                          else_action: [
                            (C {<local>} 
                              {<Id.Lit_VarLike 'username='> 
                                (DQ 
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    command_list: 
                                      (command.CommandList
                                        children: [
                                          (command.Pipeline
                                            children: [
                                              (C {<cat>} {</DietPi/dietpi.txt>})
                                              (C {<grep>} {<-m1>} 
                                                {
                                                  (SQ 
                                                    <
'^[[:blank:]]*SOFTWARE_OWNCLOUD_NEXTCLOUD_USERNAME='
                                                    >
                                                  )
                                                }
                                              )
                                              (C {<sed>} {(SQ <'s/^.*=//'>)})
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                  )
                                )
                              }
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<Id.Lit_LBracket '['>} {<-n>} 
                                  {(DQ ($ Id.VSub_DollarName '$username'))} {<Id.Lit_RBracket ']'>}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:username)
                                      op: assign_op.Equal
                                      rhs: {(SQ <admin>)}
                                      spids: [46901]
                                    )
                                  ]
                                )
                              ]
                            )
                            (C {<mysql>} {<-e>} 
                              {
                                (DQ 
                                  <
"grant all privileges on *.* to 'tmp_root'@'localhost' identified by '"
                                  > ($ Id.VSub_DollarName '$GLOBAL_PW') <"' with grant option">
                                )
                              }
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (command.Simple
                                  words: [
                                    {<grep>}
                                    {<-q>}
                                    {(DQ <"'installed' => true,">)}
                                    {($ Id.VSub_DollarName '$config_php')}
                                  ]
                                  redirects: [
                                    (redir.Redir
                                      op: <Id.Redir_Great '2>'>
                                      fd: 2
                                      arg_word: {</dev/null>}
                                    )
                                  ]
                                )
                                (C {<occ>} {<maintenance> <Id.Lit_Other ':'> <install>} 
                                  {<--no-interaction>} {<--database>} {(DQ <mysql>)} {<--database-name>} {(DQ <owncloud>)} {<--database-user>} {(DQ <tmp_root>)} 
                                  {<--database-pass>} {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))} {<--admin-user>} {(DQ ($ Id.VSub_DollarName '$username'))} 
                                  {<--admin-pass>} {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))} {<--data-dir>} {(DQ ($ Id.VSub_DollarName '$datadir'))}
                                )
                              ]
                            )
                            (C {<mysql>} {<-e>} {(DQ <"drop user 'tmp_root'@'localhost'">)})
                          ]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(DQ <"^[[:blank:]]*'mysql.utf8mb4'">)} 
                          {($ Id.VSub_DollarName '$config_php')}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ <"/^[[:blank:]]*'dbpassword'/a "> <Id.Lit_Other '\\'> <' '> 
                              <Id.Lit_Other '\\'> <" 'mysql.utf8mb4' => true,">
                            )
                          } {($ Id.VSub_DollarName '$config_php')}
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Unary
                                      op_id: Id.Arith_Bang
                                      child: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                command_list: 
                                                  (command.CommandList
                                                    children: [
                                                      (command.Pipeline
                                                        children: [
                                                          (C {<cat>} 
                                                            {($ Id.VSub_DollarName '$config_php')}
                                                          )
                                                          (C {<grep>} {<-ci>} {<-m1>} {(DQ <"1 => '">)})
                                                        ]
                                                        negated: F
                                                      )
                                                    ]
                                                  )
                                              )
                                            }
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<sed>} {<-i>} 
                              {
                                (DQ <"/0 => 'localhost'/a     1 => '"> 
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    command_list: 
                                      (command.CommandList
                                        children: [
                                          (C {<sed>} {<-n>} {<4p>} {</DietPi/dietpi/.network>})
                                        ]
                                      )
                                  ) <"',">
                                )
                              } {($ Id.VSub_DollarName '$config_php')}
                            )
                            (C {<sed>} {<-i>} 
                              {
                                (DQ <"/1 => '/a     2 => '"> 
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    command_list: 
                                      (command.CommandList
                                        children: [(C {<cat>} {</etc/hostname>})]
                                      )
                                  ) <"',">
                                )
                              } {($ Id.VSub_DollarName '$config_php')}
                            )
                          ]
                          spids: [47047 47075]
                        )
                      ]
                    )
                    (C {<sed>} {<-i>} {(DQ <"s|'http://localhost'|'http://localhost/owncloud'|g">)} 
                      {($ Id.VSub_DollarName '$config_php')}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 83>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<grep>} {<-q>} {(DQ <"^[[:blank:]]*'htaccess.RewriteBase'">)} 
                                  {($ Id.VSub_DollarName '$config_php')}
                                )
                                (C {<sed>} {<-i>} 
                                  {
                                    (DQ <"/^[[:blank:]]*'overwrite.cli.url'/a "> <Id.Lit_Other '\\'> 
                                      <' '> <Id.Lit_Other '\\'> <" 'htaccess.RewriteBase' => '/owncloud',">
                                    )
                                  } {($ Id.VSub_DollarName '$config_php')}
                                )
                              ]
                            )
                            (C {<occ>} 
                              {<maintenance> <Id.Lit_Other ':'> <update> <Id.Lit_Other ':'> <htaccess>}
                            )
                          ]
                          spids: [47142 47161]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(DQ <"^[[:blank:]]*'memcache.local'">)} 
                          {($ Id.VSub_DollarName '$config_php')}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ <"/^[[:blank:]]*'version'/a "> <Id.Lit_Other '\\'> <' '> 
                              <Id.Lit_Other '\\'> <" 'memcache.local' => '"> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                              <Id.Lit_Other '\\'> <OC> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <Id.Lit_Other '\\'> <Memcache> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\\\'>
                              ) <Id.Lit_Other '\\'> <"APCu',">
                            )
                          } {($ Id.VSub_DollarName '$config_php')}
                        )
                      ]
                    )
                    (C {<local>} {<Id.Lit_VarLike 'redis_conf='> (DQ <'/etc/redis/redis*.conf'>)})
                    (command.AndOr
                      ops: [Id.Op_DPipe Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(DQ <'^[[:blank:]]*unixsocket /'>)} 
                          {($ Id.VSub_DollarName '$redis_conf')}
                        )
                        (C {<grep>} {<-q>} {(SQ <'^[[:blank:]]*#unixsocket /'>)} 
                          {($ Id.VSub_DollarName '$redis_conf')}
                        )
                        (C {<sed>} {<-i>} {(SQ <'s|^[[:blank:]]*#unixsocket /|unixsocket /|'>)} 
                          {($ Id.VSub_DollarName '$redis_conf')}
                        )
                        (command.Simple
                          words: [{<echo>} {(SQ <'unixsocket /var/run/redis/redis.sock'>)}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_DGreat '>>'>
                              fd: -1
                              arg_word: {($ Id.VSub_DollarName '$redis_conf')}
                            )
                          ]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(DQ <'^[[:blank:]]*#?unixsocketperm '>)} 
                          {($ Id.VSub_DollarName '$redis_conf')}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ <'/^[[:blank:]]*#?unixsocketperm /c'> <Id.Lit_Other '\\'> 
                              <'unixsocketperm 770'>
                            )
                          } {($ Id.VSub_DollarName '$redis_conf')}
                        )
                        (command.Simple
                          words: [{<echo>} {(SQ <'unixsocketperm 770'>)}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_DGreat '>>'>
                              fd: -1
                              arg_word: {($ Id.VSub_DollarName '$redis_conf')}
                            )
                          ]
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'redis_sock='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {<grep>} {(DQ <'^[[:blank:]]*unixsocket /'>)} 
                                      {($ Id.VSub_DollarName '$redis_conf')}
                                    )
                                    (C {<sed>} {(DQ <'s/^[[:blank:]]*unixsocket //'>)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      }
                    )
                    (C {<usermod>} {<-a>} {<-G>} {<redis>} {<www-data>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Unary
                                      op_id: Id.Arith_Bang
                                      child: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                command_list: 
                                                  (command.CommandList
                                                    children: [
                                                      (command.Pipeline
                                                        children: [
                                                          (C {<cat>} 
                                                            {($ Id.VSub_DollarName '$config_php')}
                                                          )
                                                          (C {<grep>} {<-ci>} {<-m1>} 
                                                            {(DQ <"'memcache.locking'">)}
                                                          )
                                                        ]
                                                        negated: F
                                                      )
                                                    ]
                                                  )
                                              )
                                            }
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<sed>} {<-i>} 
                              {
                                (DQ <Id.Lit_Other '\\'> <"#'memcache.local'#a "> <Id.Lit_Other '\\'> 
                                  <' '> <Id.Lit_Other '\\'> <" 'filelocking.enabled' => true,"> <Id.Lit_Other '\\'> <n> 
                                  <"  'memcache.locking' => '"> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <Id.Lit_Other '\\'> <OC> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\\\'>
                                  ) <Id.Lit_Other '\\'> <Memcache> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                                  <Id.Lit_Other '\\'> <"Redis',"> <Id.Lit_Other '\\'> <n> <"  'redis' => ["> <Id.Lit_Other '\\'> <n> <"    'host' => '"> 
                                  ($ Id.VSub_DollarName '$redis_sock') <"',"> <Id.Lit_Other '\\'> <n> <"    'port' => 0,"> <Id.Lit_Other '\\'> <n> <'  ],'>
                                )
                              } {($ Id.VSub_DollarName '$config_php')}
                            )
                          ]
                          spids: [47388 47416]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (command.Pipeline
                          children: [
                            (command.Simple
                              words: [{<crontab>} {<-u>} {<www-data>} {<-l>}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_Great '2>'>
                                  fd: 2
                                  arg_word: {</dev/null>}
                                )
                              ]
                            )
                            (C {<grep>} {<-q>} {(SQ </var/www/owncloud/cron.php>)})
                          ]
                          negated: F
                        )
                        (command.Pipeline
                          children: [
                            (command.Subshell
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          words: [{<crontab>} {<-u>} {<www-data>} {<-l>}]
                                          redirects: [
                                            (redir.Redir
                                              op: <Id.Redir_Great '2>'>
                                              fd: 2
                                              arg_word: {</dev/null>}
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (C {<echo>} {(DQ <'*/15 * * * * php /var/www/owncloud/cron.php'>)})
                                  ]
                                )
                            )
                            (C {<crontab>} {<-u>} {<www-data>} {<->})
                          ]
                          negated: F
                        )
                      ]
                    )
                    (C {<occ>} {<background> <Id.Lit_Other ':'> <cron>})
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(DQ <"^[[:blank:]]*'maintenance' => true,">)} 
                          {($ Id.VSub_DollarName '$config_php')}
                        )
                        (C {<occ>} {<maintenance> <Id.Lit_Other ':'> <mode>} {<--on>})
                      ]
                    )
                  ]
                  spids: [46094 46113]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<114>}
                  spids: [47575]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {
                        (SQ 
                          <
'Enabling needed PHP modules: https://docs.nextcloud.com/server/12/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation'
                          >
                        )
                      }
                    )
                    (C {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <enmod>} {<curl>} {<gd>} 
                      {<intl>} {<json>} {<pdo_mysql>} {<opcache>} {<apcu>} {<redis>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Great
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<phpenmod>} {<ctype>} {<dom>} {<fileinfo>} {<iconv>} {<mbstring>} {<posix>} 
                              {<simplexml>} {<xmlwriter>} {<xmlreader>} {<zip>} {<exif>}
                            )
                          ]
                          spids: [47641 47655]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(SQ <'apc.enable_cli='>)} 
                          {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/apcu.ini>}
                        )
                        (C {<sed>} {<-i>} {(SQ <'/apc.enable_cli=/c\\apc.enable_cli=1'>)} 
                          {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/apcu.ini>}
                        )
                        (command.Simple
                          words: [{<echo>} {(SQ <'apc.enable_cli=1'>)}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_DGreat '>>'>
                              fd: -1
                              arg_word: 
                                {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/apcu.ini>}
                            )
                          ]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(SQ <'opcache.enable='>)} 
                          {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/opcache.ini>}
                        )
                        (C {<sed>} {<-i>} {(SQ <'/opcache.enable=/c\\opcache.enable=1'>)} 
                          {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/opcache.ini>}
                        )
                        (command.Simple
                          words: [{<echo>} {(SQ <'opcache.enable=1'>)}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_DGreat '>>'>
                              fd: -1
                              arg_word: 
                                {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') 
                                  </mods-available/opcache.ini>
                                }
                            )
                          ]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(SQ <'opcache.enable_cli='>)} 
                          {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/opcache.ini>}
                        )
                        (C {<sed>} {<-i>} {(SQ <'/opcache.enable_cli=/c\\opcache.enable_cli=1'>)} 
                          {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/opcache.ini>}
                        )
                        (command.Simple
                          words: [{<echo>} {(SQ <'opcache.enable_cli=1'>)}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_DGreat '>>'>
                              fd: -1
                              arg_word: 
                                {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') 
                                  </mods-available/opcache.ini>
                                }
                            )
                          ]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(SQ <'opcache.interned_strings_buffer='>)} 
                          {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/opcache.ini>}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (SQ 
                              <
'/opcache.interned_strings_buffer=/c\\opcache.interned_strings_buffer=8'
                              >
                            )
                          } {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/opcache.ini>}
                        )
                        (command.Simple
                          words: [{<echo>} {(SQ <'opcache.interned_strings_buffer=8'>)}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_DGreat '>>'>
                              fd: -1
                              arg_word: 
                                {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') 
                                  </mods-available/opcache.ini>
                                }
                            )
                          ]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(SQ <'opcache.max_accelerated_files='>)} 
                          {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/opcache.ini>}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (SQ 
                              <
'/opcache.max_accelerated_files=/c\\opcache.max_accelerated_files=10000'
                              >
                            )
                          } {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/opcache.ini>}
                        )
                        (command.Simple
                          words: [{<echo>} {(SQ <'opcache.max_accelerated_files=10000'>)}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_DGreat '>>'>
                              fd: -1
                              arg_word: 
                                {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') 
                                  </mods-available/opcache.ini>
                                }
                            )
                          ]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(SQ <'opcache.save_comments='>)} 
                          {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/opcache.ini>}
                        )
                        (C {<sed>} {<-i>} {(SQ <'/opcache.save_comments=/c\\opcache.save_comments=1'>)} 
                          {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/opcache.ini>}
                        )
                        (command.Simple
                          words: [{<echo>} {(SQ <'opcache.save_comments=1'>)}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_DGreat '>>'>
                              fd: -1
                              arg_word: 
                                {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') 
                                  </mods-available/opcache.ini>
                                }
                            )
                          ]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(SQ <'opcache.revalidate_freq='>)} 
                          {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/opcache.ini>}
                        )
                        (C {<sed>} {<-i>} 
                          {(SQ <'/opcache.revalidate_freq=/c\\opcache.revalidate_freq=1'>)} {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') </mods-available/opcache.ini>}
                        )
                        (command.Simple
                          words: [{<echo>} {(SQ <'opcache.revalidate_freq=1'>)}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_DGreat '>>'>
                              fd: -1
                              arg_word: 
                                {($ Id.VSub_DollarName '$FP_PHP_BASE_DIR') 
                                  </mods-available/opcache.ini>
                                }
                            )
                          ]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 83>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                              {
                                (SQ 
                                  <
'Apache webserver found, enable Nextcloud specific configuration: "https://docs.nextcloud.com/server/12/admin_manual/installation/source_installation.html#apache-web-server-configuration"'
                                  >
                                )
                              }
                            )
                            (command.Simple
                              words: [{<a2enmod>} {<rewrite>} {<headers>} {<env>} {<dir>} {<mime>}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_Great '1>'>
                                  fd: 1
                                  arg_word: {</dev/null>}
                                )
                              ]
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'nextcloud_conf='> 
                                (SQ </etc/apache2/sites-available/nextcloud.conf>)
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} {<-f>} 
                                          {($ Id.VSub_DollarName '$nextcloud_conf')} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                                      {
                                        (SQ 
                                          <
'Existing Nextcloud configuration found, will save the new one for review and comparison to: /etc/apache2/sites-available/nextcloud.conf.dietpi-new'
                                          >
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:nextcloud_conf)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (SQ 
                                                <
/etc/apache2/sites-available/nextcloud.conf.dietpi-new
                                                >
                                              )
                                            }
                                          spids: [48046]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [48022 48033]
                                )
                              ]
                            )
                            (C {<cp>} {</DietPi/dietpi/conf/apache.ownnextcloud.conf>} 
                              {($ Id.VSub_DollarName '$nextcloud_conf')}
                            )
                            (command.Simple
                              words: [{<a2ensite>} {<nextcloud>}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_Great '1>'>
                                  fd: 1
                                  arg_word: {</dev/null>}
                                )
                              ]
                            )
                          ]
                          spids: [47965 47984]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 85>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                              {
                                (SQ 
                                  <
'Nginx webserver found, enable Nextcloud specific configuration: "https://docs.nextcloud.com/server/12/admin_manual/installation/nginx.html#nextcloud-in-a-subdir-of-nginx"'
                                  >
                                )
                              }
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'nextcloud_config='> 
                                (SQ </etc/nginx/sites-dietpi/nextcloud.config>)
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} {<-f>} 
                                          {($ Id.VSub_DollarName '$nextcloud_config')} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                                      {
                                        (SQ 
                                          <
'Existing Nextcloud configuration found, will save the new one for review and comparison to: /etc/nginx/sites-dietpi/nextcloud.config.dietpi-new'
                                          >
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:nextcloud_config)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (SQ 
                                                <
/etc/nginx/sites-dietpi/nextcloud.config.dietpi-new
                                                >
                                              )
                                            }
                                          spids: [48141]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [48117 48128]
                                )
                              ]
                            )
                            (C {<cp>} {</DietPi/dietpi/conf/nginx.sites-dietpi.nextcloud.config>} 
                              {($ Id.VSub_DollarName '$nextcloud_config')}
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_Great
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<sed>} {<-i>} 
                                      {(SQ <'s|/run/php5-fpm.sock|/run/php/php7.0-fpm.sock|g'>)} {($ Id.VSub_DollarName '$nextcloud_config')}
                                    )
                                    (C {<sed>} {<-i>} 
                                      {
                                        (SQ 
                                          <
's/#fastcgi_request_buffering off;/fastcgi_request_buffering off;/g'
                                          >
                                        )
                                      } {($ Id.VSub_DollarName '$nextcloud_config')}
                                    )
                                  ]
                                  spids: [48163 48177]
                                )
                              ]
                            )
                            (command.Simple
                              words: [
                                {<wget>}
                                {<-q>}
                                {<--spider>}
                                {<--timeout> <Id.Lit_Equals '='> <10>}
                                {<--tries> <Id.Lit_Equals '='> <2>}
                                {<https> <Id.Lit_Other ':'> <//localhost>}
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_AndGreat '&>'>
                                  fd: -1
                                  arg_word: {</dev/null>}
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DPipe
                                              left: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: {($ Id.VSub_QMark '$?')}
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                                )
                                              right: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: {($ Id.VSub_QMark '$?')}
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 5>})
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<sed>} {<-i>} 
                                      {(SQ <'s/#fastcgi_param HTTPS on;/fastcgi_param HTTPS on;/g'>)} {($ Id.VSub_DollarName '$nextcloud_config')}
                                    )
                                  ]
                                  spids: [48235 48256]
                                )
                              ]
                            )
                          ]
                          spids: [48077 48096]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 84>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                              {
                                (SQ 
                                  <
'Lighttpd webserver found, enable Nextcloud specific configuration.'
                                  >
                                )
                              }
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'lighttpd_conf='> (SQ </etc/lighttpd/lighttpd.conf>)}
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe Id.Op_DAmp Id.Op_DPipe]
                              children: [
                                (C {<grep>} {<-q>} {(SQ <'^[[:blank:]]*"mod_setenv",'>)} 
                                  {($ Id.VSub_DollarName '$lighttpd_conf')}
                                )
                                (C {<grep>} {<-q>} {(SQ <'^[[:blank:]#;]*"mod_setenv",'>)} 
                                  {($ Id.VSub_DollarName '$lighttpd_conf')}
                                )
                                (C {<sed>} {<-i>} 
                                  {(SQ <'/^[[:blank:]#;]*"mod_setenv",/c\\\t"mod_setenv",'>)} {($ Id.VSub_DollarName '$lighttpd_conf')}
                                )
                                (C {<sed>} {<-i>} 
                                  {(SQ <'/^[[:blank:]]*server.modules = (/a\\\t"mod_setenv",'>)} {($ Id.VSub_DollarName '$lighttpd_conf')}
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} 
                                  {</etc/lighttpd/conf-available/99-dietpi-nextcloud.conf>} {<Id.Lit_RBracket ']'>}
                                )
                                (C {<cp>} {</DietPi/dietpi/conf/lighttpd.nextcloud.conf>} 
                                  {</etc/lighttpd/conf-available/99-dietpi-nextcloud.conf>}
                                )
                              ]
                            )
                            (C {<lighttpd-enable-mod>} {<dietpi-nextcloud>})
                            (C {<service>} {<lighttpd>} {<force-reload>})
                          ]
                          spids: [48280 48299]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 48435
                          stdin_parts: [
                            <'[mysqld]\n'>
                            <'innodb_large_prefix=1\n'>
                            <'innodb_file_format=barracuda\n'>
                            <'innodb_file_per_table=1\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/mysql/mariadb.conf.d/99-dietpi-4byte.cnf>}
                        )
                      ]
                    )
                    (C {<G_RUN_CMD>} {<systemctl>} {<restart>} {<mysql>})
                    (C {<.>} {</DietPi/dietpi/func/dietpi-globals>})
                    (C {<local>} 
                      {<Id.Lit_VarLike 'config_php='> (SQ </var/www/nextcloud/config/config.php>)}
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'datadir='> 
                        (DQ 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            command_list: 
                              (command.CommandList
                                children: [
                                  (command.Pipeline
                                    children: [
                                      (C {<grep>} {<-m1>} 
                                        {(SQ <'^[[:blank:]]*SOFTWARE_NEXTCLOUD_DATADIR='>)} {</DietPi/dietpi.txt>}
                                      )
                                      (C {<sed>} {(SQ <'s/^.*=//'>)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                          )
                        )
                      }
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$datadir'))} 
                          {<Id.Lit_RBracket ']'>}
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:datadir)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </nextcloud_data>)
                                }
                              spids: [48508]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$datadir'))})
                    (command.Simple
                      words: [{<Install_Apply_Permissions>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<-d>} 
                                  {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                                    </mysql/nextcloud>
                                  } {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                              {(SQ <'Nextcloud database found, will NOT overwrite.'>)}
                            )
                          ]
                          spids: [48532 48546]
                        )
                      ]
                      else_action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-f>} 
                                      {(DQ ($ Id.VSub_DollarName '$datadir')) 
                                        </dietpi-nextcloud-database-backup.sql>
                                      } {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (C {<G_DIETPI-NOTIFY>} {<2>} 
                                  {(SQ <'Nextcloud database backup found, starting recovery...'>)}
                                )
                                (C {<local>} 
                                  {<Id.Lit_VarLike 'dbuser='> 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (command.Pipeline
                                              children: [
                                                (C {<grep>} {<-m1>} {(DQ <"^[[:blank:]]*'dbuser'">)} 
                                                  {($ Id.VSub_DollarName '$config_php')}
                                                )
                                                (C {<awk>} {(SQ <'{print $3}'>)})
                                                (C {<sed>} {(DQ <"s/[',]//g">)})
                                              ]
                                              negated: F
                                            )
                                          ]
                                        )
                                    )
                                  }
                                )
                                (C {<local>} 
                                  {<Id.Lit_VarLike 'dbpass='> 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (command.Pipeline
                                              children: [
                                                (C {<grep>} {<-m1>} {(DQ <"^[[:blank:]]*'dbpassword'">)} 
                                                  {($ Id.VSub_DollarName '$config_php')}
                                                )
                                                (C {<awk>} {(SQ <'{print $3}'>)})
                                                (C {<sed>} {(DQ <"s/[',]//g">)})
                                              ]
                                              negated: F
                                            )
                                          ]
                                        )
                                    )
                                  }
                                )
                                (C {</DietPi/dietpi/func/create_mysql_db>} {<nextcloud>} 
                                  {(DQ ($ Id.VSub_DollarName '$dbuser'))} {(DQ ($ Id.VSub_DollarName '$dbpass'))}
                                )
                                (command.Simple
                                  words: [{<mysql>} {<-uroot>} {<nextcloud>}]
                                  redirects: [
                                    (redir.Redir
                                      op: <Id.Redir_Less '<'>
                                      fd: -1
                                      arg_word: 
                                        {(DQ ($ Id.VSub_DollarName '$datadir')) 
                                          </dietpi-nextcloud-database-backup.sql>
                                        }
                                    )
                                  ]
                                )
                              ]
                              spids: [48564 48578]
                            )
                          ]
                          else_action: [
                            (C {<local>} 
                              {<Id.Lit_VarLike 'username='> 
                                (DQ 
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    command_list: 
                                      (command.CommandList
                                        children: [
                                          (command.Pipeline
                                            children: [
                                              (C {<grep>} {<-m1>} 
                                                {
                                                  (SQ 
                                                    <
'^[[:blank:]]*SOFTWARE_OWNCLOUD_NEXTCLOUD_USERNAME='
                                                    >
                                                  )
                                                } {</DietPi/dietpi.txt>}
                                              )
                                              (C {<sed>} {(SQ <'s/^.*=//'>)})
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                  )
                                )
                              }
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<Id.Lit_LBracket '['>} {<-n>} 
                                  {(DQ ($ Id.VSub_DollarName '$username'))} {<Id.Lit_RBracket ']'>}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:username)
                                      op: assign_op.Equal
                                      rhs: {(SQ <admin>)}
                                      spids: [48725]
                                    )
                                  ]
                                )
                              ]
                            )
                            (C {<mysql>} {<-e>} 
                              {
                                (DQ 
                                  <
"grant all privileges on *.* to 'tmp_root'@'localhost' identified by '"
                                  > ($ Id.VSub_DollarName '$GLOBAL_PW') <"' with grant option">
                                )
                              }
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (command.Simple
                                  words: [
                                    {<grep>}
                                    {<-q>}
                                    {(DQ <"'installed' => true,">)}
                                    {($ Id.VSub_DollarName '$config_php')}
                                  ]
                                  redirects: [
                                    (redir.Redir
                                      op: <Id.Redir_Great '2>'>
                                      fd: 2
                                      arg_word: {</dev/null>}
                                    )
                                  ]
                                )
                                (C {<ncc>} {<maintenance> <Id.Lit_Other ':'> <install>} 
                                  {<--no-interaction>} {<--database>} {(DQ <mysql>)} {<--database-name>} {(DQ <nextcloud>)} {<--database-user>} {(DQ <tmp_root>)} 
                                  {<--database-pass>} {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))} {<--admin-user>} {(DQ ($ Id.VSub_DollarName '$username'))} 
                                  {<--admin-pass>} {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))} {<--data-dir>} {(DQ ($ Id.VSub_DollarName '$datadir'))}
                                )
                              ]
                            )
                            (C {<mysql>} {<-e>} {(DQ <"drop user 'tmp_root'@'localhost'">)})
                          ]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(DQ <"^[[:blank:]]*'mysql.utf8mb4'">)} 
                          {($ Id.VSub_DollarName '$config_php')}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ <"/^[[:blank:]]*'dbpassword'/a "> <Id.Lit_Other '\\'> <' '> 
                              <Id.Lit_Other '\\'> <" 'mysql.utf8mb4' => true,">
                            )
                          } {($ Id.VSub_DollarName '$config_php')}
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Unary
                                      op_id: Id.Arith_Bang
                                      child: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                command_list: 
                                                  (command.CommandList
                                                    children: [
                                                      (command.Pipeline
                                                        children: [
                                                          (C {<cat>} 
                                                            {($ Id.VSub_DollarName '$config_php')}
                                                          )
                                                          (C {<grep>} {<-ci>} {<-m1>} {(DQ <"1 => '*'">)})
                                                        ]
                                                        negated: F
                                                      )
                                                    ]
                                                  )
                                              )
                                            }
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<sed>} {<-i>} {(DQ <"/0 => 'localhost'/a     1 => '*',">)} 
                              {($ Id.VSub_DollarName '$config_php')}
                            )
                          ]
                          spids: [48867 48895]
                        )
                      ]
                    )
                    (C {<sed>} {<-i>} {(DQ <"s|'http://localhost'|'http://localhost/nextcloud'|g">)} 
                      {($ Id.VSub_DollarName '$config_php')}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 83>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<grep>} {<-q>} {(DQ <"^[[:blank:]]*'htaccess.RewriteBase'">)} 
                                  {($ Id.VSub_DollarName '$config_php')}
                                )
                                (C {<sed>} {<-i>} 
                                  {
                                    (DQ <"/^[[:blank:]]*'overwrite.cli.url'/a "> <Id.Lit_Other '\\'> 
                                      <' '> <Id.Lit_Other '\\'> <" 'htaccess.RewriteBase' => '/nextcloud',">
                                    )
                                  } {($ Id.VSub_DollarName '$config_php')}
                                )
                              ]
                            )
                            (C {<ncc>} 
                              {<maintenance> <Id.Lit_Other ':'> <update> <Id.Lit_Other ':'> <htaccess>}
                            )
                          ]
                          spids: [48935 48954]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(DQ <"^[[:blank:]]*'memcache.local'">)} 
                          {($ Id.VSub_DollarName '$config_php')}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ <"/^[[:blank:]]*'version'/a "> <Id.Lit_Other '\\'> <' '> 
                              <Id.Lit_Other '\\'> <" 'memcache.local' => '"> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                              <Id.Lit_Other '\\'> <OC> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <Id.Lit_Other '\\'> <Memcache> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\\\'>
                              ) <Id.Lit_Other '\\'> <"APCu',">
                            )
                          } {($ Id.VSub_DollarName '$config_php')}
                        )
                      ]
                    )
                    (C {<local>} {<Id.Lit_VarLike 'redis_conf='> (DQ <'/etc/redis/redis*.conf'>)})
                    (command.AndOr
                      ops: [Id.Op_DPipe Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(DQ <'^[[:blank:]]*unixsocket /'>)} 
                          {($ Id.VSub_DollarName '$redis_conf')}
                        )
                        (C {<grep>} {<-q>} {(SQ <'^[[:blank:]]*#unixsocket /'>)} 
                          {($ Id.VSub_DollarName '$redis_conf')}
                        )
                        (C {<sed>} {<-i>} {(SQ <'s|^[[:blank:]]*#unixsocket /|unixsocket /|'>)} 
                          {($ Id.VSub_DollarName '$redis_conf')}
                        )
                        (command.Simple
                          words: [{<echo>} {(SQ <'unixsocket /var/run/redis/redis.sock'>)}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_DGreat '>>'>
                              fd: -1
                              arg_word: {($ Id.VSub_DollarName '$redis_conf')}
                            )
                          ]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(DQ <'^[[:blank:]]*#?unixsocketperm '>)} 
                          {($ Id.VSub_DollarName '$redis_conf')}
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ <'/^[[:blank:]]*#?unixsocketperm /c'> <Id.Lit_Other '\\'> 
                              <'unixsocketperm 770'>
                            )
                          } {($ Id.VSub_DollarName '$redis_conf')}
                        )
                        (command.Simple
                          words: [{<echo>} {(SQ <'unixsocketperm 770'>)}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_DGreat '>>'>
                              fd: -1
                              arg_word: {($ Id.VSub_DollarName '$redis_conf')}
                            )
                          ]
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'redis_sock='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {<grep>} {(DQ <'^[[:blank:]]*unixsocket /'>)} 
                                      {($ Id.VSub_DollarName '$redis_conf')}
                                    )
                                    (C {<sed>} {(DQ <'s/^[[:blank:]]*unixsocket //'>)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      }
                    )
                    (C {<usermod>} {<-a>} {<-G>} {<redis>} {<www-data>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Unary
                                      op_id: Id.Arith_Bang
                                      child: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                command_list: 
                                                  (command.CommandList
                                                    children: [
                                                      (command.Pipeline
                                                        children: [
                                                          (C {<cat>} 
                                                            {($ Id.VSub_DollarName '$config_php')}
                                                          )
                                                          (C {<grep>} {<-ci>} {<-m1>} 
                                                            {(DQ <"'memcache.locking'">)}
                                                          )
                                                        ]
                                                        negated: F
                                                      )
                                                    ]
                                                  )
                                              )
                                            }
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<sed>} {<-i>} 
                              {
                                (DQ <Id.Lit_Other '\\'> <"#'memcache.local'#a "> <Id.Lit_Other '\\'> 
                                  <' '> <Id.Lit_Other '\\'> <" 'filelocking.enabled' => true,"> <Id.Lit_Other '\\'> <n> 
                                  <"  'memcache.locking' => '"> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <Id.Lit_Other '\\'> <OC> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\\\'>
                                  ) <Id.Lit_Other '\\'> <Memcache> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                                  <Id.Lit_Other '\\'> <"Redis',"> <Id.Lit_Other '\\'> <n> <"  'redis' => array("> <Id.Lit_Other '\\'> <n> <"    'host' => '"> 
                                  ($ Id.VSub_DollarName '$redis_sock') <"',"> <Id.Lit_Other '\\'> <n> <"    'port' => 0,"> <Id.Lit_Other '\\'> <n> <'    ),'>
                                )
                              } {($ Id.VSub_DollarName '$config_php')}
                            )
                          ]
                          spids: [49181 49209]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (command.Pipeline
                          children: [
                            (command.Simple
                              words: [{<crontab>} {<-u>} {<www-data>} {<-l>}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_Great '2>'>
                                  fd: 2
                                  arg_word: {</dev/null>}
                                )
                              ]
                            )
                            (C {<grep>} {<-q>} {(SQ </var/www/nextcloud/cron.php>)})
                          ]
                          negated: F
                        )
                        (command.Pipeline
                          children: [
                            (command.Subshell
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          words: [{<crontab>} {<-u>} {<www-data>} {<-l>}]
                                          redirects: [
                                            (redir.Redir
                                              op: <Id.Redir_Great '2>'>
                                              fd: 2
                                              arg_word: {</dev/null>}
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (C {<echo>} {(DQ <'*/15 * * * * php /var/www/nextcloud/cron.php'>)})
                                  ]
                                )
                            )
                            (C {<crontab>} {<-u>} {<www-data>} {<->})
                          ]
                          negated: F
                        )
                      ]
                    )
                    (C {<ncc>} {<background> <Id.Lit_Other ':'> <cron>})
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(DQ <"^[[:blank:]]*'maintenance' => true,">)} 
                          {($ Id.VSub_DollarName '$config_php')}
                        )
                        (C {<ncc>} {<maintenance> <Id.Lit_Other ':'> <mode>} {<--on>})
                      ]
                    )
                  ]
                  spids: [47579 47598]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<44>}
                  spids: [49368]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<rm>} {</etc/init.d/transmission-daemon>})
                    (C {<rm>} {</etc/systemd/system/transmission-daemon.service>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 49437
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=Barebones transmission-daemon service\n'>
                            <'DefaultDependencies=no\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=oneshot\n'>
                            <'RemainAfterExit=yes\n'>
                            <
'ExecStart=/usr/bin/transmission-daemon --config-dir /var/lib/transmission-daemon/info\n'
                            >
                            <'ExecStop=/usr/bin/killall -w transmission-daemon\n'>
                            <'StandardOutput=tty\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/transmission-daemon.service>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 49845
                          stdin_parts: [
                            <'{\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <alt-speed-down>
                            <Id.Right_DoubleQuote '"'>
                            <': 50,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <alt-speed-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': false,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <alt-speed-time-begin>
                            <Id.Right_DoubleQuote '"'>
                            <': 540,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <alt-speed-time-day>
                            <Id.Right_DoubleQuote '"'>
                            <': 127,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <alt-speed-time-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': false,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <alt-speed-time-end>
                            <Id.Right_DoubleQuote '"'>
                            <': 1020,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <alt-speed-up>
                            <Id.Right_DoubleQuote '"'>
                            <': 50,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <bind-address-ipv4>
                            <Id.Right_DoubleQuote '"'>
                            <': '>
                            <Id.Right_DoubleQuote '"'>
                            <0.0.0.0>
                            <Id.Right_DoubleQuote '"'>
                            <',\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <bind-address-ipv6>
                            <Id.Right_DoubleQuote '"'>
                            <': '>
                            <Id.Right_DoubleQuote '"'>
                            <'::'>
                            <Id.Right_DoubleQuote '"'>
                            <',\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <blocklist-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': false,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <blocklist-url>
                            <Id.Right_DoubleQuote '"'>
                            <': '>
                            <Id.Right_DoubleQuote '"'>
                            <'http://www.example.com/blocklist'>
                            <Id.Right_DoubleQuote '"'>
                            <',\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <cache-size-mb>
                            <Id.Right_DoubleQuote '"'>
                            <': 48,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <dht-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': true,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <download-dir>
                            <Id.Right_DoubleQuote '"'>
                            <': '>
                            <Id.Right_DoubleQuote '"'>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            </downloads>
                            <Id.Right_DoubleQuote '"'>
                            <',\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <download-limit>
                            <Id.Right_DoubleQuote '"'>
                            <': 100,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <download-limit-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': false,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <download-queue-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': true,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <download-queue-size>
                            <Id.Right_DoubleQuote '"'>
                            <': 2,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <encryption>
                            <Id.Right_DoubleQuote '"'>
                            <': 2,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <idle-seeding-limit>
                            <Id.Right_DoubleQuote '"'>
                            <': 1,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <idle-seeding-limit-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': true,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <incomplete-dir>
                            <Id.Right_DoubleQuote '"'>
                            <': '>
                            <Id.Right_DoubleQuote '"'>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            </bt-inprogress>
                            <Id.Right_DoubleQuote '"'>
                            <',\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <incomplete-dir-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': false,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <lpd-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': false,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <max-peers-global>
                            <Id.Right_DoubleQuote '"'>
                            <': 8,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <message-level>
                            <Id.Right_DoubleQuote '"'>
                            <': 0,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <peer-congestion-algorithm>
                            <Id.Right_DoubleQuote '"'>
                            <': '>
                            <Id.Right_DoubleQuote '"'>
                            <Id.Right_DoubleQuote '"'>
                            <',\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <peer-limit-global>
                            <Id.Right_DoubleQuote '"'>
                            <': 8,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <peer-limit-per-torrent>
                            <Id.Right_DoubleQuote '"'>
                            <': 5,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <peer-port>
                            <Id.Right_DoubleQuote '"'>
                            <': 51413,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <peer-port-random-high>
                            <Id.Right_DoubleQuote '"'>
                            <': 65535,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <peer-port-random-low>
                            <Id.Right_DoubleQuote '"'>
                            <': 49152,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <peer-port-random-on-start>
                            <Id.Right_DoubleQuote '"'>
                            <': false,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <peer-socket-tos>
                            <Id.Right_DoubleQuote '"'>
                            <': '>
                            <Id.Right_DoubleQuote '"'>
                            <default>
                            <Id.Right_DoubleQuote '"'>
                            <',\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <pex-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': true,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <port-forwarding-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': true,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <preallocation>
                            <Id.Right_DoubleQuote '"'>
                            <': 1,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <prefetch-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': 1,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <queue-stalled-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': true,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <queue-stalled-minutes>
                            <Id.Right_DoubleQuote '"'>
                            <': 30,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <ratio-limit>
                            <Id.Right_DoubleQuote '"'>
                            <': 1.1,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <ratio-limit-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': true,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <rename-partial-files>
                            <Id.Right_DoubleQuote '"'>
                            <': true,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <rpc-authentication-required>
                            <Id.Right_DoubleQuote '"'>
                            <': true,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <rpc-bind-address>
                            <Id.Right_DoubleQuote '"'>
                            <': '>
                            <Id.Right_DoubleQuote '"'>
                            <0.0.0.0>
                            <Id.Right_DoubleQuote '"'>
                            <',\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <rpc-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': true,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <rpc-password>
                            <Id.Right_DoubleQuote '"'>
                            <': '>
                            <Id.Right_DoubleQuote '"'>
                            ($ Id.VSub_DollarName '$GLOBAL_PW')
                            <Id.Right_DoubleQuote '"'>
                            <',\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <rpc-port>
                            <Id.Right_DoubleQuote '"'>
                            <': 9091,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <rpc-url>
                            <Id.Right_DoubleQuote '"'>
                            <': '>
                            <Id.Right_DoubleQuote '"'>
                            </transmission/>
                            <Id.Right_DoubleQuote '"'>
                            <',\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <rpc-username>
                            <Id.Right_DoubleQuote '"'>
                            <': '>
                            <Id.Right_DoubleQuote '"'>
                            <root>
                            <Id.Right_DoubleQuote '"'>
                            <',\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <rpc-whitelist>
                            <Id.Right_DoubleQuote '"'>
                            <': '>
                            <Id.Right_DoubleQuote '"'>
                            <'192.*.*.*'>
                            <Id.Right_DoubleQuote '"'>
                            <',\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <rpc-whitelist-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': false,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <scrape-paused-torrents-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': true,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <script-torrent-done-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': false,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <script-torrent-done-filename>
                            <Id.Right_DoubleQuote '"'>
                            <': '>
                            <Id.Right_DoubleQuote '"'>
                            <Id.Right_DoubleQuote '"'>
                            <',\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <seed-queue-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': false,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <seed-queue-size>
                            <Id.Right_DoubleQuote '"'>
                            <': 10,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <speed-limit-down>
                            <Id.Right_DoubleQuote '"'>
                            <': 100,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <speed-limit-down-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': false,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <speed-limit-up>
                            <Id.Right_DoubleQuote '"'>
                            <': 100,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <speed-limit-up-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': false,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <start-added-torrents>
                            <Id.Right_DoubleQuote '"'>
                            <': true,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <trash-original-torrent-files>
                            <Id.Right_DoubleQuote '"'>
                            <': true,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <umask>
                            <Id.Right_DoubleQuote '"'>
                            <': 18,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <upload-limit>
                            <Id.Right_DoubleQuote '"'>
                            <': 100,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <upload-limit-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': false,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <upload-slots-per-torrent>
                            <Id.Right_DoubleQuote '"'>
                            <': 2,\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <utp-enabled>
                            <Id.Right_DoubleQuote '"'>
                            <': true\n'>
                            <'}\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/transmission-daemon/settings.json>}
                        )
                      ]
                    )
                    (C {<sed>} {<-i>} 
                      {(SQ <'/cache-size-mb/c\\    "cache-size-mb": '>) 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [(C {<Optimize_BitTorrent>} {<0>})]
                            )
                        ) (SQ <','>)
                      } {</etc/transmission-daemon/settings.json>}
                    )
                    (C {<sed>} {<-i>} 
                      {(SQ <'/download-queue-size/c\\    "download-queue-size": '>) 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [(C {<Optimize_BitTorrent>} {<1>})]
                            )
                        ) (SQ <','>)
                      } {</etc/transmission-daemon/settings.json>}
                    )
                    (C {<sed>} {<-i>} 
                      {(SQ <'/peer-limit-global/c\\    "peer-limit-global": '>) 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [(C {<Optimize_BitTorrent>} {<2>})]
                            )
                        ) (SQ <','>)
                      } {</etc/transmission-daemon/settings.json>}
                    )
                    (C {<sed>} {<-i>} 
                      {(SQ <'/max-peers-global/c\\    "max-peers-global": '>) 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [(C {<Optimize_BitTorrent>} {<2>})]
                            )
                        ) (SQ <','>)
                      } {</etc/transmission-daemon/settings.json>}
                    )
                    (C {<sed>} {<-i>} 
                      {(SQ <'/peer-limit-per-torrent/c\\    "peer-limit-per-torrent": '>) 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [(C {<Optimize_BitTorrent>} {<2>})]
                            )
                        ) (SQ <','>)
                      } {</etc/transmission-daemon/settings.json>}
                    )
                    (C {<sed>} {<-i>} 
                      {(SQ <'/upload-slots-per-torrent/c\\    "upload-slots-per-torrent": '>) 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [(C {<Optimize_BitTorrent>} {<3>})]
                            )
                        ) (SQ <','>)
                      } {</etc/transmission-daemon/settings.json>}
                    )
                  ]
                  spids: [49372 49391]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<54>}
                  spids: [49975]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {</DietPi/dietpi/func/create_mysql_db>} {<phpbb3>} {<phpbb3>} 
                      {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))}
                    )
                  ]
                  spids: [49979 49998]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<128>}
                  spids: [50026]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<useradd>} {<-r>} {<-M>} {<mpd>} {<-G>} {<audio>} {<-s>} {</usr/bin/nologin>})
                    (C {<mkdir>} {<-p>} {</var/lib/mpd>})
                    (C {<mkdir>} {<-p>} {</var/run/mpd>})
                    (C {<mkdir>} {<-p>} {</var/lib/mpd/music>})
                    (C {<mkdir>} {<-p>} {</var/lib/mpd/playlists>})
                    (C {<touch>} {</var/lib/mpd/state>})
                    (command.Simple
                      words: [{<rm>} {</var/lib/mpd/music/MNT>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<ln>} {<-sf>} {</mnt>} {</var/lib/mpd/music/MNT>})
                    (C {<chown>} {<-R>} {<mpd> <Id.Lit_Other ':'> <audio>} {</var/lib/mpd>})
                    (C {<mkdir>} {<-p>} {</var/log/mpd>})
                    (C {<touch>} {</var/log/mpd/mpd.log>})
                    (C {<chmod>} {<644>} {</var/log/mpd/mpd.log>})
                    (C {<chown>} {<-R>} {<mpd> <Id.Lit_Other ':'> <audio>} {</var/log/mpd>})
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </.mpd_cache>}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 50217
                          stdin_parts: [
                            <
'#Even though we declare the conf location in our service, MPD will fail to start if this file does not exist.\n'
                            >
                            <'## The configuration file location for mpd:\n'>
                            <'MPDCONF=/etc/mpd.conf\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/default/mpd>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 50251
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=Music Player Daemon\n'>
                            <'After=network.target sound.target\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'User=root\n'>
                            <'EnvironmentFile=/etc/default/mpd\n'>
                            <'ExecStartPre=/bin/mkdir -p /var/run/mpd\n'>
                            <'ExecStartPre=/bin/chown -R mpd:audio /var/run/mpd\n'>
                            <'ExecStart='>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: (command.CommandList children:[(C {<which>} {<mpd>})])
                            )
                            <' --no-daemon /etc/mpd.conf\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                            <'\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</lib/systemd/system/mpd.service>}
                        )
                      ]
                    )
                    (C {<cp>} {</DietPi/dietpi/conf/mpd.conf>} {</etc/mpd.conf>})
                    (C {<chown>} {<mpd> <Id.Lit_Other ':'> <audio>} {</etc/mpd.conf>})
                    (C {<chmod>} {<0666>} {</etc/mpd.conf>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<cat>} {</DietPi/dietpi.txt>})
                                                      (C {<grep>} {<-ci>} {<-m1>} 
                                                        {(SQ <'^CONFIG_SOUNDCARD=justboom'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                                ]
                                              )
                                          )
                                        }
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<local>} 
                              {<Id.Lit_VarLike 'justboom_soundcard_desc='> (SQ <'JustBoom DietPi'>)}
                            )
                            (C {<sed>} {<-i>} 
                              {
                                (DQ <'/^name '> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                  ) </c> <Id.Lit_Other '\\'> <'name '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                  ($ Id.VSub_DollarName '$justboom_soundcard_desc') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                )
                              } {</etc/mpd.conf>}
                            )
                            (C {<sed>} {<-i>} 
                              {
                                (DQ <'/^zeroconf_name '> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                  ) </c> <Id.Lit_Other '\\'> <'zeroconf_name '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                  ($ Id.VSub_DollarName '$justboom_soundcard_desc') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                )
                              } {</etc/mpd.conf>}
                            )
                            (C {<local>} {<Id.Lit_VarLike 'target_bitdepth='> <32>})
                            (C {<local>} {<Id.Lit_VarLike 'target_rate='> <192000>})
                            (C {<sed>} {<-i>} 
                              {(SQ <'/^format "/c\\format "'>) ($ Id.VSub_DollarName '$target_rate') 
                                (SQ <':'>) ($ Id.VSub_DollarName '$target_bitdepth') (SQ <':2"'>)
                              } {</etc/mpd.conf>}
                            )
                            (C {<sed>} {<-i>} 
                              {(SQ <'/audio_output_format "/c\\audio_output_format "'>) 
                                ($ Id.VSub_DollarName '$target_rate') (SQ <':'>) ($ Id.VSub_DollarName '$target_bitdepth') (SQ <':2"'>)
                              } {</etc/mpd.conf>}
                            )
                            (C {<sed>} {<-i>} 
                              {
                                (SQ 
                                  <
'/samplerate_converter "/c\\samplerate_converter "soxr very high"'
                                  >
                                )
                              } {</etc/mpd.conf>}
                            )
                          ]
                          spids: [50287 50313]
                        )
                      ]
                    )
                    (C {<Download_Test_Media>})
                  ]
                  spids: [50030 50049]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<94>}
                  spids: [50464]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<sed>} {<-i>} {(DQ </root/c> <Id.Lit_Other '\\'> <'#root'>)} {</etc/ftpusers>})
                    (C {<cp>} {</DietPi/dietpi/conf/proftpd.conf>} {</etc/proftpd/proftpd.conf>})
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/DefaultRoot /c'> <Id.Lit_Other '\\'> <'DefaultRoot '> 
                          ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                        )
                      } {</etc/proftpd/proftpd.conf>}
                    )
                  ]
                  spids: [50468 50487]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<96>}
                  spids: [50538]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Pipeline
                      children: [
                        (C {<echo>} {<-e>} {(DQ <dietpi> <Id.Lit_Other '\\'> <ndietpi>)})
                        (C {<smbpasswd>} {<-s>} {<-a>} {<root>})
                      ]
                      negated: F
                    )
                    (C {<cp>} {</DietPi/dietpi/conf/smb.conf>} {</etc/samba/smb.conf>})
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/path = /c'> <Id.Lit_Other '\\'> <'path = '> 
                          ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                        )
                      } {</etc/samba/smb.conf>}
                    )
                  ]
                  spids: [50542 50561]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<95>}
                  spids: [50621]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<sed>} {<-i>} {(SQ <'/root/c\\#root'>)} {</etc/ftpusers>})
                    (C {<cp>} {</DietPi/dietpi/conf/vsftpd.conf>} {</etc/vsftpd.conf>})
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/^local_root=/c'> <Id.Lit_Other '\\'> <'local_root='> 
                          ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                        )
                      } {</etc/vsftpd.conf>}
                    )
                  ]
                  spids: [50625 50644]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<109>}
                  spids: [50694]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 50738
                          stdin_parts: [
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <' *(rw,async,no_root_squash,fsid=0,crossmnt,no_subtree_check)\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/exports>}
                        )
                      ]
                    )
                  ]
                  spids: [50698 50717]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<32>}
                  spids: [50749]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 50806
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=YMPD\n'>
                            <'After=mpd.service\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'User=root\n'>
                            <'ExecStart=/usr/bin/ympd --user root --webport 1337\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/ympd.service>}
                        )
                      ]
                    )
                  ]
                  spids: [50753 50772]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<121>}
                  spids: [50817]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </roon>})
                    (C {<cp>} {</DietPi/dietpi/conf/roonbridge.service>} 
                      {</etc/systemd/system/roonbridge.service>}
                    )
                    (command.Simple
                      words: [
                        {<rm>}
                        {<-R>}
                        {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </roon/RoonBridge/Logs>}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [
                        {<rm>}
                        {<-R>}
                        {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </roon/RAATServer/Logs>}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </roon/RoonBridge>}
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </roon/RAATServer>}
                    )
                    (C {<ln>} {<-sf>} {</var/log>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </roon/RoonBridge/Logs>}
                    )
                    (C {<ln>} {<-sf>} {</var/log>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </roon/RAATServer/Logs>}
                    )
                  ]
                  spids: [50821 50840]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<122>}
                  spids: [50958]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </node-red>}
                    )
                    (C {<adduser>} {<nodered>} {<--system>} {<--group>} {<--no-create-home>} 
                      {<--shell> <Id.Lit_Equals '='> </bin/nologin>}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 51039
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=Node-Red\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'User=nodered\n'>
                            <'ExecStart=/usr/local/bin/node-red -u '>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/node-red\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/node-red.service>}
                        )
                      ]
                    )
                    (C {<ln>} {<-sf>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </node-red>} 
                      {(DQ ($ Id.VSub_DollarName '$HOME')) </.node-red>}
                    )
                  ]
                  spids: [50962 50981]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<125>}
                  spids: [51070]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/JAVA_HOME=/c'> <Id.Lit_Other '\\'> <'JAVA_HOME='> 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            command_list: 
                              (command.CommandList
                                children: [
                                  (C {<find>} 
                                    {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\/'>) 
                                      <usr> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\/'>) <lib> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\/'>
                                      ) <jvm> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\/'>)
                                    } {<-name>} {<java-8-openjdk> <Id.Lit_Star '*'>}
                                  )
                                ]
                              )
                          )
                        )
                      } {</etc/default/tomcat8>}
                    )
                  ]
                  spids: [51074 51093]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<119>}
                  spids: [51139]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/cava>})
                    (C {<cp>} {</DietPi/dietpi/conf/cava.conf>} 
                      {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/cava/config>}
                    )
                    (C {<sed>} {<-i>} {(SQ <'/audio_buffer_size /c\\audio_buffer_size "384"'>)} 
                      {</etc/mpd.conf>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Unary
                                      op_id: Id.Arith_Bang
                                      child: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                command_list: 
                                                  (command.CommandList
                                                    children: [
                                                      (command.Pipeline
                                                        children: [
                                                          (C {<cat>} {</etc/mpd.conf>})
                                                          (C {<grep>} {<-ci>} {<-m1>} 
                                                            {(SQ </tmp/mpd.fifo>)}
                                                          )
                                                        ]
                                                        negated: F
                                                      )
                                                    ]
                                                  )
                                              )
                                            }
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{<cat>}]
                              redirects: [
                                (redir.HereDoc
                                  op: <Id.Redir_DLess '<<'>
                                  fd: -1
                                  here_begin: {<_EOF_>}
                                  here_end_span_id: 51289
                                  stdin_parts: [
                                    <'\n'>
                                    <'#Cava fifo stream\n'>
                                    <'audio_output {\n'>
                                    <'\n'>
                                    <'    type '>
                                    <Id.Right_DoubleQuote '"'>
                                    <fifo>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'    enabled '>
                                    <Id.Right_DoubleQuote '"'>
                                    <yes>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'    name '>
                                    <Id.Right_DoubleQuote '"'>
                                    <CAVA>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'    path '>
                                    <Id.Right_DoubleQuote '"'>
                                    </tmp/mpd.fifo>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'    format '>
                                    <Id.Right_DoubleQuote '"'>
                                    <'44100:16:2'>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'\n'>
                                    <'}\n'>
                                  ]
                                )
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {</etc/mpd.conf>}
                                )
                              ]
                            )
                          ]
                          spids: [51215 51243]
                        )
                      ]
                    )
                  ]
                  spids: [51143 51162]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<118>}
                  spids: [51304]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<sed>} {<-i>} {(DQ <'/User=/c'> <Id.Lit_Other '\\'> <'User=root'>)} 
                      {</lib/systemd/system/mopidy.service>}
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </mopidy/cache>}
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </mopidy/data>}
                    )
                    (C {<mkdir>} {<-p>} 
                      {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) </.config/mopidy>}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 51440
                          stdin_parts: [
                            <'[core]\n'>
                            <'cache_dir = '>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/mopidy/cache\n'>
                            <'config_dir = /etc/mopidy\n'>
                            <'data_dir = '>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/mopidy/data\n'>
                            <'\n'>
                            <'[logging]\n'>
                            <'config_file = /etc/mopidy/logging.conf\n'>
                            <'debug_file = /var/log/mopidy.log\n'>
                            <'\n'>
                            <'[local]\n'>
                            <'library = images\n'>
                            <'media_dir = /mnt\n'>
                            <'enabled = true\n'>
                            <'scan_timeout = 1000\n'>
                            <'scan_flush_threshold = 100\n'>
                            <'scan_follow_symlinks = false\n'>
                            <'excluded_file_extensions =\n'>
                            <'  .directory\n'>
                            <'  .html\n'>
                            <'  .jpeg\n'>
                            <'  .jpg\n'>
                            <'  .log\n'>
                            <'  .nfo\n'>
                            <'  .png\n'>
                            <'  .txt\n'>
                            <'\n'>
                            <'[file]\n'>
                            <'enabled = true\n'>
                            <'media_dirs = /mnt\n'>
                            <'\n'>
                            <'[m3u]\n'>
                            <'playlists_dir = /mnt\n'>
                            <'\n'>
                            <'[http]\n'>
                            <'enabled = true\n'>
                            <'hostname = ::\n'>
                            <'port = 6680\n'>
                            <'static_dir =\n'>
                            <'zeroconf = Mopidy HTTP server on '>
                            ($ Id.VSub_DollarName '$hostname')
                            <'\n'>
                            <'\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: 
                            {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) 
                              </.config/mopidy/mopidy.conf>
                            }
                        )
                      ]
                    )
                    (C {<cp>} 
                      {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) 
                        </.config/mopidy/mopidy.conf>
                      } {</etc/mopidy/mopidy.conf>}
                    )
                    (C {<Download_Test_Media>})
                  ]
                  spids: [51308 51327]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<31>}
                  spids: [51468]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<userdel>} {<-r>} {<kodi>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<sed>} {<-i>} {(SQ <'/USER=/c\\USER=root'>)} {</etc/default/kodi>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<cp>} {</DietPi/dietpi/conf/kodi_udev>} {</etc/udev/rules.d/99-input.rules>})
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</etc/udev/rules.d/99-input.rules>})
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$HOME')) </Desktop>})
                    (command.Simple
                      words: [{<rm>} {</usr/share/applications/kodi.desktop>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<wget>} 
                      {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/kodi.desktop>} {<-O>} {</usr/share/applications/kodi.desktop>}
                    )
                    (C {<ln>} {<-sf>} {</usr/share/applications/kodi.desktop>} 
                      {(DQ ($ Id.VSub_DollarName '$HOME')) </Desktop/kodi.desktop>}
                    )
                  ]
                  spids: [51472 51491]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<39>}
                  spids: [51610]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<sed>} {<-i>} {(SQ <'/USER=m/c\\USER=root'>)} {</etc/init.d/minidlna>})
                    (command.Simple
                      words: [
                        {<sed>}
                        {<-i>}
                        {(SQ <'/User=m/c\\User=root'>)}
                        {</lib/systemd/system/minidlna.service>}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [
                        {<sed>}
                        {<-i>}
                        {(SQ <'/Group=m/c\\Group=root'>)}
                        {</lib/systemd/system/minidlna.service>}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<cp>} {</DietPi/dietpi/conf/minidlna.conf>} {</etc/minidlna.conf>})
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </.MiniDLNA_Cache>}
                    )
                  ]
                  spids: [51614 51633]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<67>}
                  spids: [51727]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 51786
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=noip2\n'>
                            <'After=network.target network-online.target rsyslog.service\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=forking\n'>
                            <'RemainAfterExit=yes\n'>
                            <'\n'>
                            <'ExecStart=/usr/local/bin/noip2\n'>
                            <'ExecStop=/usr/bin/killall -w noip2\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/noip2.service>}
                        )
                      ]
                    )
                  ]
                  spids: [51731 51750]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<108>}
                  spids: [51797]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<chmod>} {<-R>} {<Id.Lit_Other '+'> <x>} {</etc/amiberry>})
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </amiberry>}
                    )
                    (C {<cp>} {<-R>} {</etc/amiberry/conf>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </amiberry/>}
                    )
                    (command.Simple
                      words: [{<rm>} {<-R>} {</etc/amiberry/conf>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<ln>} {<-sf>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </amiberry/conf>} {</etc/amiberry/conf>}
                    )
                    (command.Simple
                      words: [{<rm>} {<-R>} {</etc/amiberry/disks>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </amiberry/disks>}
                    )
                    (C {<ln>} {<-sf>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </amiberry/disks>} {</etc/amiberry/disks>}
                    )
                    (command.Simple
                      words: [{<rm>} {<-R>} {</etc/amiberry/floppy_images>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </amiberry/floppy_images>}
                    )
                    (C {<ln>} {<-sf>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </amiberry/floppy_images>} {</etc/amiberry/floppy_images>}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 51992
                          stdin_parts: [<'Put your Amiga floopy images (*.adf) in this directory.\n'>]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: 
                            {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                              </amiberry/floppy_images/dir.txt>
                            }
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<rm>} {<-R>} {</etc/amiberry/hdf>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </amiberry/hdf>}
                    )
                    (C {<ln>} {<-sf>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </amiberry/hdf>} {</etc/amiberry/hdf>}
                    )
                    (command.Simple
                      words: [{<rm>} {<-R>} {</etc/amiberry/kickstarts>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </amiberry/kickstarts>}
                    )
                    (C {<ln>} {<-sf>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </amiberry/kickstarts>} {</etc/amiberry/kickstarts>}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 52086
                          stdin_parts: [
                            <'Put your Kickstart Roms (*.rom) in this directory.\n'>
                            <
'They should be named accordingly depending on version: kick12.rom , kick13.rom , kick20.rom, kick31.rom\n'
                            >
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: 
                            {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                              </amiberry/kickstarts/dir.txt>
                            }
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<rm>} {<-R>} {</etc/amiberry/savestates>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </amiberry/savestates>}
                    )
                    (C {<ln>} {<-sf>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </amiberry/savestates>} {</etc/amiberry/savestates>}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 52141
                          stdin_parts: [<'Saved states will be stored here.\n'>]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: 
                            {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                              </amiberry/savestates/dir.txt>
                            }
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<rm>} {<-R>} {</etc/amiberry/screenshots>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </amiberry/screenshots>}
                    )
                    (C {<ln>} {<-sf>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </amiberry/screenshots>} {</etc/amiberry/screenshots>}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 52196
                          stdin_parts: [<'Screenshots will be stored here.\n'>]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: 
                            {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                              </amiberry/screenshots/dir.txt>
                            }
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'fp_userdata_actual='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [
                                (C {<readlink>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA'))})
                              ]
                            )
                        )
                      }
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<-n>} 
                                  {(DQ ($ Id.VSub_DollarName '$fp_userdata_actual'))} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<sed>} {<-i>} 
                              {
                                (DQ <'s:'> ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') <':'> 
                                  ($ Id.VSub_DollarName '$fp_userdata_actual') <':g'>
                                )
                              } {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </amiberry/conf/adfdir.conf>}
                            )
                            (C {<sed>} {<-i>} 
                              {
                                (DQ <'s:'> ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') <':'> 
                                  ($ Id.VSub_DollarName '$fp_userdata_actual') <':g'>
                                )
                              } {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </amiberry/conf/autostart.uae>}
                            )
                          ]
                          spids: [52223 52236]
                        )
                      ]
                    )
                    (C {<local>} {<Id.Lit_VarLike 'amiberry_filename='> (SQ <amiberry-rpi>)})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:amiberry_filename)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <3>)}
                                  spids: [52316]
                                )
                              ]
                            )
                          ]
                          spids: [52298 52312]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:amiberry_filename)
                                  op: assign_op.PlusEqual
                                  rhs: {(SQ <2>)}
                                  spids: [52345]
                                )
                              ]
                            )
                          ]
                          spids: [52327 52341]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:amiberry_filename)
                              op: assign_op.PlusEqual
                              rhs: {(SQ <1>)}
                              spids: [52360]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<ln>} {<-sf>} {</etc/amiberry/> (DQ ($ Id.VSub_DollarName '$amiberry_filename'))} 
                      {</etc/amiberry/amiberry>}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:amiberry_filename)
                          op: assign_op.PlusEqual
                          rhs: {(SQ <-sdl2>)}
                          spids: [52388]
                        )
                      ]
                    )
                    (C {<ln>} {<-sf>} {</etc/amiberry/> (DQ ($ Id.VSub_DollarName '$amiberry_filename'))} 
                      {</etc/amiberry/amiberry-sdl2>}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 52434
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=AmiBerry Amiga Emulator\n'>
                            <'DefaultDependencies=no\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'User=root\n'>
                            <'WorkingDirectory=/etc/amiberry\n'>
                            <'ExecStart=/bin/bash -c ./amiberry_run.sh\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=local-fs.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/amiberry.service>}
                        )
                      ]
                    )
                    (C {<systemctl>} {<daemon-reload>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 52465
                          stdin_parts: [
                            <'#!/bin/bash\n'>
                            <'if (( '>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <"(ps aux | grep -ci -m1 '[X]11') )); then\n">
                            <'\n'>
                            <'./amiberry -f conf/autostart.uae\n'>
                            <'\n'>
                            <'else\n'>
                            <'\n'>
                            <'xinit ./amiberry -f conf/autostart.uae\n'>
                            <'\n'>
                            <'fi\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/amiberry/amiberry_run.sh>}
                        )
                      ]
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</etc/amiberry/amiberry_run.sh>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 52503
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=AmiBerry Amiga Emulator\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'User=root\n'>
                            <'WorkingDirectory=/etc/amiberry\n'>
                            <'ExecStart=/bin/bash -c ./amiberry_run_sdl2.sh\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=local-fs.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/amiberry-sdl2.service>}
                        )
                      ]
                    )
                    (C {<systemctl>} {<daemon-reload>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 52533
                          stdin_parts: [
                            <'#!/bin/bash\n'>
                            <'xinit ./amiberry-sdl2 -f conf/autostart.uae\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/amiberry/amiberry_run_sdl2.sh>}
                        )
                      ]
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</etc/amiberry/amiberry_run_sdl2.sh>})
                  ]
                  spids: [51801 51820]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<112>}
                  spids: [52553]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.d1x-rebirth>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.d2x-rebirth>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<ln>} {<-sf>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                        </dxx-rebirth/descent_1_profiles>
                      } {(DQ ($ Id.VSub_DollarName '$HOME')) </.d1x-rebirth>}
                    )
                    (C {<ln>} {<-sf>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                        </dxx-rebirth/descent_2_profiles>
                      } {(DQ ($ Id.VSub_DollarName '$HOME')) </.d2x-rebirth>}
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<-R>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </dxx-rebirth/> 
                        <Id.Lit_Star '*'>
                      }
                    )
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$HOME')) </Desktop>})
                    (C {<mkdir>} {<-p>} {</usr/share/applications>})
                    (C {<ln>} {<-s>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                        </dxx-rebirth/dxx-rebirth.desktop>
                      } {(DQ ($ Id.VSub_DollarName '$HOME')) </Desktop/dxx-rebirth.desktop>}
                    )
                    (C {<ln>} {<-s>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                        </dxx-rebirth/dxx-rebirth.desktop>
                      } {</usr/share/applications/dxx-rebirth.desktop>}
                    )
                  ]
                  spids: [52557 52576]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<51>}
                  spids: [52729]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<cp>} {</DietPi/dietpi/conf/opentyrian_run>} {</usr/local/games/opentyrian/run>})
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</usr/local/games/opentyrian/run>})
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$HOME')) </Desktop>})
                    (command.Simple
                      words: [{<rm>} {</usr/share/applications/opentyrian.desktop>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<wget>} 
                      {<http> <Id.Lit_Other ':'> <//dietpi.com/downloads/conf/desktop/pcmanfm.conf>} {<-O>} {</usr/share/applications/opentyrian.desktop>}
                    )
                    (C {<ln>} {<-s>} {</usr/share/applications/opentyrian.desktop>} 
                      {(DQ ($ Id.VSub_DollarName '$HOME')) </Desktop/opentyrian.desktop>}
                    )
                  ]
                  spids: [52733 52752]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<59>}
                  spids: [52835]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</etc/raspimjpeg>})
                    (C {<ln>} {<-s>} {</etc/raspimjpeg>} {</var/www/dietpicam/raspimjpeg>})
                    (C {<chgrp>} {<www-data>} {</etc/motion/motion.conf>})
                    (C {<chmod>} {<777>} {</etc/motion/motion.conf>})
                    (C {<usermod>} {<-a>} {<-G>} {<video>} {<www-data>})
                    (C {<cp>} {</DietPi/dietpi/conf/raspimjpeg.service>} 
                      {</var/lib/dietpi/dietpi-software/services/raspimjpeg.service>}
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'dietpicam_media_directory='> 
                        ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                      }
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$dietpicam_media_directory')) </dietpicam>}
                    )
                    (C {<rm>} {<-R>} {</var/www/dietpicam/media>})
                    (C {<ln>} {<-s>} 
                      {(DQ ($ Id.VSub_DollarName '$dietpicam_media_directory')) </dietpicam>} {</var/www/dietpicam/media>}
                    )
                    (C {</DietPi/dietpi/func/dietpi-set_hardware>} {<rpi-camera>} {<enable>})
                  ]
                  spids: [52839 52858]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<45>}
                  spids: [52991]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<cp>} {</DietPi/dietpi/conf/deluge.service>} 
                      {</var/lib/dietpi/dietpi-software/services/deluge.service>}
                    )
                    (C {<deluged>})
                    (C {<killall>} {<-w>} {<deluged>})
                    (C {<cp>} {</DietPi/dietpi/conf/deluge.conf>} 
                      {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/deluge/core.conf>}
                    )
                    (C {<cp>} {</DietPi/dietpi/conf/deluge_web.conf>} 
                      {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/deluge/web.conf>}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 53095
                          stdin_parts: [<'root:'> ($ Id.VSub_DollarName '$GLOBAL_PW') <':10\n'>]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/deluge/auth>}
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'deluge_cache_size='> 
                        (word_part.ArithSub
                          anode: 
                            (arith_expr.ArithWord
                              w: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    command_list: 
                                      (command.CommandList
                                        children: [
                                          (command.Pipeline
                                            children: [
                                              (C {<echo>} {<-e>} 
                                                {
                                                  (DQ <'scale=0; '> 
                                                    (command_sub
                                                      left_token: <Id.Left_DollarParen '$('>
                                                      command_list: 
                                                        (command.CommandList
                                                          children: [(C {<Optimize_BitTorrent>} {<0>})]
                                                        )
                                                    ) <' * 1024 / 16'>
                                                  )
                                                }
                                              )
                                              (C {<bc>} {<-l>})
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                  )
                                }
                            )
                        )
                      }
                    )
                    (C {<sed>} {<-i>} 
                      {(SQ <'/"cache_size": /c\\ "cache_size": '>) 
                        (DQ ($ Id.VSub_DollarName '$deluge_cache_size')) (SQ <','>)
                      } {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/deluge/core.conf>}
                    )
                    (C {<sed>} {<-i>} 
                      {(SQ <'/"max_active_limit": /c\\ "max_active_limit": '>) 
                        (DQ 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            command_list: 
                              (command.CommandList
                                children: [(C {<Optimize_BitTorrent>} {<1>})]
                              )
                          )
                        ) (SQ <','>)
                      } {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/deluge/core.conf>}
                    )
                    (C {<sed>} {<-i>} 
                      {(SQ <'/"max_active_downloading": /c\\ "max_active_downloading": '>) 
                        (DQ 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            command_list: 
                              (command.CommandList
                                children: [(C {<Optimize_BitTorrent>} {<1>})]
                              )
                          )
                        ) (SQ <','>)
                      } {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/deluge/core.conf>}
                    )
                    (C {<sed>} {<-i>} 
                      {(SQ <'/"max_connections_global": /c\\ "max_connections_global": '>) 
                        (DQ 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            command_list: 
                              (command.CommandList
                                children: [(C {<Optimize_BitTorrent>} {<2>})]
                              )
                          )
                        ) (SQ <','>)
                      } {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/deluge/core.conf>}
                    )
                    (C {<sed>} {<-i>} 
                      {(SQ <'/"max_upload_slots_global": /c\\ "max_upload_slots_global": '>) 
                        (DQ 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            command_list: 
                              (command.CommandList
                                children: [(C {<Optimize_BitTorrent>} {<3>})]
                              )
                          )
                        ) (SQ <','>)
                      } {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/deluge/core.conf>}
                    )
                  ]
                  spids: [52995 53014]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<106>}
                  spids: [53264]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {<-p>} {</etc/raspcontrol>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 53338
                          stdin_parts: [
                            <'{\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <user>
                            <Id.Right_DoubleQuote '"'>
                            <': '>
                            <Id.Right_DoubleQuote '"'>
                            <root>
                            <Id.Right_DoubleQuote '"'>
                            <',\n'>
                            <'    '>
                            <Id.Right_DoubleQuote '"'>
                            <password>
                            <Id.Right_DoubleQuote '"'>
                            <': '>
                            <Id.Right_DoubleQuote '"'>
                            ($ Id.VSub_DollarName '$GLOBAL_PW')
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'}\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/raspcontrol/database.aptmnt>}
                        )
                      ]
                    )
                    (C {<chown>} {<-R>} {<www-data> <Id.Lit_Other ':'> <www-data>} {</etc/raspcontrol>})
                    (C {<chmod>} {<-R>} {<750>} {</etc/raspcontrol>})
                  ]
                  spids: [53268 53287]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<93>}
                  spids: [53370]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<ln>} {<-sf>} {</var/www/html/admin>} {</var/www/pihole>})
                    (C {<ln>} {<-sf>} {</var/www/html/admin>} {</var/www/admin>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 53448
                          stdin_parts: [
                            <'<html>\n'>
                            <'Blocked by Pi-hole.\n'>
                            <'<script>window.close();</script>\n'>
                            <'</html>\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</var/www/index.html>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ )}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</var/log/pihole.log>}
                        )
                      ]
                    )
                    (C {<chown>} {<www-data> <Id.Lit_Other ':'> <www-data>} {</var/log/pihole.log>})
                    (C {<chmod>} {<775>} {</var/log/pihole.log>})
                    (C {<pihole>} {<-a>} {<-p>} {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))})
                    (C {<whiptail>} {<--title>} {(DQ <'PiHole: Web interface'>)} {<--msgbox>} 
                      {
                        (DQ <'DietPi has changed the PiHole web interface password to:'> 
                          <Id.Lit_Other '\\'> <'n- '> ($ Id.VSub_DollarName '$GLOBAL_PW') <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                          <'nPlease use this password when logging into the web interface:'> <Id.Lit_Other '\\'> <'n - http://ip/pihole'> <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                          <'nThis password can be changed, please see pihole binary for info:'> <Id.Lit_Other '\\'> <'n - pihole --help'>
                        )
                      } {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<16>} {<70>}
                    )
                  ]
                  spids: [53374 53393]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<34>}
                  spids: [53554]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 33>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 34>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<local>} 
                      {<Id.Lit_VarLike 'subsonic_memory_max='> 
                        (word_part.ArithSub
                          anode: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Slash
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$RAM_TOTAL')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 5>})
                            )
                        )
                      }
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$subsonic_memory_max')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 150>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:subsonic_memory_max)
                                  op: assign_op.Equal
                                  rhs: {<150>}
                                  spids: [53640]
                                )
                              ]
                            )
                          ]
                          spids: [53622 53636]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 53679
                          stdin_parts: [
                            <'SUBSONIC_USER=root\n'>
                            <'SUBSONIC_ARGS='>
                            <Id.Right_DoubleQuote '"'>
                            <'--quiet --pidfile=/run/subsonic.pid --max-memory='>
                            ($ Id.VSub_DollarName '$subsonic_memory_max')
                            <' --default-music-folder='>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            </>
                            ($ Id.VSub_DollarName '$FOLDER_MUSIC')
                            <' --default-podcast-folder='>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            </>
                            ($ Id.VSub_DollarName '$FOLDER_MUSIC')
                            <' --default-playlist-folder='>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            </>
                            ($ Id.VSub_DollarName '$FOLDER_MUSIC')
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/default/subsonic>}
                        )
                      ]
                    )
                    (C {<Download_Test_Media>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<ln>} {<-fs>} {</usr/local/bin/ffmpeg>} {</var/subsonic/transcode>})
                          ]
                          spids: [53698 53712]
                        )
                      ]
                      else_action: [(C {<ln>} {<-fs>} {</usr/bin/ffmpeg>} {</var/subsonic/transcode>})]
                    )
                  ]
                  spids: [53558 53591]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<71>}
                  spids: [53756]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<update-rc.d>} {<webiopi>} {<defaults>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WEBIOPI)
                          op: assign_op.Equal
                          rhs: {<2>}
                          spids: [53799]
                        )
                      ]
                    )
                  ]
                  spids: [53760 53779]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<62>}
                  spids: [53811]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {</DietPi/dietpi/dietpi-autostart>} {<5>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 53884
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=dietpi-cloudshell on main screen\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'StandardOutput=tty\n'>
                            <'TTYPath=/dev/tty1\n'>
                            <'\n'>
                            <
'ExecStartPre=/usr/bin/setterm --term linux --blank 0 --powersave off --cursor off\n'
                            >
                            <'\n'>
                            <"ExecStart=/bin/bash -c '/DietPi/dietpi/dietpi-cloudshell 1'\n">
                            <'\n'>
                            <'ExecStop=/usr/bin/setterm --reset\n'>
                            <
"ExecStop=/bin/bash -c 'G_DIETPI-NOTIFY 0 DietPi-Cloudshell terminated, have a nice day!'\n"
                            >
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/dietpi-cloudshell.service>}
                        )
                      ]
                    )
                    (C {<systemctl>} {<daemon-reload>})
                  ]
                  spids: [53815 53834]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<98>}
                  spids: [53900]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {<-p>} {</var/lib/haproxy>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 54023
                          stdin_parts: [
                            <'global\n'>
                            <'\n'>
                            <'\t#rsyslog is required for logging\n'>
                            <'\t#log /var/log    local0\n'>
                            <'\t#log /var/log    local1 notice\n'>
                            <'\tmaxconn 64\n'>
                            <'\t#Jail directory\n'>
                            <'\tchroot /var/lib/haproxy\n'>
                            <'\tstats socket /run/haproxy.sock mode 660 level admin\n'>
                            <'\tstats timeout 30s\n'>
                            <'\tuser root\n'>
                            <'\tgroup root\n'>
                            <'\tdaemon\n'>
                            <'\n'>
                            <'\t# Default SSL material locations\n'>
                            <'\tca-base /etc/ssl/certs\n'>
                            <'\tcrt-base /etc/ssl/private\n'>
                            <'\n'>
                            <'\t# Default ciphers to use on SSL-enabled listening sockets.\n'>
                            <'\t# For more information, see ciphers(1SSL).\n'>
                            <
'\tssl-default-bind-ciphers kEECDH+aRSA+AES:kRSA+AES:+AES256:RC4-SHA:!kEDH:!LOW:!EXP:!MD5:!aNULL:!eNULL\n'
                            >
                            <'\n'>
                            <'defaults\n'>
                            <'\n'>
                            <'\tlog     global\n'>
                            <'\tmode    http\n'>
                            <'\toption  httplog\n'>
                            <'\toption  dontlognull\n'>
                            <'\ttimeout connect 5000\n'>
                            <'\ttimeout client  50000\n'>
                            <'\ttimeout server  50000\n'>
                            <'\terrorfile 400 /etc/haproxy/errors/400.http\n'>
                            <'\terrorfile 403 /etc/haproxy/errors/403.http\n'>
                            <'\terrorfile 408 /etc/haproxy/errors/408.http\n'>
                            <'\terrorfile 500 /etc/haproxy/errors/500.http\n'>
                            <'\terrorfile 502 /etc/haproxy/errors/502.http\n'>
                            <'\terrorfile 503 /etc/haproxy/errors/503.http\n'>
                            <'\terrorfile 504 /etc/haproxy/errors/504.http\n'>
                            <'\n'>
                            <'frontend localnodes\n'>
                            <'\n'>
                            <'\tbind *:80\n'>
                            <'\tmode http\n'>
                            <'\tdefault_backend nodes\n'>
                            <'\n'>
                            <'backend nodes\n'>
                            <'\n'>
                            <'\tmode http\n'>
                            <'\tbalance roundrobin\n'>
                            <'\toption forwardfor\n'>
                            <'\thttp-request set-header X-Forwarded-Port %[dst_port]\n'>
                            <'\thttp-request add-header X-Forwarded-Proto https if { ssl_fc }\n'>
                            <'\toption httpchk HEAD / HTTP/1.1'>
                            <Id.Lit_Other '\\'>
                            <r>
                            <Id.Lit_Other '\\'>
                            <'nHost:localhost\n'>
                            <'\tserver web01 127.0.0.1:9000 check\n'>
                            <'\tserver web02 127.0.0.1:9001 check\n'>
                            <'\tserver web03 127.0.0.1:9002 check\n'>
                            <'\n'>
                            <'#Admin web page\n'>
                            <'\n'>
                            <'\tlisten stats\n'>
                            <'\tbind *:1338\n'>
                            <'\tstats enable\n'>
                            <'\tstats uri /\n'>
                            <'\tstats hide-version\n'>
                            <'\tstats auth admin:dietpi\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/haproxy/haproxy.cfg>}
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} {</etc/haproxy/errors>})
                    (C {<local>} {<Id.Lit_VarLike 'errorcode='> <0>})
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:errorcode)
                              op: assign_op.Equal
                              rhs: {<400>}
                              spids: [54044]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {(DQ <'[html]'> ($ Id.VSub_DollarName '$errorcode') <'[/html]'>)}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: 
                            {</etc/haproxy/errors/> (DQ ($ Id.VSub_DollarName '$errorcode')) <.http>}
                        )
                      ]
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:errorcode)
                              op: assign_op.Equal
                              rhs: {<403>}
                              spids: [54067]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {(DQ <'[html]'> ($ Id.VSub_DollarName '$errorcode') <'[/html]'>)}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: 
                            {</etc/haproxy/errors/> (DQ ($ Id.VSub_DollarName '$errorcode')) <.http>}
                        )
                      ]
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:errorcode)
                              op: assign_op.Equal
                              rhs: {<408>}
                              spids: [54090]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {(DQ <'[html]'> ($ Id.VSub_DollarName '$errorcode') <'[/html]'>)}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: 
                            {</etc/haproxy/errors/> (DQ ($ Id.VSub_DollarName '$errorcode')) <.http>}
                        )
                      ]
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:errorcode)
                              op: assign_op.Equal
                              rhs: {<500>}
                              spids: [54113]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {(DQ <'[html]'> ($ Id.VSub_DollarName '$errorcode') <'[/html]'>)}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: 
                            {</etc/haproxy/errors/> (DQ ($ Id.VSub_DollarName '$errorcode')) <.http>}
                        )
                      ]
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:errorcode)
                              op: assign_op.Equal
                              rhs: {<502>}
                              spids: [54136]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {(DQ <'[html]'> ($ Id.VSub_DollarName '$errorcode') <'[/html]'>)}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: 
                            {</etc/haproxy/errors/> (DQ ($ Id.VSub_DollarName '$errorcode')) <.http>}
                        )
                      ]
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:errorcode)
                              op: assign_op.Equal
                              rhs: {<503>}
                              spids: [54159]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {(DQ <'[html]'> ($ Id.VSub_DollarName '$errorcode') <'[/html]'>)}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: 
                            {</etc/haproxy/errors/> (DQ ($ Id.VSub_DollarName '$errorcode')) <.http>}
                        )
                      ]
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:errorcode)
                              op: assign_op.Equal
                              rhs: {<504>}
                              spids: [54182]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {(DQ <'[html]'> ($ Id.VSub_DollarName '$errorcode') <'[/html]'>)}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: 
                            {</etc/haproxy/errors/> (DQ ($ Id.VSub_DollarName '$errorcode')) <.http>}
                        )
                      ]
                    )
                  ]
                  spids: [53904 53923]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<35>}
                  spids: [54214]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<update-rc.d>} {<logitechmediaserver>} {<remove>})
                    (C {<rm>} {</etc/init.d/logitechmediaserver>})
                    (C {<cp>} {</DietPi/dietpi/conf/squeezeboxserver.service>} 
                      {</var/lib/dietpi/dietpi-software/services/squeezeboxserver.service>}
                    )
                    (C {<Download_Test_Media>})
                  ]
                  spids: [54218 54237]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<55>}
                  spids: [54290]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {</DietPi/dietpi/func/create_mysql_db>} {<wordpress>} {<wordpress>} 
                      {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))}
                    )
                  ]
                  spids: [54294 54313]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DPipe
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 27>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 28>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 120>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$G_USER_INPUTS')}
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<local>} {<Id.Lit_VarLike 'entering_pw='> <1>})
                            (C {<local>} {<Id.Lit_VarLike 'loop_count='> <0>})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {<Id.Lit_Digits 120>}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:entering_pw)
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [54463]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [54440 54459]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (SQ 
                                            <
'A password is required for your VNC Server.\\n\\nThe next screen will allow you to set your password, this password will be used when connecting from a VNC client/viewer.\\n\\nPress Ok/Enter when ready.'
                                            >
                                          )
                                        }
                                      spids: [54472]
                                    )
                                  ]
                                )
                                (C {<whiptail>} {<--title>} {(DQ <'VNC Server Password'>)} {<--msgbox>} 
                                  {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<13>} {<70>}
                                )
                              ]
                            )
                            (command.WhileUntil
                              keyword: <Id.KW_While while>
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$entering_pw')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              body: 
                                (command.DoGroup
                                  children: [
                                    (C {<vncpasswd>})
                                    (command.DParen
                                      child: 
                                        (arith_expr.UnaryAssign
                                          op_id: Id.Node_PostDPlus
                                          child: (sh_lhs_expr.Name name:loop_count)
                                        )
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<Id.Lit_LBracket '['>} {<-f>} 
                                                  {(DQ ($ Id.VSub_DollarName '$HOME')) </.vnc/passwd>} {<Id.Lit_RBracket ']'>}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:entering_pw)
                                                  op: assign_op.Equal
                                                  rhs: {<0>}
                                                  spids: [54559]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [54541 54555]
                                        )
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_GreatEqual
                                                      left: 
                                                        (arith_expr.ArithWord
                                                          w: {($ Id.VSub_DollarName '$loop_count')}
                                                        )
                                                      right: 
                                                        (arith_expr.ArithWord
                                                          w: {<Id.Lit_Digits 30>}
                                                        )
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:entering_pw)
                                                  op: assign_op.Equal
                                                  rhs: {<0>}
                                                  spids: [54586]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [54568 54582]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                          ]
                          spids: [54409 54419]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 54628
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=Manage VNC Server\n'>
                            <'After=dietpi-service.service\n'>
                            <'After=rc.local.service\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=idle\n'>
                            <'RemainAfterExit=yes\n'>
                            <'ExecStart=/bin/bash /usr/local/bin/vncserver start\n'>
                            <'ExecStop=/bin/bash /usr/local/bin/vncserver stop\n'>
                            <'User=root\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/vncserver.service>}
                        )
                      ]
                    )
                    (C {<systemctl>} {<enable>} {<vncserver.service>})
                    (C {<systemctl>} {<daemon-reload>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 54777
                          stdin_parts: [
                            <'#!/bin/bash\n'>
                            <'\n'>
                            <'#Globals\n'>
                            <'VNC_INSTALLED=0\n'>
                            <'BINARY_FP=0\n'>
                            <'SHARED_MODE=0\n'>
                            <'\n'>
                            <'WIDTH='>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <
"(cat /DietPi/dietpi.txt | grep -m1 '^SOFTWARE_VNCSERVER_WIDTH=' | sed 's/.*=//')\n"
                            >
                            <'HEIGHT='>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <
"(cat /DietPi/dietpi.txt | grep -m1 '^SOFTWARE_VNCSERVER_HEIGHT=' | sed 's/.*=//')\n"
                            >
                            <'DEPTH='>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <
"(cat /DietPi/dietpi.txt | grep -m1 '^SOFTWARE_VNCSERVER_DEPTH=' | sed 's/.*=//')\n"
                            >
                            <'DISPLAY='>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <
"(cat /DietPi/dietpi.txt | grep -m1 '^SOFTWARE_VNCSERVER_DISPLAY_INDEX=' | sed 's/.*=//')\n"
                            >
                            <'SHARED_MODE='>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <
"(cat /DietPi/dietpi.txt | grep -m1 '^SOFTWARE_VNCSERVER_SHARE_DESKTOP=' | sed 's/.*=//')\n"
                            >
                            <'\n'>
                            <'#RealVNC | Slightly different launch method to VNC4server\n'>
                            <'REALVNC=0\n'>
                            <'if (( '>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <
"(dpkg --get-selections | grep -ci -m1 '^realvnc-vnc-server') )); then\n"
                            >
                            <'\n'>
                            <'\tREALVNC=1\n'>
                            <'\n'>
                            <
'\t#Set shared desktop mode if autostart is enabled for desktops. This prevents another VNC server being launched on :1.\n'
                            >
                            <'\tif (( '>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <'(cat /DietPi/dietpi/.dietpi-autostart_index) == 2 )); then\n'>
                            <'\n'>
                            <'\t\tSHARED_MODE=1\n'>
                            <'\n'>
                            <'\tfi\n'>
                            <'\n'>
                            <'fi\n'>
                            <'\n'>
                            <'#Find binary FP to use\n'>
                            <'if [ -f /usr/bin/tigervncserver ]; then\n'>
                            <"    BINARY_FP='/usr/bin/tigervncserver'\n">
                            <'    VNC_INSTALLED=1\n'>
                            <'elif [ -f /usr/bin/vnc4server ]; then\n'>
                            <"    BINARY_FP='/usr/bin/vnc4server'\n">
                            <'    VNC_INSTALLED=1\n'>
                            <'elif [ -f /usr/bin/vncserver ]; then\n'>
                            <"    BINARY_FP='/usr/bin/vncserver'\n">
                            <'    VNC_INSTALLED=1\n'>
                            <'fi\n'>
                            <'\n'>
                            <'#Exit if no VNC binary found\n'>
                            <'if (( ! '>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <'VNC_INSTALLED )); then\n'>
                            <'    exit 1\n'>
                            <'fi\n'>
                            <'\n'>
                            <'case '>
                            <Id.Right_DoubleQuote '"'>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <1>
                            <Id.Right_DoubleQuote '"'>
                            <' in\n'>
                            <'    start)\n'>
                            <'        if (( '>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <'SHARED_MODE )); then\n'>
                            <'\n'>
                            <'\t\t\t# - excluding RealVNC as it has its own services\n'>
                            <'\t\t\tif (( ! '>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <'REALVNC )); then\n'>
                            <'\n'>
                            <'\t\t\t\t#wait for X to start\n'>
                            <'\t\t\t\twhile (( ! '>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <"(ps aux | grep -ci -m1 '[/]usr/bin/X') ))\n">
                            <'\t\t\t\tdo\n'>
                            <'\n'>
                            <'\t\t\t\t\tsleep 3\n'>
                            <'\n'>
                            <'\t\t\t\tdone\n'>
                            <'\n'>
                            <'\t\t\t\txset dpms force on #disable screen blanking\n'>
                            <'\t\t\t\tx11vnc -display :0 -usepw -forever &\n'>
                            <'\n'>
                            <'\t\t\tfi\n'>
                            <'\n'>
                            <'        else\n'>
                            <'\n'>
                            <'            '>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <'BINARY_FP :'>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <'DISPLAY -geometry '>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <"WIDTH'x'">
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <'HEIGHT -depth '>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <'DEPTH\n'>
                            <'\n'>
                            <'        fi\n'>
                            <'    ;;\n'>
                            <'\n'>
                            <'    stop)\n'>
                            <'        '>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <'BINARY_FP -kill :'>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <'DISPLAY &> /dev/null\n'>
                            <'        killall -w x11vnc &> /dev/null\n'>
                            <'\t\tkillall -w Xtigervnc &> /dev/null\n'>
                            <'    ;;\n'>
                            <'\n'>
                            <'esac\n'>
                            <'\n'>
                            <'exit 0\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</usr/local/bin/vncserver>}
                        )
                      ]
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</usr/local/bin/vncserver>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {<Id.Lit_Digits 120>}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<systemctl>} {<enable>} {<vncserver-x11-serviced.service>})
                            (C {<systemctl>} {<enable>} {<vncserver-virtuald.service>})
                          ]
                          spids: [54792 54811]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{<echo>} {<-e>} {(SQ <'$localhost = "no";'>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {</etc/vnc.conf>}
                                )
                              ]
                            )
                          ]
                          spids: [54838 54852]
                        )
                      ]
                    )
                  ]
                  spids: [54349 54396]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<28>}
                  spids: [54882]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: 
                                                  (arith_expr.ArithWord
                                                    w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                                  )
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 120>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<local>} {<Id.Lit_VarLike 'cmd_launch_desktop='> (SQ )})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 23>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:cmd_launch_desktop)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'/usr/bin/lxsession -s LXDE &'>)}
                                  spids: [54961]
                                )
                              ]
                            )
                          ]
                          spids: [54938 54957]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 24>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:cmd_launch_desktop)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'x-window-manager &'>)}
                                  spids: [54995]
                                )
                              ]
                            )
                          ]
                          spids: [54972 54991]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 26>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:cmd_launch_desktop)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'x-window-manager &'>)}
                                  spids: [55029]
                                )
                              ]
                            )
                          ]
                          spids: [55006 55025]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 25>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:cmd_launch_desktop)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'/usr/bin/xfce4-session &'>)}
                                  spids: [55063]
                                )
                              ]
                            )
                          ]
                          spids: [55040 55059]
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.vnc>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 55104
                          stdin_parts: [
                            <'[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup\n'>
                            <'[ -r /root/.Xresources ] && xrdb /root/.Xresources\n'>
                            <'xsetroot -solid grey\n'>
                            <'vncconfig -iconic &\n'>
                            ($ Id.VSub_DollarName '$cmd_launch_desktop')
                            <'\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {(DQ ($ Id.VSub_DollarName '$HOME')) </.vnc/xstartup>}
                        )
                      ]
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} 
                      {(DQ ($ Id.VSub_DollarName '$HOME')) </.vnc/xstartup>}
                    )
                  ]
                  spids: [54886 54919]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<73>}
                  spids: [55128]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<echo>} {<0>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</var/log/auth.log>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 55190
                          stdin_parts: [
                            <'[Definition]\n'>
                            <'# loglevel #1=error #2=warn #3=info\n'>
                            <'loglevel = 3\n'>
                            <'logtarget = /var/log/fail2ban.log\n'>
                            <'socket = /var/run/fail2ban/fail2ban.sock\n'>
                            <'pidfile = /var/run/fail2ban/fail2ban.pid\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/fail2ban/fail2ban.conf>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 55240
                          stdin_parts: [
                            <'[DEFAULT]\n'>
                            <'\n'>
                            <'enabled = true\n'>
                            <'ignoreip = 127.0.0.1/8\n'>
                            <'ignorecommand =\n'>
                            <'backend = auto\n'>
                            <'bantime = 600\n'>
                            <'findtime = 600\n'>
                            <'maxretry = 3\n'>
                            <'banaction = route\n'>
                            <'action_ = %(banaction)s[name=%(__name__)s, bantime='>
                            <Id.Right_DoubleQuote '"'>
                            <'%(bantime)s'>
                            <Id.Right_DoubleQuote '"'>
                            <', port='>
                            <Id.Right_DoubleQuote '"'>
                            <'%(port)s'>
                            <Id.Right_DoubleQuote '"'>
                            <']\n'>
                            <'action = %(action_)s\n'>
                            <'\n'>
                            <'[sshd]\n'>
                            <'\n'>
                            <'enabled  = true\n'>
                            <'port     = ssh\n'>
                            <'filter   = sshd\n'>
                            <'logpath  = /var/log/auth.log\n'>
                            <'maxretry = 6\n'>
                            <'\n'>
                            <'[dropbear]\n'>
                            <'\n'>
                            <'enabled  = true\n'>
                            <'port     = ssh\n'>
                            <'filter   = dropbear\n'>
                            <'logpath  = /var/log/auth.log\n'>
                            <'maxretry = 6\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/fail2ban/jail.conf>}
                        )
                      ]
                    )
                  ]
                  spids: [55132 55151]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<64>}
                  spids: [55251]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<cp>} {</DietPi/dietpi/conf/phpsysinfo.ini>} 
                      {</var/www/phpsysinfo/phpsysinfo.ini>}
                    )
                  ]
                  spids: [55255 55274]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<56>}
                  spids: [55302]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {<-p>} {</var/www/gallery/DietPi>})
                    (C {<wget>} {<http> <Id.Lit_Other ':'> <//dietpi.com/images/dietpi-logo_256.png>} 
                      {<-O>} {</var/www/gallery/DietPi/logo_256.png>}
                    )
                    (C {<mkdir>} {<-p>} {</var/www/gallery/Tr-Zero>})
                    (C {<wget>} 
                      {<http> <Id.Lit_Other ':'> 
                        <//media.indiedb.com/images/games/1/25/24673/SS_0.jpg>
                      } {<-O>} {</var/www/gallery/Tr-Zero/SS_0.jpg>}
                    )
                    (C {<wget>} 
                      {<http> <Id.Lit_Other ':'> 
                        <//media.indiedb.com/images/games/1/25/24673/SS_44.jpg>
                      } {<-O>} {</var/www/gallery/Tr-Zero/SS_1.jpg>}
                    )
                    (C {<wget>} 
                      {<http> <Id.Lit_Other ':'> <//media.indiedb.com/images/games/1/25/24673/3.png>} {<-O>} {</var/www/gallery/Tr-Zero/SS_2.jpg>}
                    )
                    (C {<mkdir>} {<-p>} {</var/www/gallery/_sfpg_data>})
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <"/define('SECURITY_PHRASE'/c"> <Id.Lit_Other '\\'> 
                          <"define('SECURITY_PHRASE', 'true');">
                        )
                      } {</var/www/gallery/index.php>}
                    )
                  ]
                  spids: [55306 55325]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<40>}
                  spids: [55435]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<Download_Test_Media>})
                    (C {<G_RUN_CMD>} {<wget>} 
                      {<http> <Id.Lit_Other ':'> 
                        <//dietpi.com/downloads/mysql_databases/ampache_mysql_3.8.2-v6.0.zip>
                      } {<-O>} {<sql.zip>}
                    )
                    (C {<unzip>} {<-o>} {<sql.zip>})
                    (C {<rm>} {<sql.zip>})
                    (C {</DietPi/dietpi/func/create_mysql_db>} {<ampache>} {<ampache>} 
                      {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))}
                    )
                    (command.Simple
                      words: [{<mysql>} {<ampache>}]
                      redirects: [(redir.Redir op:<Id.Redir_Less '<'> fd:-1 arg_word:{<ampache.sql>})]
                    )
                    (C {<rm>} {<ampache.sql>})
                    (C {<G_RUN_CMD>} {<wget>} 
                      {<http> <Id.Lit_Other ':'> 
                        <//dietpi.com/downloads/conf/ampache.cfg.php_3.8.2-v6.0>
                      } {<-O>} {</var/www/ampache/config/ampache.cfg.php>}
                    )
                  ]
                  spids: [55439 55458]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<97>}
                  spids: [55552]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<local>} {<Id.Lit_VarLike 'key_size='> <1024>})
                    (C {<cp>} {<-R>} {</usr/share/easy-rsa/>} {</etc/openvpn>})
                    (C {<mkdir>} {<-p>} {</etc/openvpn/easy-rsa/keys>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 55659
                          stdin_parts: [
                            <'export KEY_SIZE='>
                            ($ Id.VSub_DollarName '$key_size')
                            <'\n'>
                            <'export KEY_COUNTRY='>
                            <Id.Right_DoubleQuote '"'>
                            <UK>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'export KEY_PROVINCE='>
                            <Id.Right_DoubleQuote '"'>
                            <DietPi>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'export KEY_CITY='>
                            <Id.Right_DoubleQuote '"'>
                            <DietPi>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'export KEY_ORG='>
                            <Id.Right_DoubleQuote '"'>
                            <DietPi>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'export KEY_EMAIL='>
                            <Id.Right_DoubleQuote '"'>
                            <'noreply@DietPi.com'>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'export KEY_OU='>
                            <Id.Right_DoubleQuote '"'>
                            <DietPi>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'export KEY_NAME='>
                            <Id.Right_DoubleQuote '"'>
                            <DietPi_OpenVPN_Server>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {</etc/openvpn/easy-rsa/vars>}
                        )
                      ]
                    )
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {
                        (DQ <'Generating unique OpenVPN certificates and keys. Please wait...'> 
                          <Id.Lit_Other '\\'> <n>
                        )
                      }
                    )
                    (C {<openssl>} {<dhparam>} {<-out>} 
                      {</etc/openvpn/dh> (DQ ($ Id.VSub_DollarName '$key_size')) <.pem>} {(DQ ($ Id.VSub_DollarName '$key_size'))}
                    )
                    (C {<chmod>} {<-R>} {<Id.Lit_Other '+'> <x>} {</etc/openvpn/easy-rsa>})
                    (C {<cd>} {</etc/openvpn/easy-rsa>})
                    (C {<.>} {<./vars>})
                    (C {<./clean-all>})
                    (C {<./build-ca>} {<--batch>} {<DietPi_OpenVPN_Server>})
                    (C {<./build-key-server>} {<--batch>} {<DietPi_OpenVPN_Server>})
                    (C {<cp>} 
                      (word.BracedTree
                        parts: [
                          </etc/openvpn/easy-rsa/keys/>
                          (word_part.BracedTuple
                            words: [
                              {<DietPi_OpenVPN_Server.crt>}
                              {<DietPi_OpenVPN_Server.key>}
                              {<ca.crt>}
                            ]
                          )
                        ]
                      ) {</etc/openvpn/>}
                    )
                    (C {<./build-key>} {<--batch>} {<DietPi_OpenVPN_Client>})
                    (C {<cd>} {<..>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 55830
                          stdin_parts: [
                            <'port 1194\n'>
                            <'proto udp\n'>
                            <'dev tun\n'>
                            <'\n'>
                            <'ca ca.crt\n'>
                            <'cert DietPi_OpenVPN_Server.crt\n'>
                            <'key DietPi_OpenVPN_Server.key\n'>
                            <'dh dh'>
                            ($ Id.VSub_DollarName '$key_size')
                            <'.pem\n'>
                            <'\n'>
                            <'server 10.8.0.0 255.255.255.0\n'>
                            <'\n'>
                            <'client-to-client\n'>
                            <'keepalive 10 60\n'>
                            <'comp-lzo\n'>
                            <'max-clients 10\n'>
                            <'\n'>
                            <'user nobody\n'>
                            <'group nogroup\n'>
                            <'\n'>
                            <'persist-key\n'>
                            <'persist-tun\n'>
                            <'verb 3\n'>
                            <'\n'>
                            <'#Web Forwarding (uncomment to enable)\n'>
                            <'#push '>
                            <Id.Right_DoubleQuote '"'>
                            <redirect-gateway>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'#push '>
                            <Id.Right_DoubleQuote '"'>
                            <'dhcp-option DNS 10.8.0.1'>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/openvpn/server.conf>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 55868
                          stdin_parts: [
                            <'client\n'>
                            <'proto udp\n'>
                            <'dev tun\n'>
                            <'\n'>
                            <'#Ip/Domain name of DietPi system, running OpenVPN server.\n'>
                            <'remote mywebsite.com 1194\n'>
                            <'\n'>
                            <'resolv-retry infinite\n'>
                            <'nobind\n'>
                            <'\n'>
                            <'user nobody\n'>
                            <'group nogroup\n'>
                            <'\n'>
                            <'persist-key\n'>
                            <'persist-tun\n'>
                            <'\n'>
                            <'ns-cert-type server\n'>
                            <'comp-lzo\n'>
                            <'verb 3\n'>
                            <'\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/openvpn/easy-rsa/keys/DietPi_OpenVPN_Client.ovpn>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<echo>} {(SQ <'<ca>'>)}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {</etc/openvpn/easy-rsa/keys/DietPi_OpenVPN_Client.ovpn>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>} {</etc/openvpn/ca.crt>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {</etc/openvpn/easy-rsa/keys/DietPi_OpenVPN_Client.ovpn>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<echo>} {(SQ <'</ca>'>)}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {</etc/openvpn/easy-rsa/keys/DietPi_OpenVPN_Client.ovpn>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<echo>} {(SQ <'<cert>'>)}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {</etc/openvpn/easy-rsa/keys/DietPi_OpenVPN_Client.ovpn>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>} {</etc/openvpn/easy-rsa/keys/DietPi_OpenVPN_Client.crt>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {</etc/openvpn/easy-rsa/keys/DietPi_OpenVPN_Client.ovpn>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<echo>} {(SQ <'</cert>'>)}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {</etc/openvpn/easy-rsa/keys/DietPi_OpenVPN_Client.ovpn>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<echo>} {(SQ <'<key>'>)}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {</etc/openvpn/easy-rsa/keys/DietPi_OpenVPN_Client.ovpn>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>} {</etc/openvpn/easy-rsa/keys/DietPi_OpenVPN_Client.key>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {</etc/openvpn/easy-rsa/keys/DietPi_OpenVPN_Client.ovpn>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<echo>} {(SQ <'</key>'>)}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {</etc/openvpn/easy-rsa/keys/DietPi_OpenVPN_Client.ovpn>}
                        )
                      ]
                    )
                    (C {<cp>} {</etc/openvpn/easy-rsa/keys/DietPi_OpenVPN_Client.ovpn>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </>}
                    )
                    (C {<cp>} {</etc/openvpn/easy-rsa/keys/DietPi_OpenVPN_Client.ovpn>} {</boot/>})
                    (C {<sed>} {<-i>} {(SQ <'/net.ipv4.ip_forward=/c\\net.ipv4.ip_forward=1'>)} 
                      {</etc/sysctl.conf>}
                    )
                  ]
                  spids: [55556 55575]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<60>}
                  spids: [56040]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<local>} 
                      {<Id.Lit_VarLike 'eth_index='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [(C {<sed>} {<-n>} {<1p>} {</DietPi/dietpi/.network>})]
                            )
                        )
                      }
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'wifi_index='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [(C {<sed>} {<-n>} {<2p>} {</DietPi/dietpi/.network>})]
                            )
                        )
                      }
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 56132
                          stdin_parts: [
                            <'ddns-update-style none;\n'>
                            <'default-lease-time 600;\n'>
                            <'max-lease-time 7200;\n'>
                            <'authoritative;\n'>
                            <'log-facility local7;\n'>
                            <'\n'>
                            <'subnet 192.168.42.0 netmask 255.255.255.0 {\n'>
                            <'        range 192.168.42.10 192.168.42.50;\n'>
                            <'        option broadcast-address 192.168.42.255;\n'>
                            <'        option routers 192.168.42.1;\n'>
                            <'        option domain-name '>
                            <Id.Right_DoubleQuote '"'>
                            <local>
                            <Id.Right_DoubleQuote '"'>
                            <';\n'>
                            <'        option domain-name-servers 8.8.8.8, 8.8.4.4;\n'>
                            <'}\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/dhcp/dhcpd.conf>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 56156
                          stdin_parts: [
                            <'INTERFACES='>
                            <Id.Right_DoubleQuote '"'>
                            <wlan>
                            ($ Id.VSub_DollarName '$wifi_index')
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/default/isc-dhcp-server>}
                        )
                      ]
                    )
                    (C {<sed>} {<-i>} {(SQ <'/allow-hotplug wlan/q0'>)} {</etc/network/interfaces>})
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/allow-hotplug wlan/c'> <Id.Lit_Other '\\'> <'allow-hotplug wlan'> 
                          ($ Id.VSub_DollarName '$wifi_index')
                        )
                      } {</etc/network/interfaces>}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 56220
                          stdin_parts: [
                            <'iface wlan'>
                            ($ Id.VSub_DollarName '$wifi_index')
                            <' inet static\n'>
                            <'address 192.168.42.1\n'>
                            <'netmask 255.255.255.0\n'>
                            <'#gateway 192.168.0.1\n'>
                            <'wireless-power off\n'>
                            <'#dns-nameservers 8.8.8.8 8.8.4.4\n'>
                            <'\n'>
                            <'# IP tables\n'>
                            <'up iptables-restore < /etc/iptables.ipv4.nat\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {</etc/network/interfaces>}
                        )
                      ]
                    )
                    (C {<ifconfig>} {<wlan> ($ Id.VSub_DollarName '$wifi_index')} {<192.168.42.1>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 56338
                          stdin_parts: [
                            <'interface=wlan'>
                            ($ Id.VSub_DollarName '$wifi_index')
                            <'\n'>
                            <'driver=nl80211\n'>
                            <'ssid='>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (command.Pipeline
                                      children: [
                                        (C {<cat>} {</DietPi/dietpi.txt>})
                                        (C {<grep>} {<-m1>} {(SQ <'^SOFTWARE_WIFI_HOTSPOT_SSID='>)})
                                        (C {<sed>} {(SQ <'s/.*=//'>)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                            )
                            <'\n'>
                            <'hw_mode=g\n'>
                            <'channel='>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (command.Pipeline
                                      children: [
                                        (C {<cat>} {</DietPi/dietpi.txt>})
                                        (C {<grep>} {<-m1>} {(SQ <'^SOFTWARE_WIFI_HOTSPOT_CHANNEL='>)})
                                        (C {<sed>} {(SQ <'s/.*=//'>)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                            )
                            <'\n'>
                            <'macaddr_acl=0\n'>
                            <'auth_algs=1\n'>
                            <'ignore_broadcast_ssid=0\n'>
                            <'wpa=2\n'>
                            <'wpa_passphrase='>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (command.Pipeline
                                      children: [
                                        (C {<cat>} {</DietPi/dietpi.txt>})
                                        (C {<grep>} {<-m1>} {(SQ <'^SOFTWARE_WIFI_HOTSPOT_KEY='>)})
                                        (C {<sed>} {(SQ <'s/.*=//'>)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                            )
                            <'\n'>
                            <'wpa_key_mgmt=WPA-PSK\n'>
                            <'wpa_pairwise=TKIP\n'>
                            <'rsn_pairwise=CCMP\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/hostapd/hostapd.conf>}
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$WIFIHOTSPOT_RTL8188C_DEVICE')}
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<sed>} {<-i>} 
                              {(DQ <'/^driver=/c'> <Id.Lit_Other '\\'> <'driver=rtl871xdrv'>)} {</etc/hostapd/hostapd.conf>}
                            )
                          ]
                          spids: [56345 56355]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 56397
                          stdin_parts: [
                            <'DAEMON_CONF='>
                            <Id.Right_DoubleQuote '"'>
                            </etc/hostapd/hostapd.conf>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/default/hostapd>}
                        )
                      ]
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'/net.ipv4.ip_forward=/c'> <Id.Lit_Other '\\'> <'net.ipv4.ip_forward=1'>)} {</etc/sysctl.conf>}
                    )
                    (command.Simple
                      words: [{<echo>} {<1>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</proc/sys/net/ipv4/ip_forward>}
                        )
                      ]
                    )
                    (C {<iptables>} {<-t>} {<nat>} {<-A>} {<POSTROUTING>} {<-o>} 
                      {<eth> ($ Id.VSub_DollarName '$eth_index')} {<-j>} {<MASQUERADE>}
                    )
                    (C {<iptables>} {<-A>} {<FORWARD>} {<-i>} {<eth> ($ Id.VSub_DollarName '$eth_index')} 
                      {<-o>} {<wlan> ($ Id.VSub_DollarName '$wifi_index')} {<-m>} {<state>} {<--state>} 
                      {<RELATED> <Id.Lit_Comma ','> <ESTABLISHED>} {<-j>} {<ACCEPT>}
                    )
                    (C {<iptables>} {<-A>} {<FORWARD>} {<-i>} 
                      {<wlan> ($ Id.VSub_DollarName '$wifi_index')} {<-o>} {<eth> ($ Id.VSub_DollarName '$eth_index')} {<-j>} {<ACCEPT>}
                    )
                    (command.Simple
                      words: [{<iptables-save>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/iptables.ipv4.nat>}
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                        )
                                      right: 
                                        (arith_expr.Unary
                                          op_id: Id.Arith_Bang
                                          child: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  ($ Id.VSub_DollarName 
'$WIFIHOTSPOT_RTL8188C_DEVICE'
                                                  )
                                                }
                                            )
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <'ieee80211n=1'>)}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {</etc/hostapd/hostapd.conf>}
                                )
                              ]
                            )
                          ]
                          spids: [56520 56540]
                        )
                      ]
                    )
                  ]
                  spids: [56044 56063]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<61>}
                  spids: [56574]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 56628
                          stdin_parts: [
                            <'Log notice file /var/log/tor/notices.log\n'>
                            <'VirtualAddrNetwork 10.192.0.0/10\n'>
                            <'AutomapHostsSuffixes .onion,.exit\n'>
                            <'AutomapHostsOnResolve 1\n'>
                            <'TransPort 9040\n'>
                            <'TransListenAddress 192.168.42.1\n'>
                            <'DNSPort 53\n'>
                            <'DNSListenAddress 192.168.42.1\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/tor/torrc>}
                        )
                      ]
                    )
                    (C {<iptables>} {<-F>})
                    (C {<iptables>} {<-t>} {<nat>} {<-F>})
                    (C {<local>} 
                      {<Id.Lit_VarLike 'wifi_index='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [(C {<sed>} {<-n>} {<2p>} {</DietPi/dietpi/.network>})]
                            )
                        )
                      }
                    )
                    (C {<iptables>} {<-t>} {<nat>} {<-A>} {<PREROUTING>} {<-i>} 
                      {<wlan> ($ Id.VSub_DollarName '$wifi_index')} {<-p>} {<tcp>} {<--dport>} {<22>} {<-j>} {<REDIRECT>} {<--to-ports>} {<22>}
                    )
                    (C {<iptables>} {<-t>} {<nat>} {<-A>} {<PREROUTING>} {<-i>} 
                      {<wlan> ($ Id.VSub_DollarName '$wifi_index')} {<-p>} {<udp>} {<--dport>} {<53>} {<-j>} {<REDIRECT>} {<--to-ports>} {<53>}
                    )
                    (C {<iptables>} {<-t>} {<nat>} {<-A>} {<PREROUTING>} {<-i>} 
                      {<wlan> ($ Id.VSub_DollarName '$wifi_index')} {<-p>} {<tcp>} {<--syn>} {<-j>} {<REDIRECT>} {<--to-ports>} {<9040>}
                    )
                    (command.Simple
                      words: [{<iptables-save>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/iptables.ipv4.nat>}
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} {</var/log/tor>})
                    (command.Simple
                      words: [{<echo>} {<0>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</var/log/tor/notices.log>}
                        )
                      ]
                    )
                    (C {<chown>} {<-R>} {<debian-tor> <Id.Lit_Other ':'> <nogroup>} 
                      {</var/log/tor/notices.log>}
                    )
                  ]
                  spids: [56578 56597]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<37>}
                  spids: [56824]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 56954
                          stdin_parts: [
                            <'general =\n'>
                            <'{\n'>
                            <'  name = '>
                            <Id.Right_DoubleQuote '"'>
                            <'%H'>
                            <Id.Right_DoubleQuote '"'>
                            <';\n'>
                            <'  interpolation = '>
                            <Id.Right_DoubleQuote '"'>
                            <soxr>
                            <Id.Right_DoubleQuote '"'>
                            <';\n'>
                            <'};\n'>
                            <'\n'>
                            <'metadata =\n'>
                            <'{\n'>
                            <'\tenabled = '>
                            <Id.Right_DoubleQuote '"'>
                            <yes>
                            <Id.Right_DoubleQuote '"'>
                            <';\n'>
                            <'\tinclude_cover_art = '>
                            <Id.Right_DoubleQuote '"'>
                            <no>
                            <Id.Right_DoubleQuote '"'>
                            <';\n'>
                            <'\tpipe_name = '>
                            <Id.Right_DoubleQuote '"'>
                            </tmp/shairport-sync-metadata>
                            <Id.Right_DoubleQuote '"'>
                            <';\n'>
                            <'\tpipe_timeout = 5000;\n'>
                            <'\tsocket_address = '>
                            <Id.Right_DoubleQuote '"'>
                            <226.0.0.1>
                            <Id.Right_DoubleQuote '"'>
                            <';\n'>
                            <'\tsocket_port = 5555;\n'>
                            <'\tsocket_msglength = 65000;\n'>
                            <'};\n'>
                            <'\n'>
                            <'\n'>
                            <'alsa =\n'>
                            <'{\n'>
                            <'//  mixer_control_name = '>
                            <Id.Right_DoubleQuote '"'>
                            <PCM>
                            <Id.Right_DoubleQuote '"'>
                            <';\n'>
                            <'//  output_rate = 44100; // can be 44100, 88200, 176400 or 352800\n'>
                            <'//  output_format = '>
                            <Id.Right_DoubleQuote '"'>
                            <S16>
                            <Id.Right_DoubleQuote '"'>
                            <'; // can be '>
                            <Id.Right_DoubleQuote '"'>
                            <U8>
                            <Id.Right_DoubleQuote '"'>
                            <', '>
                            <Id.Right_DoubleQuote '"'>
                            <S8>
                            <Id.Right_DoubleQuote '"'>
                            <', '>
                            <Id.Right_DoubleQuote '"'>
                            <S16>
                            <Id.Right_DoubleQuote '"'>
                            <', '>
                            <Id.Right_DoubleQuote '"'>
                            <S24>
                            <Id.Right_DoubleQuote '"'>
                            <', '>
                            <Id.Right_DoubleQuote '"'>
                            <S24_3LE>
                            <Id.Right_DoubleQuote '"'>
                            <', '>
                            <Id.Right_DoubleQuote '"'>
                            <S24_3BE>
                            <Id.Right_DoubleQuote '"'>
                            <' or '>
                            <Id.Right_DoubleQuote '"'>
                            <S32>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'};\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</usr/local/etc/shairport-sync.conf>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<groupadd>} {<-r>} {<shairport-sync>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [
                        {<useradd>}
                        {<-r>}
                        {<-M>}
                        {<-g>}
                        {<shairport-sync>}
                        {<-s>}
                        {</usr/bin/nologin>}
                        {<-G>}
                        {<audio>}
                        {<shairport-sync>}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</usr/local/bin/shairport-sync>})
                  ]
                  spids: [56828 56847]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<38>}
                  spids: [57015]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<cp>} {</DietPi/dietpi/conf/brutefir_config>} {</etc/BruteFIR/>})
                    (C {<cp>} {</DietPi/dietpi/conf/brutefir.service>} 
                      {</var/lib/dietpi/dietpi-software/services/brutefir.service>}
                    )
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <snd-aloop>)}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/modules-load.d/brutefir-alsa-loopback.conf>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ 
                            <'options snd-aloop id=BruteFIR enable=1 pcm_substreams=1 pcm_notify=1'>
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/modprobe.d/brutefir-alsa-loopback.conf>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 57145
                          stdin_parts: [
                            <'pcm.!default {\n'>
                            <'\n'>
                            <'\ttype plug\n'>
                            <'\n'>
                            <'\tslave {\n'>
                            <'\t\tpcm {\n'>
                            <'\n'>
                            <'\t\t\ttype hw\n'>
                            <'\t\t\tcard '>
                            <Id.Right_DoubleQuote '"'>
                            <BruteFIR>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'\t\t\tdevice 0\n'>
                            <'\t\t\tchannels 2\n'>
                            <'\t\t\tformat '>
                            <Id.Right_DoubleQuote '"'>
                            <S16_LE>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'\t\t\trate 44100\n'>
                            <'\t\t}\n'>
                            <'\t}\n'>
                            <'}\n'>
                            <'\n'>
                            <'ctl.!default {\n'>
                            <'\n'>
                            <'\ttype hw\n'>
                            <'\tcard '>
                            <Id.Right_DoubleQuote '"'>
                            <BruteFIR>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'}\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/asound.conf>}
                        )
                      ]
                    )
                  ]
                  spids: [57019 57038]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<48>}
                  spids: [57157]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<sed>} {<-i>} {(SQ <'/output_buffering = /c\\output_buffering = Off/'>)} 
                      {(DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR')) </apache2/php.ini>}
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'/AllowOverride /c'> <Id.Lit_Other '\\'> <'    AllowOverride All'>)} {</etc/apache2/sites-enabled/000-default> <Id.Lit_Star '*'>}
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'/AllowOverride /c'> <Id.Lit_Other '\\'> <'    AllowOverride All'>)} {</etc/apache2/apache2.conf>}
                    )
                    (C {<a2enmod>} {<rewrite>})
                    (C {</DietPi/dietpi/func/create_mysql_db>} {<pydio>} {<pydio>} 
                      {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))}
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'target_data_dir='> 
                        (DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </pydio_data>)
                      }
                    )
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$target_data_dir'))})
                    (C {<mv>} {</var/www/pydio/data/> <Id.Lit_Star '*'>} 
                      {(DQ ($ Id.VSub_DollarName '$target_data_dir')) </>}
                    )
                    (C {<rm>} {<-R>} {</var/www/pydio/data>})
                    (C {<ln>} {<-sf>} {(DQ ($ Id.VSub_DollarName '$target_data_dir'))} 
                      {</var/www/pydio/data>}
                    )
                  ]
                  spids: [57161 57180]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<36>}
                  spids: [57343]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ 
                            <
'#This file is no longer used as service has been upgraded to SystemD.'
                            > <Id.Lit_Other '\\'> <'n#Please see /etc/systemd/system/squeezelite.service to set start options'>
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/default/squeezelite>}
                        )
                      ]
                    )
                    (C {<rm>} {</etc/init.d/squeezelite>})
                    (C {<cp>} {</DietPi/dietpi/conf/squeezelite.service>} 
                      {</etc/systemd/system/squeezelite.service>}
                    )
                    (C {<Download_Test_Media>})
                  ]
                  spids: [57347 57366]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<99>}
                  spids: [57418]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<cp>} {</etc/emonhub/conf/default/emonhub>} {</etc/default/emonhub>})
                    (C {<cp>} {</etc/emonhub/service/emonhub>} {</etc/init.d/emonhub>})
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</etc/init.d/emonhub>})
                    (C {<update-rc.d>} {<emonhub>} {<defaults>})
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<-R>} {</etc/emonhub>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        command_list: 
                                                          (command.CommandList
                                                            children: [
                                                              (command.Pipeline
                                                                children: [
                                                                  (C {<cat>} {</DietPi/config.txt>})
                                                                  (C {<grep>} {<-ci>} {<-m1>} 
                                                                    {(SQ <'=pi3-disable-bt'>)}
                                                                  )
                                                                ]
                                                                negated: F
                                                              )
                                                            ]
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.Simple
                                      words: [
                                        {<echo>}
                                        {<-e>}
                                        {(DQ <Id.Lit_Other '\\'> <'ndtoverlay=pi3-disable-bt'>)}
                                      ]
                                      redirects: [
                                        (redir.Redir
                                          op: <Id.Redir_DGreat '>>'>
                                          fd: -1
                                          arg_word: {</DietPi/config.txt>}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [57525 57555]
                                )
                              ]
                              else_action: [
                                (C {<sed>} {<-i>} {(SQ <'/pi3-disable-bt/c\\dtoverlay=pi3-disable-bt'>)} 
                                  {</DietPi/config.txt>}
                                )
                              ]
                            )
                            (C {<systemctl>} {<stop>} {<hciuart>})
                            (C {<systemctl>} {<disable>} {<hciuart>})
                          ]
                          spids: [57503 57517]
                        )
                      ]
                    )
                    (C {</DietPi/dietpi/func/dietpi-set_hardware>} {<serialconsole>} {<disable>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:USER_EMONHUB_APIKEY_CURRENT)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (command.Pipeline
                                        children: [
                                          (C {<cat>} {</DietPi/dietpi.txt>})
                                          (C {<grep>} {<-m1>} {(SQ <'^SOFTWARE_EMONHUB_APIKEY='>)})
                                          (C {<sed>} {(SQ <'s/.*=//'>)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                              )
                            }
                          spids: [57637]
                        )
                      ]
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ </apikey/c> <Id.Lit_Other '\\'> <'        apikey = '> 
                          ($ Id.VSub_DollarName '$USER_EMONHUB_APIKEY_CURRENT')
                        )
                      } {</etc/emonhub/conf/emonhub.conf>}
                    )
                  ]
                  spids: [57422 57441]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<66>}
                  spids: [57686]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {</usr/share/rpimonitor/scripts/updatePackagesStatus.pl>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$USBDRIVE')})
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<sed>} {<-i>} 
                              {
                                (SQ 
                                  <
'\\/include=\\/etc\\/rpimonitor\\/template\\/sdcard.conf/a include=\\/etc\\/rpimonitor\\/template\\/usb_hdd.conf'
                                  >
                                )
                              } {</etc/rpimonitor/data.conf>}
                            )
                            (command.Simple
                              words: [{<cat>}]
                              redirects: [
                                (redir.HereDoc
                                  op: <Id.Redir_DLess '<<'>
                                  fd: -1
                                  here_begin: {<_EOF_>}
                                  here_end_span_id: 57841
                                  stdin_parts: [
                                    <
'########################################################################\n'
                                    >
                                    <'# Extract USB HDD (sda1) information\n'>
                                    <'#  Page: 1\n'>
                                    <'#  Information               Status     Statistics\n'>
                                    <'#  - USBHDD1 total          - yes      - yes\n'>
                                    <'#  - USBHDD1 used           - yes      - yes\n'>
                                    <
'########################################################################\n'
                                    >
                                    <'static.10.name=usbhdd_total\n'>
                                    <'static.10.source=df -t ext4\n'>
                                    <'static.10.regexp=sda1'>
                                    <Id.Lit_Other '\\'>
                                    <'s+('>
                                    <Id.Lit_Other '\\'>
                                    <'d+)\n'>
                                    <'static.10.postprocess='>
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                    )
                                    <'1/1024\n'>
                                    <'\n'>
                                    <'dynamic.14.name=usbhdd_used\n'>
                                    <'dynamic.14.source=df -t ext4\n'>
                                    <'dynamic.14.regexp=sda1'>
                                    <Id.Lit_Other '\\'>
                                    <'s+'>
                                    <Id.Lit_Other '\\'>
                                    <'d+'>
                                    <Id.Lit_Other '\\'>
                                    <'s+('>
                                    <Id.Lit_Other '\\'>
                                    <'d+)\n'>
                                    <'dynamic.14.postprocess='>
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                    )
                                    <'1/1024\n'>
                                    <'dynamic.14.rrd=GAUGE\n'>
                                    <'\n'>
                                    <'web.status.1.content.9.name=USB HDD\n'>
                                    <'web.status.1.content.9.icon=usb_hdd.png\n'>
                                    <'web.status.1.content.9.line.1='>
                                    <Id.Right_DoubleQuote '"'>
                                    <'<b>/sda1</b> Used: <b>'>
                                    <Id.Right_DoubleQuote '"'>
                                    <"+KMG(data.usbhdd_used,'M')+">
                                    <Id.Right_DoubleQuote '"'>
                                    <'</b> (<b>'>
                                    <Id.Right_DoubleQuote '"'>
                                    <"+Percent(data.udbhdd_used,data.usbhdd_total,'M')+">
                                    <Id.Right_DoubleQuote '"'>
                                    <'</b>) Free: <b>'>
                                    <Id.Right_DoubleQuote '"'>
                                    <"+KMG(data.usbhdd_total-data.usbhdd_used,'M')+ ">
                                    <Id.Right_DoubleQuote '"'>
                                    <'</b> Total: <b>'>
                                    <Id.Right_DoubleQuote '"'>
                                    <"+ KMG(data.usbhdd_total,'M') +">
                                    <Id.Right_DoubleQuote '"'>
                                    <'</b>'>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <
'web.status.1.content.9.line.2=ProgressBar(data.usbhdd_used,data.usbhdd_total)\n'
                                    >
                                    <'\n'>
                                    <'web.statistics.1.content.9.name=USB HDD\n'>
                                    <'web.statistics.1.content.9.graph.1=usbhdd_total\n'>
                                    <'web.statistics.1.content.9.graph.2=usbhdd_used\n'>
                                    <
'web.statistics.1.content.9.ds_graph_options.usbhdd_total.label=USB HDD total space (MB)\n'
                                    >
                                    <
'web.statistics.1.content.9.ds_graph_options.usbhdd_total.color='
                                    >
                                    <Id.Right_DoubleQuote '"'>
                                    <'#FF7777'>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <
'web.statistics.1.content.9.ds_graph_options.usbhdd_used.label=USB HDD used space (MB)\n'
                                    >
                                    <
'web.statistics.1.content.9.ds_graph_options.usbhdd_used.lines={ fill: true }\n'
                                    >
                                    <
'web.statistics.1.content.9.ds_graph_options.usbhdd_used.color='
                                    >
                                    <Id.Right_DoubleQuote '"'>
                                    <'#7777FF'>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                  ]
                                )
                                (redir.Redir
                                  op: <Id.Redir_Great '>'>
                                  fd: -1
                                  arg_word: {</etc/rpimonitor/template/usb_hdd.conf>}
                                )
                              ]
                            )
                          ]
                          spids: [57729 57739]
                        )
                      ]
                    )
                  ]
                  spids: [57690 57709]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<65>}
                  spids: [57856]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<cp>} {</DietPi/dietpi/conf/netdata.service>} 
                      {</etc/systemd/system/netdata.service>}
                    )
                    (C {<systemctl>} {<daemon-reload>})
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (command.Simple
                          words: [{<getent>} {<group>} {<netdata>}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_Great '>'>
                              fd: -1
                              arg_word: {</dev/null>}
                            )
                          ]
                        )
                        (C {<groupadd>} {<-r>} {<netdata>})
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (command.Simple
                          words: [{<getent>} {<passwd>} {<netdata>}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_Great '>'>
                              fd: -1
                              arg_word: {</dev/null>}
                            )
                          ]
                        )
                        (C {<useradd>} {<-r>} {<-g>} {<netdata>} {<-c>} {<netdata>} {<-s>} {</sbin/nologin>} 
                          {<-d>} {</>} {<netdata>}
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: x
                      iter_words: [
                        {</var/cache/netdata>}
                        {</usr/share/netdata/web>}
                        {</etc/netdata>}
                        {</var/log/netdata>}
                        {</var/lib/netdata>}
                      ]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<chown>} {<-R>} {<netdata.netdata>} {($ Id.VSub_DollarName '$x')})
                            (C {<chmod>} {<0775>} {<-R>} {($ Id.VSub_DollarName '$x')})
                          ]
                        )
                    )
                  ]
                  spids: [57860 57879]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<57>}
                  spids: [58016]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<Install_Apply_Permissions>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<php>} {<-r>} {(DQ <"readfile('https://getcomposer.org/installer');">)}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {<composer-setup.php>}
                        )
                      ]
                    )
                    (C {<php>} {<composer-setup.php>})
                    (C {<php>} {<-r>} {(DQ <"unlink('composer-setup.php');">)})
                    (C {<mv>} {<composer.phar>} {</usr/local/bin/composer>})
                    (C {<cd>} {</var/www/baikal>})
                    (C {<composer>} {<install>} {<--no-interaction>})
                    (C {<cd>} {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) </>})
                    (C {</DietPi/dietpi/func/create_mysql_db>} {<baikal>} {<baikal>} 
                      {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))}
                    )
                  ]
                  spids: [58020 58039]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<43>}
                  spids: [58138]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<local>} 
                      {<Id.Lit_VarLike 'max_users='> 
                        (word_part.ArithSub
                          anode: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Star
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$G_HW_CPU_CORES')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 8>})
                            )
                        )
                      }
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/users=/c'> <Id.Lit_Other '\\'> <'users='> 
                          ($ Id.VSub_DollarName '$max_users')
                        )
                      } {</etc/mumble-server.ini>}
                    )
                    (C {<sed>} {<-i>} {(SQ <'/registerName=/c\\registerName=DietPi Mumble Server'>)} 
                      {</etc/mumble-server.ini>}
                    )
                    (C {<sed>} {<-i>} {(SQ <'/logdays=/c\\logdays=-1'>)} {</etc/mumble-server.ini>})
                    (C {<murmurd>} {<-ini>} {</etc/mumble-server.ini>} {<-supw>} 
                      {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))}
                    )
                  ]
                  spids: [58142 58161]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<41>}
                  spids: [58261]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Configuration>}) (C {<Download_Test_Media>})]
                  spids: [58265 58284]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<42>}
                  spids: [58304]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<Download_Test_Media>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DAmp
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$G_USER_INPUTS')}
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_Less
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                            )
                                        )
                                      right: 
                                        (arith_expr.Unary
                                          op_id: Id.Arith_Bang
                                          child: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_DollarParen '$('>
                                                    command_list: 
                                                      (command.CommandList
                                                        children: [
                                                          (command.Pipeline
                                                            children: [
                                                              (C {<locale>})
                                                              (C {<grep>} {<-ci>} {<-m1>} 
                                                                {(SQ <en_US.UTF-8>)}
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                        ]
                                                      )
                                                  )
                                                }
                                            )
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<sed>} {<-i>} {(SQ <'/en_US.UTF-8 UTF-8/c\\en_US.UTF-8 UTF-8'>)} 
                              {</etc/locale.gen>}
                            )
                            (C {<locale-gen>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'Plex Media Server requires en_US.UTF8 locale to be installed and set to default, else, Plex will not start.\\n\\nOn the next screen:\\n - Press enter (Do not make any changes to the selections, we have already selected en_US.UTF8 for you).\\n\\nOn the screen after:\\n - Select en_US.UTF8 and press enter.'
                                        >
                                      )
                                    }
                                  spids: [58405]
                                )
                              ]
                            )
                            (C {<whiptail>} {<--title>} {(DQ <'Plex en_US.UTF8'>)} {<--msgbox>} 
                              {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<16>} {<70>}
                            )
                            (C {<dpkg-reconfigure>} {<locales>})
                          ]
                          spids: [58347 58386]
                        )
                      ]
                    )
                  ]
                  spids: [58308 58327]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<52>}
                  spids: [58455]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 58510
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=Cuberite Server\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=oneshot\n'>
                            <'WorkingDirectory=/etc/cubrite\n'>
                            <'ExecStart=/etc/cubrite/Cuberite --service\n'>
                            <'ExecStop=/usr/bin/killall -w Cuberite\n'>
                            <'RemainAfterExit=yes\n'>
                            <'User=root\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/cuberite.service>}
                        )
                      ]
                    )
                    (C {<systemctl>} {<enable>} {<cuberite.service>})
                    (C {<systemctl>} {<daemon-reload>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 58546
                          stdin_parts: [
                            <'[User:root]\n'>
                            <'Password='>
                            ($ Id.VSub_DollarName '$GLOBAL_PW')
                            <'\n'>
                            <'\n'>
                            <'[WebAdmin]\n'>
                            <'Ports=1339\n'>
                            <'Enabled=1\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/cubrite/webadmin.ini>}
                        )
                      ]
                    )
                  ]
                  spids: [58459 58478]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<53>}
                  spids: [58557]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {</DietPi/dietpi/dietpi-services>} {<stop>})
                    (command.Simple
                      words: [{<killall>} {<-w>} {<supervisord>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<killall>} {<-w>} {<node>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<killall>} {<-w>} {<nodejs>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<ln>} {<-sf>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                        </mineos/minecraft/mineos_console.js>
                      } {</usr/local/bin/mineos>}
                    )
                    (C {<cp>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                        </mineos/minecraft/mineos.conf>
                      } {</etc/mineos.conf>}
                    )
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </mineos/minecraft>})
                    (C {<./generate-sslcert.sh>})
                    (C {<cp>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                        </mineos/minecraft/init/supervisor_conf>
                      } {</etc/supervisor/conf.d/mineos.conf>}
                    )
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                    (C {<useradd>} {<mineos>})
                    (command.Pipeline
                      children: [
                        (C {<echo>} {<-e>} 
                          {(DQ <dietpi> <Id.Lit_Other '\\'> <ndietpi> <Id.Lit_Other '\\'> <n>)}
                        )
                        (C {<passwd>} {<mineos>})
                      ]
                      negated: F
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </mineos/serverdata>}
                    )
                    (C {<mkdir>} {<-p>} {</var/games>})
                    (C {<cp>} {<-R>} {</var/games/minecraft/> <Id.Lit_Star '*'>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </mineos/serverdata/>}
                    )
                    (C {<rm>} {<-R>} {</var/games/minecraft>})
                    (C {<ln>} {<-sf>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </mineos/serverdata>} {</var/games/minecraft>}
                    )
                    (C {<chown>} {<-R>} {<mineos> <Id.Lit_Other ':'> <mineos>} {</var/games/minecraft>})
                    (C {<sed>} {<-i>} {(SQ <'/^command=/c\\command=/usr/local/bin/node webui.js'>)} 
                      {</etc/supervisor/conf.d/mineos.conf>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/^directory=/c'> <Id.Lit_Other '\\'> <'directory='> 
                          ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </mineos/minecraft>
                        )
                      } {</etc/supervisor/conf.d/mineos.conf>}
                    )
                    (C {<supervisorctl>} {<reload>})
                  ]
                  spids: [58561 58580]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<49>}
                  spids: [58846]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </gogs-repo>}
                    )
                    (C {</DietPi/dietpi/func/create_mysql_db>} {<gogs>} {<gogs>} 
                      {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 58927
                          stdin_parts: [
                            <'#!/bin/bash\n'>
                            <'#Simple script to start gogs for DietPi systems\n'>
                            <'/etc/gogs/gogs web &> /var/log/gogs_daemon.log &\n'>
                            <'exit\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/gogs/start.sh>}
                        )
                      ]
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</etc/gogs/start.sh>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 58964
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=DietPi Gogs service\n'>
                            <'DefaultDependencies=no\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=oneshot\n'>
                            <'RemainAfterExit=yes\n'>
                            <'User=root\n'>
                            <'ExecStart=/bin/bash /etc/gogs/start.sh\n'>
                            <'ExecStop=/usr/bin/killall -w gogs\n'>
                            <'StandardOutput=tty\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/gogs.service>}
                        )
                      ]
                    )
                  ]
                  spids: [58850 58869]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<46>}
                  spids: [58975]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/qBittorrent>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 59318
                          stdin_parts: [
                            <'[General]\n'>
                            <'ported_to_new_savepath_system=true\n'>
                            <'\n'>
                            <'[Preferences]\n'>
                            <Downloads>
                            <Id.Lit_Other '\\'>
                            <'DiskWriteCacheSize='>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: 
                                (command.CommandList
                                  children: [(C {<Optimize_BitTorrent>} {<0>})]
                                )
                            )
                            <'\n'>
                            <Downloads>
                            <Id.Lit_Other '\\'>
                            <'DiskWriteCacheTTL=60\n'>
                            <Queueing>
                            <Id.Lit_Other '\\'>
                            <'MaxActiveDownloads='>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: 
                                (command.CommandList
                                  children: [(C {<Optimize_BitTorrent>} {<1>})]
                                )
                            )
                            <'\n'>
                            <Queueing>
                            <Id.Lit_Other '\\'>
                            <'MaxActiveTorrents='>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: 
                                (command.CommandList
                                  children: [(C {<Optimize_BitTorrent>} {<1>})]
                                )
                            )
                            <'\n'>
                            <Queueing>
                            <Id.Lit_Other '\\'>
                            <'MaxActiveUploads=1\n'>
                            <Queueing>
                            <Id.Lit_Other '\\'>
                            <'IgnoreSlowTorrents=false\n'>
                            <Bittorrent>
                            <Id.Lit_Other '\\'>
                            <'MaxConnecs='>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: 
                                (command.CommandList
                                  children: [(C {<Optimize_BitTorrent>} {<2>})]
                                )
                            )
                            <'\n'>
                            <Bittorrent>
                            <Id.Lit_Other '\\'>
                            <'MaxConnecsPerTorrent='>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: 
                                (command.CommandList
                                  children: [(C {<Optimize_BitTorrent>} {<2>})]
                                )
                            )
                            <'\n'>
                            <Bittorrent>
                            <Id.Lit_Other '\\'>
                            <'MaxUploads='>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: 
                                (command.CommandList
                                  children: [(C {<Optimize_BitTorrent>} {<3>})]
                                )
                            )
                            <'\n'>
                            <Bittorrent>
                            <Id.Lit_Other '\\'>
                            <'MaxUploadsPerTorrent='>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: 
                                (command.CommandList
                                  children: [(C {<Optimize_BitTorrent>} {<3>})]
                                )
                            )
                            <'\n'>
                            <WebUI>
                            <Id.Lit_Other '\\'>
                            <'Port=1340\n'>
                            <WebUI>
                            <Id.Lit_Other '\\'>
                            <'Enabled=true\n'>
                            <General>
                            <Id.Lit_Other '\\'>
                            <'Locale=en_GB\n'>
                            <Downloads>
                            <Id.Lit_Other '\\'>
                            <'SavePath='>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/downloads\n'>
                            <Downloads>
                            <Id.Lit_Other '\\'>
                            <'TempPathEnabled=false\n'>
                            <Downloads>
                            <Id.Lit_Other '\\'>
                            <'TempPath='>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/downloads\n'>
                            <Downloads>
                            <Id.Lit_Other '\\'>
                            <'ScanDirs=@Invalid()\n'>
                            <Downloads>
                            <Id.Lit_Other '\\'>
                            <'DownloadInScanDirs=@Invalid()\n'>
                            <Downloads>
                            <Id.Lit_Other '\\'>
                            <'TorrentExportDir=\n'>
                            <MailNotification>
                            <Id.Lit_Other '\\'>
                            <'enabled=false\n'>
                            <MailNotification>
                            <Id.Lit_Other '\\'>
                            <'email=\n'>
                            <MailNotification>
                            <Id.Lit_Other '\\'>
                            <'smtp_server=smtp.changeme.com\n'>
                            <MailNotification>
                            <Id.Lit_Other '\\'>
                            <'req_ssl=false\n'>
                            <MailNotification>
                            <Id.Lit_Other '\\'>
                            <'req_auth=false\n'>
                            <MailNotification>
                            <Id.Lit_Other '\\'>
                            <'username=\n'>
                            <MailNotification>
                            <Id.Lit_Other '\\'>
                            <'password=\n'>
                            <Downloads>
                            <Id.Lit_Other '\\'>
                            <'PreAllocation=false\n'>
                            <Queueing>
                            <Id.Lit_Other '\\'>
                            <'QueueingEnabled=false\n'>
                            <Downloads>
                            <Id.Lit_Other '\\'>
                            <'UseIncompleteExtension=false\n'>
                            <Connection>
                            <Id.Lit_Other '\\'>
                            <'PortRangeMin=6881\n'>
                            <Connection>
                            <Id.Lit_Other '\\'>
                            <'UPnP=true\n'>
                            <Connection>
                            <Id.Lit_Other '\\'>
                            <'GlobalDLLimit=-1\n'>
                            <Connection>
                            <Id.Lit_Other '\\'>
                            <'GlobalUPLimit=-1\n'>
                            <Bittorrent>
                            <Id.Lit_Other '\\'>
                            <'uTP=true\n'>
                            <Bittorrent>
                            <Id.Lit_Other '\\'>
                            <'uTP_rate_limited=false\n'>
                            <Advanced>
                            <Id.Lit_Other '\\'>
                            <'IncludeOverhead=false\n'>
                            <Connection>
                            <Id.Lit_Other '\\'>
                            <'GlobalDLLimitAlt=10\n'>
                            <Connection>
                            <Id.Lit_Other '\\'>
                            <'GlobalUPLimitAlt=10\n'>
                            <Scheduler>
                            <Id.Lit_Other '\\'>
                            <'Enabled=false\n'>
                            <Bittorrent>
                            <Id.Lit_Other '\\'>
                            <'DHT=true\n'>
                            <Bittorrent>
                            <Id.Lit_Other '\\'>
                            <'sameDHTPortAsBT=true\n'>
                            <Bittorrent>
                            <Id.Lit_Other '\\'>
                            <'DHTPort=6881\n'>
                            <Bittorrent>
                            <Id.Lit_Other '\\'>
                            <'PeX=true\n'>
                            <Bittorrent>
                            <Id.Lit_Other '\\'>
                            <'LSD=true\n'>
                            <Bittorrent>
                            <Id.Lit_Other '\\'>
                            <'Encryption=1\n'>
                            <Advanced>
                            <Id.Lit_Other '\\'>
                            <'AnonymousMode=false\n'>
                            <Connection>
                            <Id.Lit_Other '\\'>
                            <'ProxyType=-1\n'>
                            <Connection>
                            <Id.Lit_Other '\\'>
                            <Proxy>
                            <Id.Lit_Other '\\'>
                            <'IP=0.0.0.0\n'>
                            <Connection>
                            <Id.Lit_Other '\\'>
                            <Proxy>
                            <Id.Lit_Other '\\'>
                            <'Port=8080\n'>
                            <Connection>
                            <Id.Lit_Other '\\'>
                            <'ProxyPeerConnections=false\n'>
                            <Connection>
                            <Id.Lit_Other '\\'>
                            <Proxy>
                            <Id.Lit_Other '\\'>
                            <'Authentication=false\n'>
                            <Connection>
                            <Id.Lit_Other '\\'>
                            <Proxy>
                            <Id.Lit_Other '\\'>
                            <'Username=\n'>
                            <Connection>
                            <Id.Lit_Other '\\'>
                            <Proxy>
                            <Id.Lit_Other '\\'>
                            <'Password=\n'>
                            <IPFilter>
                            <Id.Lit_Other '\\'>
                            <'Enabled=false\n'>
                            <IPFilter>
                            <Id.Lit_Other '\\'>
                            <'File=\n'>
                            <WebUI>
                            <Id.Lit_Other '\\'>
                            <'Username=root\n'>
                            <WebUI>
                            <Id.Lit_Other '\\'>
                            <'LocalHostAuth=true\n'>
                            <WebUI>
                            <Id.Lit_Other '\\'>
                            <HTTPS>
                            <Id.Lit_Other '\\'>
                            <'Enabled=false\n'>
                            <DynDNS>
                            <Id.Lit_Other '\\'>
                            <'Enabled=false\n'>
                            <DynDNS>
                            <Id.Lit_Other '\\'>
                            <'Service=0\n'>
                            <DynDNS>
                            <Id.Lit_Other '\\'>
                            <'Username=\n'>
                            <DynDNS>
                            <Id.Lit_Other '\\'>
                            <'Password=\n'>
                            <DynDNS>
                            <Id.Lit_Other '\\'>
                            <'DomainName=changeme.dyndns.org\n'>
                            <WebUI>
                            <Id.Lit_Other '\\'>
                            <'Password_ha1=@ByteArray('>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (command.Pipeline
                                      children: [
                                        (C {<echo>} {<-ne>} {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))})
                                        (C {<md5sum>})
                                        (C {<awk>} {(SQ <'{print $1}'>)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                            )
                            <')\n'>
                            <'\n'>
                            <'\n'>
                            <'[LegalNotice]\n'>
                            <'Accepted=true\n'>
                            <'\n'>
                            <'[AutoRun]\n'>
                            <'enabled=false\n'>
                            <'program=\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: 
                            {(DQ ($ Id.VSub_DollarName '$HOME')) 
                              </.config/qBittorrent/qBittorrent.conf>
                            }
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 59349
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=qBittorrent Daemon Service\n'>
                            <'After=network.target\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=oneshot\n'>
                            <'User=root\n'>
                            <'RemainAfterExit=yes\n'>
                            <'ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=1340\n'>
                            <'ExecStop=/usr/bin/killall -w qbittorrent-nox\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/qbittorrent.service>}
                        )
                      ]
                    )
                    (C {<systemctl>} {<daemon-reload>})
                  ]
                  spids: [58979 58998]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<107>}
                  spids: [59366]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 83>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<sed>} {<-i>} 
                              {
                                (DQ <'/AllowOverride /c'> <Id.Lit_Other '\\'> <'    AllowOverride All'>)
                              } {</etc/apache2/sites-enabled/000-default> <Id.Lit_Star '*'>}
                            )
                            (C {<sed>} {<-i>} 
                              {
                                (DQ <'/AllowOverride /c'> <Id.Lit_Other '\\'> <'    AllowOverride All'>)
                              } {</etc/apache2/apache2.conf>}
                            )
                            (C {<a2enmod>} {<rewrite>})
                            (C {<G_AGI>} {<libapache2-mod-scgi>})
                            (C {<htpasswd>} {<-cb>} {</etc/.rutorrent-htaccess>} {<root>} 
                              {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))}
                            )
                            (command.Simple
                              words: [{<cat>}]
                              redirects: [
                                (redir.HereDoc
                                  op: <Id.Redir_DLess '<<'>
                                  fd: -1
                                  here_begin: {<_EOF_>}
                                  here_end_span_id: 59508
                                  stdin_parts: [
                                    <'AuthUserFile /etc/.rutorrent-htaccess\n'>
                                    <'AuthName '>
                                    <Id.Right_DoubleQuote '"'>
                                    <ruTorrent_login>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'AuthType Basic\n'>
                                    <'require user root\n'>
                                  ]
                                )
                                (redir.Redir
                                  op: <Id.Redir_Great '>'>
                                  fd: -1
                                  arg_word: {</var/www/rutorrent/.htaccess>}
                                )
                              ]
                            )
                            (command.Simple
                              words: [{<cat>}]
                              redirects: [
                                (redir.HereDoc
                                  op: <Id.Redir_DLess '<<'>
                                  fd: -1
                                  here_begin: {<_EOF_>}
                                  here_end_span_id: 59534
                                  stdin_parts: [
                                    <'SCGIMount /RPC2 127.0.0.1:5000\n'>
                                    <'<location /RPC2>\n'>
                                    <'AuthName '>
                                    <Id.Right_DoubleQuote '"'>
                                    <'rTorrent secure access'>
                                    <Id.Right_DoubleQuote '"'>
                                    <'\n'>
                                    <'AuthType Basic\n'>
                                    <'AuthBasicProvider file\n'>
                                    <'AuthUserFile /etc/.rutorrent-htaccess\n'>
                                    <'Require user root\n'>
                                    <'</location>\n'>
                                  ]
                                )
                                (redir.Redir
                                  op: <Id.Redir_Great '>'>
                                  fd: -1
                                  arg_word: {</etc/apache2/sites-available/rutorrent.conf>}
                                )
                              ]
                            )
                            (C {<ln>} {<-s>} {</etc/apache2/sites-available/rutorrent.conf>} 
                              {</etc/apache2/sites-enabled/rutorrent.conf>}
                            )
                          ]
                          spids: [59405 59424]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 84>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [
                                {<echo>}
                                {<-e>}
                                {
                                  (DQ <'root:rtorrent:'> 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (command.Pipeline
                                              children: [
                                                (C {<echo>} {<-n>} {(DQ <'root:rtorrent:dietpi'>)})
                                                (C {<md5sum>})
                                                (C {<cut>} {<-b>} {<-32>})
                                              ]
                                              negated: F
                                            )
                                          ]
                                        )
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_Great '>'>
                                  fd: -1
                                  arg_word: {</etc/.rutorrent-htaccess>}
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Unary
                                              op_id: Id.Arith_Bang
                                              child: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        command_list: 
                                                          (command.CommandList
                                                            children: [
                                                              (command.Pipeline
                                                                children: [
                                                                  (C {<cat>} 
                                                                    {</etc/lighttpd/lighttpd.conf>}
                                                                  )
                                                                  (C {<grep>} {<-ci>} {<-m1>} 
                                                                    {(SQ <'^#RUTORRENT_DIETPI'>)}
                                                                  )
                                                                ]
                                                                negated: F
                                                              )
                                                            ]
                                                          )
                                                      )
                                                    }
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.Simple
                                      words: [{<cat>}]
                                      redirects: [
                                        (redir.HereDoc
                                          op: <Id.Redir_DLess '<<'>
                                          fd: -1
                                          here_begin: {<_EOF_>}
                                          here_end_span_id: 59755
                                          stdin_parts: [
                                            <'#RUTORRENT_DIETPI\n'>
                                            <'server.modules += ( '>
                                            <Id.Right_DoubleQuote '"'>
                                            <mod_fastcgi>
                                            <Id.Right_DoubleQuote '"'>
                                            <' )\n'>
                                            <'server.modules += ( '>
                                            <Id.Right_DoubleQuote '"'>
                                            <mod_scgi>
                                            <Id.Right_DoubleQuote '"'>
                                            <' )\n'>
                                            <'server.modules += ( '>
                                            <Id.Right_DoubleQuote '"'>
                                            <mod_auth>
                                            <Id.Right_DoubleQuote '"'>
                                            <' )\n'>
                                            <'auth.debug = 0\n'>
                                            <'auth.backend = '>
                                            <Id.Right_DoubleQuote '"'>
                                            <htdigest>
                                            <Id.Right_DoubleQuote '"'>
                                            <'\n'>
                                            <'auth.backend.htdigest.userfile = '>
                                            <Id.Right_DoubleQuote '"'>
                                            </etc/.rutorrent-htaccess>
                                            <Id.Right_DoubleQuote '"'>
                                            <'\n'>
                                            <'\n'>
                                            <'auth.require = ( '>
                                            <Id.Right_DoubleQuote '"'>
                                            </rutorrent/>
                                            <Id.Right_DoubleQuote '"'>
                                            <' => (\n'>
                                            <'                    '>
                                            <Id.Right_DoubleQuote '"'>
                                            <method>
                                            <Id.Right_DoubleQuote '"'>
                                            <'  => '>
                                            <Id.Right_DoubleQuote '"'>
                                            <digest>
                                            <Id.Right_DoubleQuote '"'>
                                            <',\n'>
                                            <'                    '>
                                            <Id.Right_DoubleQuote '"'>
                                            <realm>
                                            <Id.Right_DoubleQuote '"'>
                                            <'   => '>
                                            <Id.Right_DoubleQuote '"'>
                                            <rtorrent>
                                            <Id.Right_DoubleQuote '"'>
                                            <',\n'>
                                            <'                    '>
                                            <Id.Right_DoubleQuote '"'>
                                            <require>
                                            <Id.Right_DoubleQuote '"'>
                                            <' => '>
                                            <Id.Right_DoubleQuote '"'>
                                            <valid-user>
                                            <Id.Right_DoubleQuote '"'>
                                            <'\n'>
                                            <'               ))\n'>
                                            <'\n'>
                                            <'scgi.server = ( '>
                                            <Id.Right_DoubleQuote '"'>
                                            </RPC2>
                                            <Id.Right_DoubleQuote '"'>
                                            <' =>\n'>
                                            <'    ( '>
                                            <Id.Right_DoubleQuote '"'>
                                            <127.0.0.1>
                                            <Id.Right_DoubleQuote '"'>
                                            <' =>\n'>
                                            <'        (\n'>
                                            <'            '>
                                            <Id.Right_DoubleQuote '"'>
                                            <host>
                                            <Id.Right_DoubleQuote '"'>
                                            <' => '>
                                            <Id.Right_DoubleQuote '"'>
                                            <127.0.0.1>
                                            <Id.Right_DoubleQuote '"'>
                                            <',\n'>
                                            <'            '>
                                            <Id.Right_DoubleQuote '"'>
                                            <port>
                                            <Id.Right_DoubleQuote '"'>
                                            <' => 5000,\n'>
                                            <'            '>
                                            <Id.Right_DoubleQuote '"'>
                                            <check-local>
                                            <Id.Right_DoubleQuote '"'>
                                            <' => '>
                                            <Id.Right_DoubleQuote '"'>
                                            <disable>
                                            <Id.Right_DoubleQuote '"'>
                                            <'\n'>
                                            <'        )\n'>
                                            <'    )\n'>
                                            <')\n'>
                                            <'#RUTORRENT_DIETPI\n'>
                                          ]
                                        )
                                        (redir.Redir
                                          op: <Id.Redir_DGreat '>>'>
                                          fd: -1
                                          arg_word: {</etc/lighttpd/lighttpd.conf>}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [59612 59640]
                                )
                              ]
                            )
                          ]
                          spids: [59550 59569]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 85>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [
                                {<echo>}
                                {
                                  (DQ <'root:'> 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      command_list: 
                                        (command.CommandList
                                          children: [(C {<openssl>} {<passwd>} {<-crypt>} {<dietpi>})]
                                        )
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_Great '>'>
                                  fd: -1
                                  arg_word: {</etc/.rutorrent-htaccess>}
                                )
                              ]
                            )
                            (command.Simple
                              words: [{<cat>}]
                              redirects: [
                                (redir.HereDoc
                                  op: <Id.Redir_DLess '<<'>
                                  fd: -1
                                  here_begin: {<_EOF_>}
                                  here_end_span_id: 59834
                                  stdin_parts: [
                                    <'location /rutorrent {\n'>
                                    <'    auth_basic '>
                                    <Id.Right_DoubleQuote '"'>
                                    <'Restricted Content'>
                                    <Id.Right_DoubleQuote '"'>
                                    <';\n'>
                                    <'    auth_basic_user_file /etc/.rutorrent-htaccess;\n'>
                                    <'}\n'>
                                    <'\n'>
                                    <'location /RPC2 {\n'>
                                    <'    include scgi_params;\n'>
                                    <'    scgi_pass 127.0.0.1:5000;\n'>
                                    <'}\n'>
                                  ]
                                )
                                (redir.Redir
                                  op: <Id.Redir_Great '>'>
                                  fd: -1
                                  arg_word: {</etc/nginx/sites-dietpi/rutorrent.config>}
                                )
                              ]
                            )
                          ]
                          spids: [59766 59785]
                        )
                      ]
                    )
                    (C {<sed>} {<-i>} {(SQ <'/"curl"[[:space:]]/c\\        "curl" => "/usr/bin/curl",'>)} 
                      {</var/www/rutorrent/conf/config.php>}
                    )
                    (C {<chown>} {<www-data> <Id.Lit_Other ':'> <www-data>} {</etc/.rutorrent-htaccess>})
                    (C {<chmod>} {<400>} {</etc/.rutorrent-htaccess>})
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </downloads/.session>}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 59918
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=rTorrent\n'>
                            <'After=network.target\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'User=root\n'>
                            <'Type=forking\n'>
                            <'KillMode=none\n'>
                            <'ExecStart=/usr/bin/screen -d -m -fa -S rtorrent /usr/bin/rtorrent\n'>
                            <'ExecStop=/usr/bin/killall -w -s 2 /usr/bin/rtorrent\n'>
                            <'WorkingDirectory=%h\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/rtorrent.service>}
                        )
                      ]
                    )
                    (C {<systemctl>} {<daemon-reload>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 60148
                          stdin_parts: [
                            <
'#Attempt to reduce disk throttling/abuse | 0.9.2 command does not exist\n'
                            >
                            <'#max_open_files = 50\n'>
                            <'\n'>
                            <'#Max queue\n'>
                            <'scheduler.max_active.set = 3\n'>
                            <'\n'>
                            <'#byte value\n'>
                            <'max_memory_usage = '>
                            (word_part.ArithSub
                              anode: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Star
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Star
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                command_list: 
                                                  (command.CommandList
                                                    children: [(C {<Optimize_BitTorrent>} {<0>})]
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1024>})
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1024>})
                                )
                            )
                            <'\n'>
                            <'\n'>
                            <'# Maximum and minimum number of peers to connect to per torrent.\n'>
                            <'min_peers = 1\n'>
                            <'max_peers = '>
                            (word_part.ArithSub
                              anode: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Plus
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Slash
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                command_list: 
                                                  (command.CommandList
                                                    children: [(C {<Optimize_BitTorrent>} {<2>})]
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                            <'\n'>
                            <'\n'>
                            <
'# Same as above but for seeding completed torrents (-1 = same as downloading)\n'
                            >
                            <'min_peers_seed = -1\n'>
                            <'max_peers_seed = -1\n'>
                            <'\n'>
                            <'# Maximum number of simultaneous downloads\n'>
                            <'max_downloads_global = '>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: 
                                (command.CommandList
                                  children: [(C {<Optimize_BitTorrent>} {<2>})]
                                )
                            )
                            <'\n'>
                            <'# Maximum number of simultaneous uploads\n'>
                            <'max_uploads_global = '>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: 
                                (command.CommandList
                                  children: [(C {<Optimize_BitTorrent>} {<3>})]
                                )
                            )
                            <'\n'>
                            <'\n'>
                            <'# Global upload and download rate in KiB. '>
                            <Id.Right_DoubleQuote '"'>
                            <0>
                            <Id.Right_DoubleQuote '"'>
                            <' for unlimited.\n'>
                            <'download_rate = 0\n'>
                            <'upload_rate = 0\n'>
                            <'\n'>
                            <'# Default directory to save the downloaded torrents.\n'>
                            <'directory = '>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/downloads\n'>
                            <'\n'>
                            <
"# Default session directory. Make sure you don't run multiple instance\n"
                            >
                            <'# of rtorrent using the same session directory. Perhaps using a\n'>
                            <'# relative path?\n'>
                            <'session = '>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/downloads/.session\n'>
                            <'\n'>
                            <'# Close torrents when diskspace is low.\n'>
                            <'schedule = low_diskspace,5,60,close_low_diskspace=1000M\n'>
                            <'\n'>
                            <'# Periodically save session data\n'>
                            <'schedule = session_save,240,300,session_save=\n'>
                            <'\n'>
                            <'# Enable the default ratio group.\n'>
                            <'ratio.enable=yes\n'>
                            <'# Change the limits, the defaults should be sufficient.\n'>
                            <'# Upload to a minimum ratio of 1.01\n'>
                            <'ratio.min.set=101\n'>
                            <'# Upload to a maximum ratio of 1.25\n'>
                            <'ratio.max.set=125\n'>
                            <'# Upload a minimum of x MB\n'>
                            <'ratio.upload.set=1M\n'>
                            <'\n'>
                            <'# When seeding ratio is reached close the torrent\n'>
                            <'system.method.set = group.seeding.ratio.command, d.close=\n'>
                            <'\n'>
                            <'# Move files to ./unsorted when download completes\n'>
                            <'system.method.set_key = event.download.finished,move_complete,'>
                            <Id.Right_DoubleQuote '"'>
                            <'execute=mv,-n,'>
                            ($ Id.VSub_DollarName '$d')
                            <'.get_base_path=,./unsorted/;d.set_directory=./unsorted/'>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'\n'>
                            <'# Port range to use for listening.\n'>
                            <'port_range = 33101-33199\n'>
                            <'\n'>
                            <'# Start opening ports at a random position within the port range.\n'>
                            <'port_random = yes\n'>
                            <'\n'>
                            <
'# Encryption options, set to none (default) or any combination of the following:\n'
                            >
                            <
'# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext\n'
                            >
                            <'#\n'>
                            <
'# The example value allows incoming encrypted connections, starts unencrypted\n'
                            >
                            <
'# outgoing connections but retries with encryption if they fail, preferring\n'
                            >
                            <'# plaintext to RC4 encryption after the encrypted handshake\n'>
                            <'#\n'>
                            <'encryption = require\n'>
                            <'\n'>
                            <'# Sort the main view by ratio\n'>
                            <'view.sort_current = main,greater=d.get_ratio=\n'>
                            <'view.sort_new = main,less=d.get_ratio=\n'>
                            <'view.sort = main\n'>
                            <'\n'>
                            <
'# Sort the seeding view by the upload rate and only show torrents with peers\n'
                            >
                            <'view.sort_current = seeding,greater=d.get_up_rate=\n'>
                            <'view.filter = seeding,'>
                            <Id.Right_DoubleQuote '"'>
                            <'and=d.get_complete=,d.get_peers_connected='>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'view.sort_new = seeding,less=d.get_up_rate=\n'>
                            <'view.sort = seeding\n'>
                            <'\n'>
                            <'# Sort the leeching view by name\n'>
                            <'view.sort_current = leeching,greater=d.get_name=\n'>
                            <'view.sort_new = leeching,greater=d.get_name=\n'>
                            <'view.sort = leeching\n'>
                            <'\n'>
                            <'# Filter the active view by connected peers\n'>
                            <'view.sort_current = active,less=d.get_name=\n'>
                            <'view.sort_new = leeching,less=d.get_name=\n'>
                            <'view.filter = active,d.get_peers_connected=\n'>
                            <'view.sort = active\n'>
                            <'\n'>
                            <'schedule = sort_main,11,5,view.sort=main\n'>
                            <'schedule = sort_seeding,12,5,view.sort=seeding\n'>
                            <'schedule = sort_leeching,13,5,view.sort=leeching\n'>
                            <'schedule = sort_active,14,5,view.sort=active\n'>
                            <'\n'>
                            <
'# Enable DHT support for trackerless torrents or when all trackers are down.\n'
                            >
                            <'# May be set to '>
                            <Id.Right_DoubleQuote '"'>
                            <disable>
                            <Id.Right_DoubleQuote '"'>
                            <' (completely disable DHT), '>
                            <Id.Right_DoubleQuote '"'>
                            <off>
                            <Id.Right_DoubleQuote '"'>
                            <' (do not start DHT),\n'>
                            <'# '>
                            <Id.Right_DoubleQuote '"'>
                            <auto>
                            <Id.Right_DoubleQuote '"'>
                            <' (start and stop DHT as needed), or '>
                            <Id.Right_DoubleQuote '"'>
                            <on>
                            <Id.Right_DoubleQuote '"'>
                            <' (start DHT immediately).\n'>
                            <'# The default is '>
                            <Id.Right_DoubleQuote '"'>
                            <off>
                            <Id.Right_DoubleQuote '"'>
                            <'. For DHT to work, a session directory must be defined.\n'>
                            <'#\n'>
                            <'dht = auto\n'>
                            <'\n'>
                            <'# UDP port to use for DHT.\n'>
                            <'#\n'>
                            <'#dht_port = 6881\n'>
                            <'\n'>
                            <'# Enable peer exchange (for torrents not marked private)\n'>
                            <'#\n'>
                            <'peer_exchange = yes\n'>
                            <'\n'>
                            <'#Enable remote access (eg: webui)\n'>
                            <'scgi_port = localhost:5000\n'>
                            <'\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {(DQ ($ Id.VSub_DollarName '$HOME')) </.rtorrent.rc>}
                        )
                      ]
                    )
                  ]
                  spids: [59370 59389]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<132>}
                  spids: [60160]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 60223
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=DietPi Aria2\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'ExecStart='>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: (command.CommandList children:[(C {<which>} {<aria2c>})])
                            )
                            <' --enable-rpc --rpc-listen-all --rpc-secret='>
                            ($ Id.VSub_DollarName '$GLOBAL_PW')
                            <' --dir='>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            </>
                            ($ Id.VSub_DollarName '$FOLDER_DOWNLOADS')
                            <'\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/aria2.service>}
                        )
                      ]
                    )
                  ]
                  spids: [60164 60183]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<50>}
                  spids: [60234]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </syncthing>}
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </syncthing_data>}
                    )
                    (C {<mkdir>} {<-p>} {</var/log/syncthing>})
                    (command.Simple
                      words: [{<echo>} {(SQ )}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</var/log/syncthing/syncthing.log>}
                        )
                      ]
                    )
                    (C {<chown>} {<-R>} {<dietpi> <Id.Lit_Other ':'> <dietpi>} {</var/log/syncthing>})
                    (C {<chown>} {<-R>} {<dietpi> <Id.Lit_Other ':'> <dietpi>} {</etc/syncthing>})
                    (C {</etc/syncthing/syncthing>} 
                      {<-generate> <Id.Lit_Equals '='> 
                        (DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </syncthing>
                      }
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (SQ 
                          <
'/<\\/autoUpgradeIntervalH>/c\\        <autoUpgradeIntervalH>0<\\/autoUpgradeIntervalH>'
                          >
                        )
                      } {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </syncthing/config.xml>}
                    )
                    (C {<sed>} {<-i>} 
                      {(SQ <'/:8384<\\/address>/c\\        <address>0.0.0.0:8384<\\/address>'>)} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </syncthing/config.xml>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (SQ 
                          <
'/label=\\"Default Folder/c\\    <folder id=\\"0000-0000\\" label=\\"Syncthing Data\\" path=\\"'
                          >
                        ) (DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </syncthing_data>) 
                        (SQ 
                          <
'\\" type=\\"readwrite\\" rescanIntervalS=\\"60\\" ignorePerms=\\"false\\" autoNormalize=\\"true\\">'
                          >
                        )
                      } {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </syncthing/config.xml>}
                    )
                    (C {<sed>} {<-i>} 
                      {(SQ <'/<\\/startBrowser>/c\\        <startBrowser>false<\\/startBrowser>'>)} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </syncthing/config.xml>}
                    )
                    (C {<sed>} {<-i>} 
                      {(SQ <'s/fsWatcherEnabled=\\"false\\"/fsWatcherEnabled=\\"true\\"/g'>)} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </syncthing/config.xml>}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 60479
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=Syncthing\n'>
                            <'After=network.target\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <
'ExecStart=/etc/syncthing/syncthing -logfile=/var/log/syncthing/syncthing.log -logflags=3 -home='
                            >
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/syncthing\n'>
                            <'User=dietpi\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/syncthing.service>}
                        )
                      ]
                    )
                    (command.Pipeline
                      children: [
                        (C {<echo>} {<-e>} {(DQ <'fs.inotify.max_user_watches=204800'>)})
                        (C {<tee>} {<-a>} {</etc/sysctl.conf>})
                      ]
                      negated: F
                    )
                  ]
                  spids: [60238 60257]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<111>}
                  spids: [60512]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                        </urbackup/urbackup_tmp_files>
                      }
                    )
                    (C {<sed>} {<-i>} {(SQ <'/DAEMON_TMPDIR=/c\\DAEMON_TMPDIR="/var/tmp"'>)} 
                      {</etc/default/urbackupsrv>}
                    )
                  ]
                  spids: [60516 60535]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<116>}
                  spids: [60587]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </sickrage>}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 60656
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=SickRage\n'>
                            <'After=dietpi-service.service\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'User=root\n'>
                            <'Group=root\n'>
                            <'Type=forking\n'>
                            <'GuessMainPID=no\n'>
                            <
'ExecStart=/usr/bin/python /etc/sickrage/SickBeard.py -q --daemon --nolaunch --datadir='
                            >
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/sickrage\n'>
                            <'#ExecStop=/usr/bin/killall -w SickBeard.py\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/sickrage.service>}
                        )
                      ]
                    )
                    (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Configuring SickRage, please wait...'>)})
                    (C {<systemctl>} {<start>} {<sickrage>})
                    (C {<local>} {<Id.Lit_VarLike 'max_loops='> <10>})
                    (C {<local>} {<Id.Lit_VarLike 'current_loop='> <0>})
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: [
                        (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} 
                          {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </sickrage/config.ini>)} {<Id.Lit_RBracket ']'>}
                        )
                      ]
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                              {(DQ <'Waiting for SickRage to finish 1st run prep, please wait...'>)}
                            )
                            (C {<sleep>} {<1>})
                            (command.DParen
                              child: 
                                (arith_expr.UnaryAssign
                                  op_id: Id.Node_PostDPlus
                                  child: (sh_lhs_expr.Name name:current_loop)
                                )
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_GreatEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$current_loop')}
                                                )
                                              right: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$max_loops')}
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<G_DIETPI-NOTIFY>} {<1>} 
                                      {(DQ <'Timed-out waiting for SickRage to generate config.ini'>)}
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [60743 60757]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (C {<systemctl>} {<stop>} {<sickrage>})
                    (C {<cp>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </sickrage/config.ini>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </sickrage/config.ini.default>}
                    )
                    (C {<wget>} 
                      {<http> <Id.Lit_Other ':'> 
                        <//dietpi.com/downloads/conf/sickrage_dietpi_config.ini>
                      } {<-O>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </sickrage/config.ini>}
                    )
                  ]
                  spids: [60591 60610]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<134>}
                  spids: [60826]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 60883
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=Tonido - DietPi\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'User=root\n'>
                            <'WorkingDirectory=/etc/tonido\n'>
                            <
"ExecStart=/bin/bash -c 'export LD_LIBRARY_PATH=/etc/tonido; export TONIDODIR=/etc/tonido; ./tonidoconsole'\n"
                            >
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/tonido.service>}
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </tonido/sync>}
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </tonido/syncdata>}
                    )
                    (command.Simple
                      words: [
                        {<cp>}
                        {<-R>}
                        {(DQ ($ Id.VSub_DollarName '$HOME')) </tonido>}
                        {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </>}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$HOME')) </tonido>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<ln>} {<-sf>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </tonido>} 
                      {(DQ ($ Id.VSub_DollarName '$HOME')) </tonido>}
                    )
                    (C {<ln>} {<-sf>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </tonido/sync>} {(DQ ($ Id.VSub_DollarName '$HOME')) </TonidoSync>}
                    )
                    (C {<ln>} {<-sf>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </tonido/syncdata>} {(DQ ($ Id.VSub_DollarName '$HOME')) </TonidoSyncData>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<sed>} {<-i>} {(SQ <s/armv6l/armv7l/>)} {</etc/tonido/manifest.xml>})
                            (C {<sed>} {<-i>} {(SQ <s/armv6l/armv7l/>)} 
                              {</etc/tonido/plugins/> <Id.Lit_Star '*'> </manifest.xml>}
                            )
                          ]
                          spids: [60998 61012]
                        )
                      ]
                    )
                  ]
                  spids: [60830 60849]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<113>}
                  spids: [61053]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<local>} 
                      {<Id.Lit_VarLike 'export_options='> 
                        (DQ <'export CHROMIUM_FLAGS='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                          <
'CHROMIUM_FLAGS --no-sandbox --temp-profile --start-maximized --user-data-dir '
                          >
                        )
                      }
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_GreatEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [(C {<echo>} {<0>})]
                                  spids: [61126 61140]
                                )
                              ]
                            )
                          ]
                          spids: [61104 61118]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 21>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{<echo>} {<0>}]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_AndGreat '&>'>
                                  fd: -1
                                  arg_word: {</dev/null>}
                                )
                              ]
                            )
                          ]
                          spids: [61166 61180]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:export_options)
                              op: assign_op.PlusEqual
                              rhs: {(SQ <'--use-gl=egl'>)}
                              spids: [61202]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:export_options)
                          op: assign_op.PlusEqual
                          rhs: {(DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>))}
                          spids: [61213]
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} {</etc/chromium.d>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 61240
                          stdin_parts: [($ Id.VSub_DollarName '$export_options') <'\n'>]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/chromium.d/custom_flags>}
                        )
                      ]
                    )
                    (C {<cp>} {</etc/chromium.d/custom_flags>} 
                      {(DQ ($ Id.VSub_DollarName '$HOME')) </.chromium-browser.init>}
                    )
                    (C {<ln>} {<-sf>} {</usr/share/applications/chromium> <Id.Lit_Star '*'> <.desktop>} 
                      {(DQ ($ Id.VSub_DollarName '$HOME')) </Desktop/chromium.desktop>}
                    )
                  ]
                  spids: [61057 61076]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<126>}
                  spids: [61289]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Banner_Configuration>}) (C {<omv-initsystem>})]
                  spids: [61293 61312]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<129>}
                  spids: [61332]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <"/'mysqli_user'/c "> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'cfg['> <Id.Lit_Other '\\'> <"'mysqli_user"> <Id.Lit_Other '\\'> <"']                 = "> 
                          <Id.Lit_Other '\\'> <"'ompd"> <Id.Lit_Other '\\'> <"';">
                        )
                      } {</var/www/ompd/include/config.inc.php>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <"/'mysqli_password'/c "> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'cfg['> <Id.Lit_Other '\\'> <"'mysqli_password"> <Id.Lit_Other '\\'> <"']                 = "> 
                          <Id.Lit_Other '\\'> <"'"> ($ Id.VSub_DollarName '$GLOBAL_PW') <Id.Lit_Other '\\'> <"';">
                        )
                      } {</var/www/ompd/include/config.inc.php>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <"/'media_dir'/c "> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'cfg['> <Id.Lit_Other '\\'> <"'media_dir"> <Id.Lit_Other '\\'> <"']                 = "> 
                          <Id.Lit_Other '\\'> <"'/var/lib/mpd/music/"> <Id.Lit_Other '\\'> <"';">
                        )
                      } {</var/www/ompd/include/config.inc.php>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <"/'ignore_media_dir_access_error'/c "> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'cfg['> <Id.Lit_Other '\\'> <"'ignore_media_dir_access_error"> <Id.Lit_Other '\\'> 
                          <"']                 = "> <Id.Lit_Other '\\'> <"'true';">
                        )
                      } {</var/www/ompd/include/config.inc.php>}
                    )
                    (C {</DietPi/dietpi/func/create_mysql_db>} {<ompd>} {<ompd>} 
                      {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))}
                    )
                  ]
                  spids: [61336 61355]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<135>}
                  spids: [61467]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<sed>} {<-i>} 
                      {
                        (SQ 
                          <
'/\\<source-password\\>/c\\\\<source-password\\>dietpi\\<\\/source-password\\>'
                          >
                        )
                      } {</etc/icecast2/icecast.xml>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (SQ 
                          <
'/\\<relay-password\\>/c\\\\<relay-password\\>dietpi\\<\\/relay-password\\>'
                          >
                        )
                      } {</etc/icecast2/icecast.xml>}
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'admin_password='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (command.Simple
                                      words: [{<tr>} {<-cd>} {(SQ <'[:alnum:]'>)}]
                                      redirects: [
                                        (redir.Redir
                                          op: <Id.Redir_Less '<'>
                                          fd: -1
                                          arg_word: {</dev/urandom>}
                                        )
                                      ]
                                    )
                                    (C {<fold>} {<-w10>})
                                    (C {<head>} {<-n1>})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      }
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ </> <Id.Lit_Other '\\'> <'<admin-password'> <Id.Lit_Other '\\'> <'>/c'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\\\'>
                          ) <'<admin-password'> <Id.Lit_Other '\\'> <'>'> ($ Id.VSub_DollarName '$admin_password') 
                          <Id.Lit_Other '\\'> <'<'> <Id.Lit_Other '\\'> </admin-password> <Id.Lit_Other '\\'> <'>'>
                        )
                      } {</etc/icecast2/icecast.xml>}
                    )
                    (C {<sed>} {<-i>} {(SQ <'/ENABLE=/c\\ENABLE=true'>)} {</etc/default/icecast2>})
                    (C {<local>} 
                      {<Id.Lit_VarLike 'input_device_index='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {<arecord>} {<-l>})
                                    (C {<grep>} {<-m1>} {(SQ <card>)})
                                    (C {<awk>} {(SQ <'{print $2}'>)})
                                    (C {<sed>} {(SQ <'s/://'>)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      }
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 61706
                          stdin_parts: [
                            <'[general]\n'>
                            <'duration      = 0\n'>
                            <'bufferSecs    = 3\n'>
                            <'reconnect     = yes\n'>
                            <'\n'>
                            <'[input]\n'>
                            <'device        = hw:'>
                            ($ Id.VSub_DollarName '$input_device_index')
                            <',0\n'>
                            <'sampleRate    = 44100\n'>
                            <'bitsPerSample = 16\n'>
                            <'channel       = 1\n'>
                            <'\n'>
                            <'[icecast2-0]\n'>
                            <'bitrateMode   = vbr\n'>
                            <'format        = vorbis\n'>
                            <'quality       = 0.8\n'>
                            <'server        = dietpi\n'>
                            <'port          = 8000\n'>
                            <'password      = dietpi\n'>
                            <'mountPoint    = DietPi\n'>
                            <'name          = DietPi\n'>
                            <'description   = DarkIce on DietPi\n'>
                            <'url           = http://localhost\n'>
                            <'genre         = none\n'>
                            <'public        = no\n'>
                            <'#localDumpFile = '>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/darkice_recording.ogg\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/darkice.cfg>}
                        )
                      ]
                    )
                    (C {<rm>} {</etc/init.d/darkice>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 61746
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=DarkIce - DietPi\n'>
                            <'After=icecast2.service\n'>
                            <'Requires=icecast2.service\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'ExecStart='>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: 
                                (command.CommandList
                                  children: [(C {<which>} {<darkice>})]
                                )
                            )
                            <'\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/darkice.service>}
                        )
                      ]
                    )
                  ]
                  spids: [61471 61490]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<131>}
                  spids: [61757]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<local>} 
                      {<Id.Lit_VarLike 'fp_java_binary='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: (command.CommandList children:[(C {<which>} {<java>})])
                        )
                      }
                    )
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </blynk>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CONFIG_FILE_URL_ADDRESS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'https://raw.githubusercontent.com/blynkkk/blynk-server/master/server/core/src/main/resources/server.properties'
                                >
                              )
                            }
                          spids: [61813]
                        )
                      ]
                    )
                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$CONFIG_FILE_URL_ADDRESS'))} {<-O>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </blynk/server.properties>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/data.folder=/c'> <Id.Lit_Other '\\'> <'data.folder='> 
                          ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </blynk>
                        )
                      } {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </blynk/server.properties>}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 61877
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=Blynk Server\n'>
                            <'After=network.target\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'ExecStart='>
                            ($ Id.VSub_DollarName '$fp_java_binary')
                            <' -jar /etc/blynkserver/server.jar -serverConfig '>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/blynk/server.properties\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/blynkserver.service>}
                        )
                      ]
                    )
                  ]
                  spids: [61761 61780]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<136>}
                  spids: [61888]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {</DietPi/dietpi/func/dietpi-set_hardware>} {<rpi-camera>} {<enable>})
                          ]
                          spids: [61923 61937]
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} {</etc/motioneye>})
                    (C {<cp>} {</usr/local/share/motioneye/extra/motioneye.conf.sample>} 
                      {</etc/motioneye/motioneye.conf>}
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </motioneye>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/^media_path/c'> <Id.Lit_Other '\\'> <'media_path '> 
                          ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </motioneye>
                        )
                      } {</etc/motioneye/motioneye.conf>}
                    )
                    (C {<cp>} {</usr/local/share/motioneye/extra/motioneye.systemd-unit-local>} 
                      {</etc/systemd/system/motioneye.service>}
                    )
                  ]
                  spids: [61892 61911]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<137>}
                  spids: [62014]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<cupsctl>} {<--remote-admin>})
                    (C {<usermod>} {<-a>} {<-G>} {<lpadmin>} {<root>})
                  ]
                  spids: [62018 62037]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<138>}
                  spids: [62074]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 62127
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=VirtualHere DietPi service\n'>
                            <'After=local-fs.target\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'\n'>
                            <'ExecStart=/etc/vhusbd/vhusbd -r /var/log/virtualhere.log\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/virtualhere.service>}
                        )
                      ]
                    )
                    (C {<systemctl>} {<daemon-reload>})
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <"ServerName='DietPi'">)}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/vhusbd/config.ini>}
                        )
                      ]
                    )
                  ]
                  spids: [62078 62097]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<139>}
                  spids: [62157]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 62208
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=sabnzbd DietPi\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <
'ExecStart=/usr/bin/python /etc/sabnzbd/SABnzbd.py -f /etc/sabnzbd/sabnzbd.ini\n'
                            >
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/sabnzbd.service>}
                        )
                      ]
                    )
                    (C {<systemctl>} {<daemon-reload>})
                    (command.Simple
                      words: [{<rm>} {</etc/sabnzbd/sabnzbd.ini>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<systemctl>} {<start>} {<sabnzbd>})
                    (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Generating initial config, please wait...'>)})
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: [
                        (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {</etc/sabnzbd/sabnzbd.ini>} 
                          {<Id.Lit_RBracket ']'>}
                        )
                      ]
                      body: (command.DoGroup children:[(C {<sleep>} {<1>})])
                    )
                    (C {<sleep>} {<2>})
                    (C {<systemctl>} {<stop>} {<sabnzbd>})
                    (C {<sleep>} {<2>})
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/^download_dir =/c'> <Id.Lit_Other '\\'> <'download_dir = '> 
                          ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </downloads/incomplete>
                        )
                      } {</etc/sabnzbd/sabnzbd.ini>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/^complete_dir =/c'> <Id.Lit_Other '\\'> <'complete_dir = '> 
                          ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </downloads/complete>
                        )
                      } {</etc/sabnzbd/sabnzbd.ini>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/^nzb_backup_dir =/c'> <Id.Lit_Other '\\'> <'nzb_backup_dir = '> 
                          ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </downloads/sabnzbd_nzb_backup>
                        )
                      } {</etc/sabnzbd/sabnzbd.ini>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/^admin_dir =/c'> <Id.Lit_Other '\\'> <'admin_dir = '> 
                          ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </downloads/sabnzbd_admin>
                        )
                      } {</etc/sabnzbd/sabnzbd.ini>}
                    )
                    (C {<sed>} {<-i>} {(DQ <'/^log_dir =/c'> <Id.Lit_Other '\\'> <'log_dir = /var/log'>)} 
                      {</etc/sabnzbd/sabnzbd.ini>}
                    )
                    (C {<sed>} {<-i>} {(DQ <'/^log_level =/c'> <Id.Lit_Other '\\'> <'log_level = 0'>)} 
                      {</etc/sabnzbd/sabnzbd.ini>}
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'/^refresh_rate =/c'> <Id.Lit_Other '\\'> <'refresh_rate = 2'>)} {</etc/sabnzbd/sabnzbd.ini>}
                    )
                    (C {<sed>} {<-i>} {(DQ <'/^host =/c'> <Id.Lit_Other '\\'> <'host = 0.0.0.0'>)} 
                      {</etc/sabnzbd/sabnzbd.ini>}
                    )
                  ]
                  spids: [62161 62180]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<141>}
                  spids: [62428]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 62485
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=spotify-connect-web\n'>
                            <'After=sound.target\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'WorkingDirectory='>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/spotify-connect-web\n'>
                            <'ExecStart='>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/spotify-connect-web/spotify-connect-web\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/spotify-connect-web.service>}
                        )
                      ]
                    )
                  ]
                  spids: [62432 62451]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<142>}
                  spids: [62496]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<cp>} {</etc/couchpotato/init/ubuntu.default>} {</etc/default/couchpotato>})
                    (C {<sed>} {<-i>} {(DQ <'/CP_USER=/c'> <Id.Lit_Other '\\'> <'CP_USER=root'>)} 
                      {</etc/default/couchpotato>}
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'/CP_HOME=/c'> <Id.Lit_Other '\\'> <'CP_HOME=/etc/couchpotato'>)} {</etc/default/couchpotato>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/CP_DATA=/c'> <Id.Lit_Other '\\'> <'CP_DATA='> 
                          ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </couchpotato>
                        )
                      } {</etc/default/couchpotato>}
                    )
                    (C {<mkdir>} {<-p>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </couchpotato>}
                    )
                    (C {<cp>} {</etc/couchpotato/init/ubuntu>} {</etc/init.d/couchpotato>})
                  ]
                  spids: [62500 62519]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<143>}
                  spids: [62607]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<Download_Test_Media>})
                    (C {</DietPi/dietpi/func/create_mysql_db>} {<koel>} {<koel>} 
                      {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))}
                    )
                    (C {<cd>} {</var/www/koel>})
                    (C {<sed>} {<-i>} {(SQ <'/DB_CONNECTION=/c\\DB_CONNECTION=mysql'>)} {<.env>})
                    (C {<sed>} {<-i>} {(SQ <'/DB_HOST=/c\\DB_HOST=127.0.0.1'>)} {<.env>})
                    (C {<sed>} {<-i>} {(SQ <'/DB_DATABASE=/c\\DB_DATABASE=koel'>)} {<.env>})
                    (C {<sed>} {<-i>} {(SQ <'/DB_USERNAME=/c\\DB_USERNAME=koel'>)} {<.env>})
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/DB_PASSWORD=/c'> <Id.Lit_Other '\\'> <'DB_PASSWORD='> 
                          ($ Id.VSub_DollarName '$GLOBAL_PW')
                        )
                      } {<.env>}
                    )
                    (C {<sed>} {<-i>} {(SQ <'/ADMIN_EMAIL=/c\\ADMIN_EMAIL=dietpi@dietpi.com'>)} {<.env>})
                    (C {<sed>} {<-i>} {(SQ <'/ADMIN_NAME=/c\\ADMIN_NAME=admin'>)} {<.env>})
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/ADMIN_PASSWORD=/c'> <Id.Lit_Other '\\'> <'ADMIN_PASSWORD='> 
                          ($ Id.VSub_DollarName '$GLOBAL_PW')
                        )
                      } {<.env>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/FFMPEG_PATH=/c'> <Id.Lit_Other '\\'> <'FFMPEG_PATH='> 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            command_list: (command.CommandList children:[(C {<which>} {<ffmpeg>})])
                          )
                        )
                      } {<.env>}
                    )
                    (C {<php>} {<artisan>} {<koel> <Id.Lit_Other ':'> <init>})
                    (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 62825
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=Koel\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'User=root\n'>
                            <'WorkingDirectory=/var/www/koel\n'>
                            <'ExecStart='>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: (command.CommandList children:[(C {<which>} {<php>})])
                            )
                            <' /var/www/koel/artisan serve --host 0.0.0.0\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/koel.service>}
                        )
                      ]
                    )
                  ]
                  spids: [62611 62630]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<144>}
                  spids: [62836]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 62892
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=Sonarr (NzbDrone) Daemon\n'>
                            <'After=network.target\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'User=root\n'>
                            <'Restart=on-failure\n'>
                            <'RestartSec=5\n'>
                            <'Type=simple\n'>
                            <
'ExecStart=/usr/bin/mono --debug /opt/NzbDrone/NzbDrone.exe -nobrowser\n'
                            >
                            <'TimeoutStopSec=20\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/sonarr.service>}
                        )
                      ]
                    )
                  ]
                  spids: [62840 62859]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<145>}
                  spids: [62903]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 62959
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=Radarr Daemon\n'>
                            <'After=network.target\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'User=root\n'>
                            <'Restart=on-failure\n'>
                            <'RestartSec=5\n'>
                            <'Type=simple\n'>
                            <'ExecStart=/usr/bin/mono --debug /opt/Radarr/Radarr.exe -nobrowser\n'>
                            <'TimeoutStopSec=20\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/radarr.service>}
                        )
                      ]
                    )
                  ]
                  spids: [62907 62926]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<146>}
                  spids: [62970]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </plexpy>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 63037
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=PlexPy - Stats for Plex Media Server usage\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <
'ExecStart=/opt/plexpy/PlexPy.py --quiet --daemon --nolaunch --config /opt/plexpy/config.ini --datadir '
                            >
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/plexpy\n'>
                            <'GuessMainPID=no\n'>
                            <'Type=forking\n'>
                            <'User=root\n'>
                            <'Group=root\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/plexpy.service>}
                        )
                      ]
                    )
                  ]
                  spids: [62974 62993]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<147>}
                  spids: [63048]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 63104
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=Jackett Daemon\n'>
                            <'After=network.target\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'User=root\n'>
                            <'Restart=always\n'>
                            <'RestartSec=5\n'>
                            <'Type=simple\n'>
                            <'ExecStart=/usr/bin/mono --debug /opt/jackett/JackettConsole.exe\n'>
                            <'TimeoutStopSec=20\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/jackett.service>}
                        )
                      ]
                    )
                  ]
                  spids: [63052 63071]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<149>}
                  spids: [63115]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/MainDir=/c'> <Id.Lit_Other '\\'> <'MainDir='> 
                          ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </downloads>
                        )
                      } {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget/nzbget.conf>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/DestDir=/c'> <Id.Lit_Other '\\'> <'DestDir='> 
                          ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </downloads/complete>
                        )
                      } {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget/nzbget.conf>}
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'/LogFile=/c'> <Id.Lit_Other '\\'> <'LogFile=/var/log/nzbget.log'>)} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget/nzbget.conf>}
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'/ControlUsername=/c'> <Id.Lit_Other '\\'> <'ControlUsername=root'>)} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget/nzbget.conf>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/ControlPassword=/c'> <Id.Lit_Other '\\'> <'ControlPassword='> 
                          ($ Id.VSub_DollarName '$GLOBAL_PW')
                        )
                      } {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget/nzbget.conf>}
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'/Server1.Cipher=/c'> <Id.Lit_Other '\\'> <'Server1.Cipher=RC4-MD5'>)} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget/nzbget.conf>}
                    )
                    (C {<sed>} {<-i>} {(DQ <'/CrcCheck=/c'> <Id.Lit_Other '\\'> <'CrcCheck=no'>)} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget/nzbget.conf>}
                    )
                    (C {<sed>} {<-i>} {(DQ <'/ParScan=/c'> <Id.Lit_Other '\\'> <'ParScan=limited'>)} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget/nzbget.conf>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/ParThreads=/c'> <Id.Lit_Other '\\'> <'ParThreads='> 
                          ($ Id.VSub_DollarName '$G_HW_CPU_CORES')
                        )
                      } {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget/nzbget.conf>}
                    )
                    (C {<sed>} {<-i>} {(DQ <'/DebugTarget=/c'> <Id.Lit_Other '\\'> <'DebugTarget=none'>)} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget/nzbget.conf>}
                    )
                    (C {<sed>} {<-i>} {(DQ <'/CrashTrace=/c'> <Id.Lit_Other '\\'> <'CrashTrace=no'>)} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget/nzbget.conf>}
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'/DetailTarget=/c'> <Id.Lit_Other '\\'> <'DetailTarget=none'>)} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget/nzbget.conf>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/ParBuffer=/c'> <Id.Lit_Other '\\'> <'ParBuffer='> 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            command_list: 
                              (command.CommandList
                                children: [(C {<Optimize_BitTorrent>} {<0>})]
                              )
                          )
                        )
                      } {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget/nzbget.conf>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/ArticleCache=/c'> <Id.Lit_Other '\\'> <'ArticleCache='> 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            command_list: 
                              (command.CommandList
                                children: [(C {<Optimize_BitTorrent>} {<0>})]
                              )
                          )
                        )
                      } {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget/nzbget.conf>}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/WriteBuffer=/c'> <Id.Lit_Other '\\'> <'WriteBuffer='> 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            command_list: 
                              (command.CommandList
                                children: [(C {<Optimize_BitTorrent>} {<0>})]
                              )
                          )
                        )
                      } {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget/nzbget.conf>}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 63443
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=NZBget\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=forking\n'>
                            <'User=root\n'>
                            <'WorkingDirectory='>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/nzbget\n'>
                            <'ExecStart='>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/nzbget/nzbget -D\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/nzbget.service>}
                        )
                      ]
                    )
                  ]
                  spids: [63119 63138]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<155>}
                  spids: [63454]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 63508
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=HTPC Manager\n'>
                            <'After=network.target\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'ExecStart=/usr/bin/python '>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/htpc-manager/Htpc.py\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/htpc-manager.service>}
                        )
                      ]
                    )
                  ]
                  spids: [63458 63477]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<153>}
                  spids: [63519]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 63577
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=OctoPrint\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'User=root\n'>
                            <'ExecStart='>
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: 
                                (command.CommandList
                                  children: [(C {<which>} {<octoprint>})]
                                )
                            )
                            <' serve --iknowwhatimdoing\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/octoprint.service>}
                        )
                      ]
                    )
                  ]
                  spids: [63523 63542]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<154>}
                  spids: [63588]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 63646
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=Roon Server\n'>
                            <'After=network.target\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'User=root\n'>
                            <'Environment=ROON_DATAROOT='>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/roonserver\n'>
                            <'ExecStart='>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/roonserver/start.sh\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/roonserver.service>}
                        )
                      ]
                    )
                  ]
                  spids: [63592 63611]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<156>}
                  spids: [63657]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </steam>})
                    (C {<mv>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.steam/> <Id.Lit_Star '*'>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </steam/>}
                    )
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.steam>})
                    (C {<ln>} {<-sf>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </steam>} 
                      {(DQ ($ Id.VSub_DollarName '$HOME')) </.steam>}
                    )
                  ]
                  spids: [63661 63680]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<157>}
                  spids: [63747]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 63801
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=Home Assistant\n'>
                            <'After=network.target\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'User=homeassistant\n'>
                            <'ExecStart=/srv/homeassistant/homeassistant-start.sh\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                            <'\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/home-assistant.service>}
                        )
                      ]
                    )
                    (C {<mkdir>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </homeassistant>})
                    (C {<ln>} {<-sf>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </homeassistant>} {</home/homeassistant/.homeassistant>}
                    )
                  ]
                  spids: [63751 63770]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<158>}
                  spids: [63849]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 63912
                          stdin_parts: [
                            <'# Default file path\n'>
                            <'MINIO_VOLUMES='>
                            <Id.Right_DoubleQuote '"'>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            </minio-data>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'# Use if you want to run Minio on a custom port.\n'>
                            <'# MINIO_OPTS='>
                            <Id.Right_DoubleQuote '"'>
                            <'--address :9199'>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'# Access Key of the server.\n'>
                            <'# MINIO_ACCESS_KEY=Server-Access-Key\n'>
                            <'# Secret key of the server.\n'>
                            <'# MINIO_SECRET_KEY=Server-Secret-Key\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {</etc/default/minio>}
                        )
                      ]
                    )
                    (C {<systemctl>} {<enable>} {<minio.service>})
                  ]
                  spids: [63853 63872]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<162>}
                  spids: [63935]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </docker-data>})
                    (C {<systemctl>} {<stop>} {<docker.service>})
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/ExecStart='> <Id.Lit_Other '\\'> </usr> <Id.Lit_Other '\\'> </bin> 
                          <Id.Lit_Other '\\'> </dockerd/c> <Id.Lit_Other '\\'> <'ExecStart='> <Id.Lit_Other '\\'> </usr> <Id.Lit_Other '\\'> </bin> 
                          <Id.Lit_Other '\\'> <'/dockerd -g '> ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') <Id.Lit_Other '\\'> 
                          <'/docker-data -H fd:'> <Id.Lit_Other '\\'> </> <Id.Lit_Other '\\'> </>
                        )
                      } {</lib/systemd/system/docker.service>}
                    )
                  ]
                  spids: [63939 63958]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<161>}
                  spids: [64040]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} 
                                  {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                                    </fuguhub-data/>
                                  } {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<mkdir>} 
                              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </fuguhub-data/>}
                            )
                            (C {<mv>} {</home/bd/disk/> <Id.Lit_Star '*'>} 
                              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </fuguhub-data/>}
                            )
                            (C {<rm>} {<-r>} {</home/bd/disk>})
                            (C {<ln>} {<-s>} 
                              {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </fuguhub-data>} {</home/bd/disk>}
                            )
                          ]
                          spids: [64079 64095]
                        )
                      ]
                      else_action: [
                        (C {<rm>} {<-r>} {</home/bd/disk>})
                        (C {<ln>} {<-s>} 
                          {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </fuguhub-data>} {</home/bd/disk>}
                        )
                      ]
                    )
                  ]
                  spids: [64044 64063]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<164>}
                  spids: [64202]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<wget>} {<-O>} {</usr/local/bin/nukkit/nukkit.yml>} 
                      {<https> <Id.Lit_Other ':'> 
                        <//github.com/Nukkit/Languages/raw/master/eng/nukkit.yml>
                      }
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 64272
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=nukkit\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'WorkingDirectory=/usr/local/bin/nukkit\n'>
                            <
"ExecStart=/bin/bash -c 'java -jar /usr/local/bin/nukkit/nukkit.jar'\n"
                            >
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/nukkit.service>}
                        )
                      ]
                    )
                  ]
                  spids: [64206 64225]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<165>}
                  spids: [64283]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 64348
                          stdin_parts: [
                            <'\n'>
                            <'[Unit]\n'>
                            <'Description=Gitea (Git with a cup of tea)\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'User=dietpi\n'>
                            <'WorkingDirectory='>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/gitea/gitea-repositories\n'>
                            <'ExecStart='>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/gitea/gitea web\n'>
                            <'Environment=USER=dietpi HOME='>
                            ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')
                            <'/gitea\n'>
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/gitea.service>}
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} {</var/log/gitea>})
                    (C {<chown>} {<-R>} {<dietpi> <Id.Lit_Other ':'> <dietpi>} {</var/log/gitea>})
                    (C {</DietPi/dietpi/func/create_mysql_db>} {<gitea>} {<gitea>} 
                      {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))}
                    )
                  ]
                  spids: [64287 64306]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<159>}
                  spids: [64399]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: 
                                                  (arith_expr.ArithWord
                                                    w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                                  )
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 160>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {</DietPi/dietpi/func/create_mysql_db>} {<allo_db>} {<allo_db>} 
                      {(DQ ($ Id.VSub_DollarName '$GLOBAL_PW'))}
                    )
                    (command.Simple
                      words: [{<mysql>} {<allo_db>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Less '<'>
                          fd: -1
                          arg_word: {</var/www/allo_db.sql>}
                        )
                      ]
                    )
                    (C {<rm>} {</var/www/allo_db.sql>})
                    (C {<rm>} {</var/www/index.htm> <Id.Lit_Star '*'>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 64522
                          stdin_parts: [
                            <'<?php\n'>
                            <'/* Redirect to allo web interface */\n'>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <'host  = '>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <"_SERVER['HTTP_HOST'];\n">
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <'uri   = rtrim(dirname('>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <"_SERVER['PHP_SELF']), '/">
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\\\'>
                            )
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\\\'>
                            )
                            <"');\n">
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <"extra = 'index.php';\n">
                            <'header('>
                            <Id.Right_DoubleQuote '"'>
                            <'Location: http://'>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <host>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <uri/allo/public/>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <extra>
                            <Id.Right_DoubleQuote '"'>
                            <');\n'>
                            <'exit;\n'>
                            <'?>\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</var/www/index.php>}
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 70>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{<cat>}]
                              redirects: [
                                (redir.HereDoc
                                  op: <Id.Redir_DLess '<<'>
                                  fd: -1
                                  here_begin: {<_EOF_>}
                                  here_end_span_id: 64577
                                  stdin_parts: [
                                    <'[Unit]\n'>
                                    <'Description=Sparky auto detect and set onboard ETH/USB ETH\n'>
                                    <'After=network.target networking.service\n'>
                                    <'\n'>
                                    <'[Service]\n'>
                                    <'Type=simple\n'>
                                    <'RemainAfterExit=yes\n'>
                                    <
"ExecStart=/bin/bash -c '/usr/local/bin/sparky_eth_controller.sh'\n"
                                    >
                                    <'\n'>
                                    <'[Install]\n'>
                                    <'WantedBy=multi-user.target\n'>
                                  ]
                                )
                                (redir.Redir
                                  op: <Id.Redir_Great '>'>
                                  fd: -1
                                  arg_word: {</etc/systemd/system/sparky_eth_controller.service>}
                                )
                              ]
                            )
                            (C {<systemctl>} {<daemon-reload>})
                            (C {<systemctl>} {<enable>} {<sparky_eth_controller.service>})
                            (command.Simple
                              words: [{<cat>}]
                              redirects: [
                                (redir.HereDoc
                                  op: <Id.Redir_DLess '<<'>
                                  fd: -1
                                  here_begin: {<_EOF_>}
                                  here_end_span_id: 64631
                                  stdin_parts: [
                                    <'#!/bin/bash\n'>
                                    <
'#We need to wait until USB eth is established on USB bus. This takes much longer than onboard init and network.target network-pre.target\n'
                                    >
                                    <'sleep 20\n'>
                                    <'# - Set USB ETH if found\n'>
                                    <'if (( '>
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                    )
                                    <"(ifconfig -a | grep -ci -m1 'eth1') )); then\n">
                                    <'\n'>
                                    <'\techo -e '>
                                    <Id.Right_DoubleQuote '"'>
                                    <'blacklist ethernet'>
                                    <Id.Right_DoubleQuote '"'>
                                    <' > /etc/modprobe.d/disable_sparkysbc_ethernet.conf\n'>
                                    <
'\trm /etc/udev/rules.d/70-persistent-net.rules &> /dev/null\n'
                                    >
                                    <
'\trm /etc/udev/rules.d/70-persistant-net.rules &> /dev/null\n'
                                    >
                                    <'\treboot\n'>
                                    <'\n'>
                                    <'# - Enable onboard ETH if no adapter found\n'>
                                    <'elif (( ! '>
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                    )
                                    <"(ifconfig -a | grep -ci -m1 'eth0') )); then\n">
                                    <'\n'>
                                    <
'\trm /etc/modprobe.d/disable_sparkysbc_ethernet.conf &> /dev/null\n'
                                    >
                                    <
'\trm /etc/udev/rules.d/70-persistent-net.rules &> /dev/null\n'
                                    >
                                    <
'\trm /etc/udev/rules.d/70-persistant-net.rules &> /dev/null\n'
                                    >
                                    <'\treboot\n'>
                                    <'\n'>
                                    <'fi\n'>
                                  ]
                                )
                                (redir.Redir
                                  op: <Id.Redir_Great '>'>
                                  fd: -1
                                  arg_word: {</usr/local/bin/sparky_eth_controller.sh>}
                                )
                              ]
                            )
                            (C {<chmod>} {<Id.Lit_Other '+'> <x>} 
                              {</usr/local/bin/sparky_eth_controller.sh>}
                            )
                          ]
                          spids: [64533 64547]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 160>})
                            )
                          op: assign_op.Equal
                          rhs: {<2>}
                          spids: [64651]
                        )
                      ]
                    )
                  ]
                  spids: [64406 64439]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<163>}
                  spids: [64668]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<cp>} {</DietPi/dietpi/conf/gmrender.service>} 
                      {</etc/systemd/system/gmrender.service>}
                    )
                  ]
                  spids: [64672 64691]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<166>}
                  spids: [64715]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<mkdir>} {<-p>} {</var/lib/dietpi/dietpi-software/installed/pi-spc>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 64829
                          stdin_parts: [
                            <'#!/bin/bash\n'>
                            <'#DietPi version\n'>
                            <'PATH=/usr/bin:/home/pi/wiringPi/gpio:/usr/local/bin\n'>
                            <'\n'>
                            <'TICKRATE=0.25\n'>
                            <'\n'>
                            <'echo -e '>
                            <Id.Right_DoubleQuote '"'>
                            <'Audiophonics Shutdown script starting...'>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'echo -e '>
                            <Id.Right_DoubleQuote '"'>
                            <'Asserting pins : '>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'echo -e '>
                            <Id.Right_DoubleQuote '"'>
                            <'ShutDown : GPIO17=in, Low'>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'echo -e '>
                            <Id.Right_DoubleQuote '"'>
                            <'BootOK   : GPIO22=out, High'>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'echo -e '>
                            <Id.Right_DoubleQuote '"'>
                            <'SoftSD   : GPIO04=out, Low'>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'\n'>
                            <'gpio -g mode 04 out\n'>
                            <'gpio -g write 04 0\n'>
                            <'gpio -g mode 17 in\n'>
                            <'gpio -g write 17 0\n'>
                            <'gpio -g mode 22 out\n'>
                            <'gpio -g write 22 1\n'>
                            <'\n'>
                            <'while true\n'>
                            <'do\n'>
                            <'\n'>
                            <'\tif (( '>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <'(gpio -g read 17) == 1 )); then\n'>
                            <'\n'>
                            <'\t\tG_DIETPI-NOTIFY 0 '>
                            <Id.Right_DoubleQuote '"'>
                            <'AudioPhonics Pi-SPC: Power off requested. Shutting down system.'>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'\t\tsudo poweroff\n'>
                            <'\t\t#sudo shutdown -h -P now\n'>
                            <'\t\tbreak\n'>
                            <'\n'>
                            <'\tfi\n'>
                            <'\n'>
                            <'\tsleep '>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <'TICKRATE\n'>
                            <'\n'>
                            <'done\n'>
                            <'\n'>
                            <'exit 0\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</var/lib/dietpi/dietpi-software/installed/pi-spc/sds.sh>}
                        )
                      ]
                    )
                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} 
                      {</var/lib/dietpi/dietpi-software/installed/pi-spc/sds.sh>}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 64864
                          stdin_parts: [
                            <'[Unit]\n'>
                            <'Description=AudioPhonics Pi-SPC\n'>
                            <'\n'>
                            <'[Service]\n'>
                            <'Type=simple\n'>
                            <'StandardOutput=tty\n'>
                            <'User=root\n'>
                            <'\n'>
                            <
"ExecStart=/bin/bash -c '/var/lib/dietpi/dietpi-software/installed/pi-spc/sds.sh'\n"
                            >
                            <'\n'>
                            <'[Install]\n'>
                            <'WantedBy=multi-user.target\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/systemd/system/pi-spc.service>}
                        )
                      ]
                    )
                  ]
                  spids: [64719 64738]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<168>}
                  spids: [64875]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {</DietPi/dietpi/func/dietpi-set_software>} {<useradd>} {<pi>})
                    (command.Simple
                      words: [{<echo>} {<-e>} {(SQ <'www-data\\tALL=(ALL) NOPASSWD: ALL'>)}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {</etc/sudoers>}
                        )
                      ]
                    )
                    (C {<mkdir>} {<-p>} {</var/local/www/commandw>})
                    (C {<mkdir>} {<-p>} {</var/local/www/cssw>})
                    (C {<mkdir>} {<-p>} {</var/local/www/jsw>})
                    (C {<mkdir>} {<-p>} {</var/local/www/imagesw>})
                    (C {<mkdir>} {<-p>} {</var/local/www/imagesw/toggle>})
                    (C {<mkdir>} {<-p>} {</var/local/www/db>})
                    (C {<mkdir>} {<-p>} {</var/local/www/templatesw>})
                    (C {<chmod>} {<-R>} {<0755>} {</var/local/www>})
                    (C {<mkdir>} {<-p>} {</var/lib/mpd/music/RADIO>})
                    (C {<mkdir>} {<-p>} {</mnt/NAS>})
                    (C {<mkdir>} {<-p>} {</mnt/SDCARD>})
                    (C {<mkdir>} {<-p>} {</mnt/UPNP>})
                    (C {<mkdir>} {</media>})
                    (C {<ln>} {<-s>} {</mnt/NAS>} {</var/lib/mpd/music/NAS>})
                    (C {<ln>} {<-s>} {</mnt/SDCARD>} {</var/lib/mpd/music/SDCARD>})
                    (C {<ln>} {<-s>} {</media>} {</var/lib/mpd/music/USB>})
                    (C {<ln>} {<-s>} {</var/lib/mpd/music>} {</var/www/mpdmusic>})
                    (C {<touch>} {</var/log/moode.log>})
                    (C {<chmod>} {<0666>} {</var/log/moode.log>})
                    (C {<touch>} {</var/log/php_errors.log>})
                    (C {<chmod>} {<0666>} {</var/log/php_errors.log>})
                    (C {<cp>} {<./rel-stretch/mpd/sticker.sql>} {</var/lib/mpd>})
                    (C {<cp>} {<-r>} {(DQ <'./rel-stretch/other/sdcard/Stereo Test/'>)} 
                      {</var/lib/mpd/music/SDCARD>}
                    )
                    (C {<cp>} {<./rel-stretch/network/wpa_supplicant.conf.default>} 
                      {</etc/wpa_supplicant/wpa_supplicant.conf>}
                    )
                    (C {<cp>} {<./rel-stretch/network/dhcpcd.conf.default>} {</etc/dhcpcd.conf>})
                    (C {<cp>} {<./rel-stretch/network/hostapd.conf.default>} 
                      {</etc/hostapd/hostapd.conf>}
                    )
                    (C {<cp>} {<./rel-stretch/var/local/www/db/moode-sqlite3.db.default>} 
                      {</var/local/www/db/moode-sqlite3.db>}
                    )
                    (C {<chmod>} {<0777>} {</var/lib/mpd/music/RADIO>})
                    (C {<chmod>} {<-R>} {<0777>} {</var/local/www/db>})
                    (C {<rm>} {</etc/update-motd.d/10-uname>})
                    (C {<rm>} {</var/lib/mpd/music/RADIO/> <Id.Lit_Star '*'>})
                    (C {<rm>} {</var/www/images/radio-logos/> <Id.Lit_Star '*'>})
                    (C {<cp>} {<./rel-stretch/mpd/RADIO/> <Id.Lit_Star '*'>} 
                      {</var/lib/mpd/music/RADIO>}
                    )
                    (C {<cp>} {<./rel-stretch/mpd/playlists/> <Id.Lit_Star '*'>} 
                      {</var/lib/mpd/playlists>}
                    )
                    (C {<cp>} {<-r>} {<./rel-stretch/etc/> <Id.Lit_Star '*'>} {</etc/>})
                    (C {<cp>} {<-r>} {<./rel-stretch/home/> <Id.Lit_Star '*'>} {</home/pi/>})
                    (C {<cp>} {<-r>} {<./rel-stretch/home/.dircolors>} {</home/pi/>})
                    (C {<cp>} {<-r>} {<./rel-stretch/lib/> <Id.Lit_Star '*'>} {</lib/>})
                    (C {<cp>} {<-r>} {<./rel-stretch/usr/> <Id.Lit_Star '*'>} {</usr/>})
                    (C {<cp>} {<-r>} {<./rel-stretch/var/> <Id.Lit_Star '*'>} {</var/>})
                    (C {<cp>} {<-r>} {<./rel-stretch/www/> <Id.Lit_Star '*'>} {</var/www/>})
                    (C {<chmod>} {<0755>} {</var/www/command/> <Id.Lit_Star '*'>})
                    (C {</var/www/command/util.sh>} {(DQ <emerald>)} {(DQ <2ecc71>)} {(DQ <27ae60>)})
                    (C {<sqlite3>} {</var/local/www/db/moode-sqlite3.db>} 
                      {(DQ <"update cfg_system set value='Emerald' where param='themecolor'">)}
                    )
                    (C {<chmod>} {<0755>} {</etc/init.d/mpd>})
                    (C {<chmod>} {<0644>} {</lib/systemd/system/mpd.service>})
                    (C {<chmod>} {<0644>} {</lib/systemd/system/mpd.socket>})
                    (C {<chmod>} {<0666>} {</etc/bluealsaaplay.conf>})
                    (C {<chmod>} {<0644>} 
                      {</etc/systemd/system/bluealsa-aplay> <Id.Lit_Other '@'> <.service>}
                    )
                    (C {<chmod>} {<0644>} {</etc/systemd/system/bluealsa.service>})
                    (C {<chmod>} {<0644>} {</lib/systemd/system/bluetooth.service>})
                    (C {<chmod>} {<0755>} {</usr/local/bin/a2dp-autoconnect>})
                    (C {<chmod>} {<0644>} {</lib/systemd/system/rotenc.service>})
                    (C {<chmod>} {<0644>} {</etc/udev/rules.d/> <Id.Lit_Star '*'>})
                    (C {<systemctl>} {<daemon-reload>})
                    (C {<systemctl>} {<disable>} {<mpd.socket>})
                    (C {<systemctl>} {<disable>} {<rotenc.service>})
                    (C {<chmod>} {<0644>} {</lib/systemd/system/squeezelite-armv6l.service>})
                    (C {<chmod>} {<0644>} {</lib/systemd/system/squeezelite-armv7l.service>})
                    (C {<systemctl>} {<disable>} {<squeezelite-armv6l>})
                    (C {<systemctl>} {<disable>} {<squeezelite-armv7l>})
                    (C {<chmod>} {<0644>} {</lib/systemd/system/upmpdcli.service>})
                    (C {<systemctl>} {<disable>} {<upmpdcli.service>})
                    (C {<chmod>} {<0777>} {</var/local/www/playhistory.log>})
                    (C {<chmod>} {<0777>} {</var/local/www/currentsong.txt>})
                    (C {<touch>} {</var/local/www/libcache.json>})
                    (C {<chmod>} {<0777>} {</var/local/www/libcache.json>})
                    (C {<chmod>} {<0755>} {</usr/local/bin/alsaequal.bin>})
                    (C {<chown>} {<mpd> <Id.Lit_Other ':'> <audio>} {</usr/local/bin/alsaequal.bin>})
                    (C {<rm>} {</usr/share/alsa/alsa.conf.d/equal.conf>})
                    (C {<mpc>} {<enable>} {<only>} {<1>})
                    (C {<rm>} {</var/www/index.h> <Id.Lit_Star '*'>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 65771
                          stdin_parts: [
                            <'#!/bin/bash\n'>
                            <'#Precaution: Wait for DietPi Ramdisk to finish\n'>
                            <'while [ ! -f /DietPi/.ramdisk ]\n'>
                            <'do\n'>
                            <'\n'>
                            <'    G_DIETPI-NOTIFY 2 '>
                            <Id.Right_DoubleQuote '"'>
                            <'Waiting for DietPi-RAMDISK to finish mounting DietPi to RAM...'>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'    sleep 1\n'>
                            <'\n'>
                            <'done\n'>
                            <'\n'>
                            <'echo -e '>
                            <Id.Right_DoubleQuote '"'>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <"(cat /proc/uptime | awk '{print ">
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <"1}') Seconds">
                            <Id.Right_DoubleQuote '"'>
                            <' > /var/log/boottime\n'>
                            <'if (( '>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <'(cat /DietPi/dietpi/.install_stage) == 1 )); then\n'>
                            <'\n'>
                            <'    /DietPi/dietpi/dietpi-services start\n'>
                            <'\n'>
                            <'fi\n'>
                            <'/DietPi/dietpi/dietpi-banner 0\n'>
                            <'echo -e '>
                            <Id.Right_DoubleQuote '"'>
                            <' Default Login:'>
                            <Id.Lit_Other '\\'>
                            <'n Username = root'>
                            <Id.Lit_Other '\\'>
                            <'n Password = dietpi'>
                            <Id.Lit_Other '\\'>
                            <n>
                            <Id.Right_DoubleQuote '"'>
                            <'\n'>
                            <'\n'>
                            <'#moOde additions\n'>
                            <'SQLDB=/var/local/www/db/moode-sqlite3.db\n'>
                            <'\n'>
                            <'# set cpu govenor\n'>
                            <'RESULT='>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <'(sqlite3 '>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <'SQLDB '>
                            <Id.Right_DoubleQuote '"'>
                            <"select value from cfg_system where param='cpugov'">
                            <Id.Right_DoubleQuote '"'>
                            <')\n'>
                            <'echo '>
                            <Id.Right_DoubleQuote '"'>
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            )
                            <RESULT>
                            <Id.Right_DoubleQuote '"'>
                            <' | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor\n'>
                            <'\n'>
                            <'/usr/bin/udisks-glue > /dev/null 2>&1\n'>
                            <'/var/www/command/worker.php > /dev/null 2>&1\n'>
                            <'\n'>
                            <'exit 0\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/rc.local>}
                        )
                      ]
                    )
                    (C {<sqlite3>} {</var/local/www/db/moode-sqlite3.db>} 
                      {
                        (DQ 
                          <
"update cfg_system set value='/DietPi/config.txt' where param='res_boot_config_txt'"
                          >
                        )
                      }
                    )
                    (C {<Download_Test_Media>})
                  ]
                  spids: [64879 64898]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INSTALLING_INDEX)
                  op: assign_op.Equal
                  rhs: {<169>}
                  spids: [65852]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$INSTALLING_INDEX')}
                                              )
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<Banner_Configuration>})
                    (C {<ln>} {<-sf>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                        </voice-recognizer-raspi/assistant.json>
                      } {</home/dietpi/assistant.json>}
                    )
                    (C {<mkdir>} {<-p>} {</home/dietpi/.cache/voice-recognizer>})
                    (C {</DietPi/dietpi/func/dietpi-set_hardware>} {<soundcard>} 
                      {<googlevoicehat-soundcard>}
                    )
                  ]
                  spids: [65856 65875]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Install_Apply_GPU_Settings
      body: 
        (command.BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'gpu_enabled='> <0>})
            (C {<local>} {<Id.Lit_VarLike 'gpu_memory='> <0>})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 112>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:gpu_enabled)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [65983]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:gpu_memory)
                          op: assign_op.Equal
                          rhs: {<192>}
                          spids: [65987]
                        )
                      ]
                    )
                  ]
                  spids: [65960 65979]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DPipe
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {<Id.Lit_Digits 31>}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {<Id.Lit_Digits 59>}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                        )
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {<Id.Lit_Digits 108>}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 148>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:gpu_enabled)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [66065]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:gpu_memory)
                          op: assign_op.Equal
                          rhs: {<128>}
                          spids: [66069]
                        )
                      ]
                    )
                  ]
                  spids: [66000 66061]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DPipe
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DPipe
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {<Id.Lit_Digits 23>}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {<Id.Lit_Digits 24>}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                            )
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {<Id.Lit_Digits 25>}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                        )
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 26>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 51>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:gpu_enabled)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [66161]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:gpu_memory)
                          op: assign_op.Equal
                          rhs: {<64>}
                          spids: [66165]
                        )
                      ]
                    )
                  ]
                  spids: [66082 66157]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 62>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:gpu_enabled)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [66197]
                        )
                      ]
                    )
                  ]
                  spids: [66174 66193]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Great
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$gpu_memory')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {</DietPi/dietpi/func/dietpi-set_hardware>} {<gpumemsplit>} 
                              {($ Id.VSub_DollarName '$gpu_memory')}
                            )
                          ]
                          spids: [66232 66246]
                        )
                      ]
                    )
                  ]
                  spids: [66210 66224]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$gpu_enabled')})
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<sed>} {<-i>} 
                              {
                                (DQ <'/CONFIG_HDMI_OUTPUT=/c'> <Id.Lit_Other '\\'> 
                                  <'CONFIG_HDMI_OUTPUT=1'>
                                )
                              } {</DietPi/dietpi.txt>}
                            )
                          ]
                          spids: [66284 66298]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<sed>} {<-i>} {(SQ <'/setenv hdmioutput /c\\setenv hdmioutput "1"'>)} 
                              {</DietPi/boot.ini>}
                            )
                            (C {<sed>} {<-i>} {(SQ <'/setenv vpu /c\\setenv vpu "1"'>)} 
                              {</DietPi/boot.ini>}
                            )
                            (C {<sed>} {<-i>} {(SQ <'/setenv m_bpp /c\\setenv m_bpp "32"'>)} 
                              {</DietPi/boot.ini>}
                            )
                          ]
                          spids: [66320 66334]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 12>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<sed>} {<-i>} {(SQ <'/setenv nographics /c\\setenv nographics "0"'>)} 
                              {</DietPi/boot.ini>}
                            )
                          ]
                          spids: [66376 66390]
                        )
                      ]
                    )
                  ]
                  spids: [66266 66276]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Check_USB_Drive_Installed
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:USBDRIVE)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [66425]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:FP_DIETPI_DEDICATED_USBDRIVE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {<df>} {<-P>})
                                  (C {<grep>} {<-m1>} {(SQ <'^/dev/sda1'>)})
                                  (C {<awk>} {(SQ <'{print $6}'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [66430]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                              {(DQ ($ Id.VSub_DollarName '$FP_DIETPI_DEDICATED_USBDRIVE'))} {<Id.Lit_RBracket ']'>}
                            )
                            (command.DParen
                              child: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (command.Pipeline
                                                children: [
                                                  (C {<df>} {<-P>})
                                                  (C {<grep>} {<-ci>} {<-m1>} 
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName 
'$FP_DIETPI_DEDICATED_USBDRIVE'
                                                        )
                                                      )
                                                    }
                                                  )
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                      )
                                    }
                                )
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:USBDRIVE)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [66504]
                        )
                      ]
                    )
                  ]
                  spids: [66461 66500]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Uninstall_Software
      body: 
        (command.BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'index='> ($ Id.VSub_Number '$1')})
            (C {<G_DIETPI-NOTIFY>} {<3>} {<DietPi-Software>} {(DQ <Uninstall>)})
            (C {<echo>} {<-e>} {(DQ )})
            (C {<G_DIETPI-NOTIFY>} {<0>} 
              {
                (DQ <'Uninstalling '> 
                  (braced_var_sub
                    token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                      )
                  ) <': '> 
                  (braced_var_sub
                    token: <Id.VSub_Name aSOFTWARE_WHIP_DESC>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                      )
                  ) <Id.Lit_Other '\\'> <n>
                )
              }
            )
            (C {<local>} {<Id.Lit_VarLike 'valid_input='> <1>})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 100>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:grasshopper_directory)
                          op: assign_op.Equal
                          rhs: {(SQ </var/www>)}
                          spids: [66626]
                        )
                      ]
                    )
                    (C {<rm>} {<-R>} 
                      {(DQ ($ Id.VSub_DollarName '$grasshopper_directory')) </documentation>}
                    )
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$grasshopper_directory')) </css>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$grasshopper_directory')) </db>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$grasshopper_directory')) </exec>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$grasshopper_directory')) </includes>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$grasshopper_directory')) </install>})
                    (C {<rm>} {<-R>} 
                      {(DQ ($ Id.VSub_DollarName '$grasshopper_directory')) </phpliteadmin>}
                    )
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$grasshopper_directory')) </js>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$grasshopper_directory')) </setup>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$grasshopper_directory')) </pics>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$grasshopper_directory')) </themes>})
                    (C {<rm>} {(DQ ($ Id.VSub_DollarName '$grasshopper_directory')) </favicon.ico>})
                    (C {<rm>} {(DQ ($ Id.VSub_DollarName '$grasshopper_directory')) </index.php>})
                    (C {<rm>} 
                      {(DQ ($ Id.VSub_DollarName '$grasshopper_directory')) </Grasshopper> 
                        <Id.Lit_Star '*'>
                      }
                    )
                    (C {<update-rc.d>} {<grasshopper>} {<remove>})
                    (C {<rm>} {</etc/init.d/grasshopper>})
                  ]
                  spids: [66608 66622]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 23>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<lxde>} {<lxde-> <Id.Lit_Star '*'>} {<upower>} {<policykit-1>} 
                      {<iceweasel>} {<p7zip-full>}
                    )
                  ]
                  spids: [66785 66799]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 24>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<mate-desktop-environment-extras>} {<upower>} {<policykit-1>} 
                      {<iceweasel>} {<p7zip-full>}
                    )
                  ]
                  spids: [66820 66834]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 26>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<x-window-system-core>} {<wmaker>} {<gnustep>} {<gnustep-devel>} 
                      {<gnustep-games>} {<upower>} {<policykit-1>} {<iceweasel>} {<p7zip-full>}
                    )
                  ]
                  spids: [66852 66866]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 25>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<xfce4>} {<gnome-icon-theme>} {<tango-icon-theme>} {<iceweasel>} 
                      {<p7zip-full>}
                    )
                  ]
                  spids: [66892 66906]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 22>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<quiterss>})]
                  spids: [66924 66938]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 30>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_RUN_CMD>} {<dpkg>} {<-P>} {<nomachine>})]
                  spids: [66948 66962]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 29>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<xrdp>})]
                  spids: [66976 66990]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 44>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<transmission-daemon>})
                    (command.Simple
                      words: [{<rm>} {</etc/init.d/transmission-daemon>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<rm>} {</etc/systemd/system/transmission-daemon.service>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                  ]
                  spids: [67000 67014]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 47>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.Pipeline
                      children: [
                        (C {<crontab>} {<-u>} {<www-data>} {<-l>})
                        (C {<grep>} {<-v>} {(SQ </var/www/owncloud/cron.php>)})
                        (C {<crontab>} {<-u>} {<www-data>} {<->})
                      ]
                      negated: F
                    )
                    (command.Simple
                      words: [{<a2dissite>} {<owncloud>}]
                      redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
                    )
                    (command.Simple
                      words: [{<rm>} {</etc/apache2/sites-available/owncloud.conf>}]
                      redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
                    )
                    (command.Simple
                      words: [{<rm>} {</etc/nginx/sites-dietpi/owncloud.config>}]
                      redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
                    )
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {
                        (DQ 
                          <
'DietPi will perform an automated backup of your ownCloud database and installation directory, which will be stored inside your ownCloud data directory.'
                          > <Id.Lit_Other '\\'> 
                          <
"nThe data directory won't be removed. So you can at any time recover your whole ownCloud instance."
                          > <Id.Lit_Other '\\'> <"nRemove the data directory manually, if you don't need it anymore.">
                        )
                      }
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'datadir='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {<grep>} {<-m1>} {(DQ <"'datadirectory'">)} 
                                      {</var/www/owncloud/config/config.php>}
                                    )
                                    (C {<awk>} {(SQ <'{print $3}'>)})
                                    (C {<sed>} {(DQ <"s/[',]//g">)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      }
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$datadir'))} 
                          {<Id.Lit_RBracket ']'>}
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:datadir)
                              op: assign_op.Equal
                              rhs: 
                                {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </owncloud_data>)}
                              spids: [67185]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<systemctl>} {<start>} {<mysql>})
                    (C {<mysql>} {<-e>} 
                      {
                        (DQ <'drop user '> 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            command_list: 
                              (command.CommandList
                                children: [
                                  (command.Pipeline
                                    children: [
                                      (C {<grep>} {<-m1>} {(DQ <"'dbuser'">)} 
                                        {</var/www/owncloud/config/config.php>}
                                      )
                                      (C {<awk>} {(SQ <'{print $3}'>)})
                                      (C {<sed>} {(DQ <'s/,//'>)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                          ) <'@'> 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            command_list: 
                              (command.CommandList
                                children: [
                                  (command.Pipeline
                                    children: [
                                      (C {<grep>} {<-m1>} {(DQ <"'dbhost'">)} 
                                        {</var/www/owncloud/config/config.php>}
                                      )
                                      (C {<awk>} {(SQ <'{print $3}'>)})
                                      (C {<sed>} {(DQ <'s/,//'>)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                          )
                        )
                      }
                    )
                    (command.Simple
                      words: [
                        {<mysql>}
                        {<-e>}
                        {
                          (DQ <'drop user '> 
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (command.Pipeline
                                      children: [
                                        (C {<grep>} {<-m1>} {(DQ <"'dbuser'">)} 
                                          {</var/www/owncloud/config/config.php>}
                                        )
                                        (C {<awk>} {(SQ <'{print $3}'>)})
                                        (C {<sed>} {(DQ <'s/,//'>)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                            )
                          )
                        }
                      ]
                      redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<Id.Lit_LBracket '['>} {<-d>} 
                          {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </mysql/owncloud>} {<Id.Lit_RBracket ']'>}
                        )
                        (command.Simple
                          words: [{<mysqldump>} {<owncloud>}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_Great '>'>
                              fd: -1
                              arg_word: 
                                {(DQ ($ Id.VSub_DollarName '$datadir')) 
                                  </dietpi-owncloud-database-backup.sql>
                                }
                            )
                          ]
                        )
                      ]
                    )
                    (C {<mysqladmin>} {<drop>} {<owncloud>} {<-f>})
                    (C {<cp>} {<-a>} {</var/www/owncloud/.>} 
                      {(DQ ($ Id.VSub_DollarName '$datadir')) </dietpi-owncloud-installation-backup>}
                    )
                    (C {<rm>} {<-R>} {</var/www/owncloud>})
                  ]
                  spids: [67042 67056]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 114>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.Pipeline
                      children: [
                        (C {<crontab>} {<-u>} {<www-data>} {<-l>})
                        (C {<grep>} {<-v>} {(SQ </var/www/nextcloud/cron.php>)})
                        (C {<crontab>} {<-u>} {<www-data>} {<->})
                      ]
                      negated: F
                    )
                    (command.Simple
                      words: [{<a2dissite>} {<nextcloud>}]
                      redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
                    )
                    (command.Simple
                      words: [{<rm>} {</etc/apache2/sites-available/nextcloud.conf>}]
                      redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
                    )
                    (command.Simple
                      words: [{<rm>} {</etc/nginx/sites-dietpi/nextcloud.config>}]
                      redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
                    )
                    (command.Simple
                      words: [{<lighttpd-disable-mod>} {<dietpi-nextcloud>}]
                      redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
                    )
                    (command.Simple
                      words: [{<rm>} {</etc/lighttpd/conf-available/99-dietpi-nextcloud.conf>}]
                      redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
                    )
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {
                        (DQ 
                          <
'DietPi will perform an automated backup of your Nextcloud database and installation directory, which will be stored inside your Nextcloud data directory.'
                          > <Id.Lit_Other '\\'> 
                          <
"nThe data directory won't be removed. So you can at any time recover your whole Nextcloud instance."
                          > <Id.Lit_Other '\\'> <"nRemove the data directory manually, if you don't need it anymore.">
                        )
                      }
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'datadir='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {<grep>} {<-m1>} {(DQ <"'datadirectory'">)} 
                                      {</var/www/nextcloud/config/config.php>}
                                    )
                                    (C {<awk>} {(SQ <'{print $3}'>)})
                                    (C {<sed>} {(DQ <"s/[',]//g">)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      }
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$datadir'))} 
                          {<Id.Lit_RBracket ']'>}
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:datadir)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA') </nextcloud_data>)
                                }
                              spids: [67524]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<systemctl>} {<start>} {<mysql>})
                    (C {<mysql>} {<-e>} 
                      {
                        (DQ <'drop user '> 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            command_list: 
                              (command.CommandList
                                children: [
                                  (command.Pipeline
                                    children: [
                                      (C {<grep>} {<-m1>} {(DQ <"'dbuser'">)} 
                                        {</var/www/nextcloud/config/config.php>}
                                      )
                                      (C {<awk>} {(SQ <'{print $3}'>)})
                                      (C {<sed>} {(DQ <'s/,//'>)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                          ) <'@'> 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            command_list: 
                              (command.CommandList
                                children: [
                                  (command.Pipeline
                                    children: [
                                      (C {<grep>} {<-m1>} {(DQ <"'dbhost'">)} 
                                        {</var/www/nextcloud/config/config.php>}
                                      )
                                      (C {<awk>} {(SQ <'{print $3}'>)})
                                      (C {<sed>} {(DQ <'s/,//'>)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                          )
                        )
                      }
                    )
                    (command.Simple
                      words: [
                        {<mysql>}
                        {<-e>}
                        {
                          (DQ <'drop user '> 
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (command.Pipeline
                                      children: [
                                        (C {<grep>} {<-m1>} {(DQ <"'dbuser'">)} 
                                          {</var/www/nextcloud/config/config.php>}
                                        )
                                        (C {<awk>} {(SQ <'{print $3}'>)})
                                        (C {<sed>} {(DQ <'s/,//'>)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                            )
                          )
                        }
                      ]
                      redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<Id.Lit_LBracket '['>} {<-d>} 
                          {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </mysql/nextcloud>} {<Id.Lit_RBracket ']'>}
                        )
                        (command.Simple
                          words: [{<mysqldump>} {<nextcloud>}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_Great '>'>
                              fd: -1
                              arg_word: 
                                {(DQ ($ Id.VSub_DollarName '$datadir')) 
                                  </dietpi-nextcloud-database-backup.sql>
                                }
                            )
                          ]
                        )
                      ]
                    )
                    (C {<mysqladmin>} {<drop>} {<nextcloud>} {<-f>})
                    (C {<cp>} {<-a>} {</var/www/nextcloud/.>} 
                      {(DQ ($ Id.VSub_DollarName '$datadir')) </dietpi-nextcloud-installation-backup>}
                    )
                    (C {<rm>} {<-R>} {</var/www/nextcloud>})
                  ]
                  spids: [67369 67383]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 83>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<apache2>})]
                  spids: [67708 67722]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 85>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<nginx>})]
                  spids: [67732 67746]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 84>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<lighttpd>})]
                  spids: [67756 67770]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 88>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<mariadb-server>})
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (command.Simple
                          words: [{<rm>} {</var/lib/mysql>}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_AndGreat '&>'>
                              fd: -1
                              arg_word: {</dev/null>}
                            )
                          ]
                        )
                        (command.Simple
                          words: [{<rm>} {<-R>} {</var/lib/mysql>}]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_AndGreat '&>'>
                              fd: -1
                              arg_word: {</dev/null>}
                            )
                          ]
                        )
                      ]
                    )
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </mysql>})
                  ]
                  spids: [67780 67794]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 87>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<sqlite3>})]
                  spids: [67856 67870]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 91>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-redis>} 
                      {<redis-server>} {<redis-tools>}
                    )
                  ]
                  spids: [67880 67894]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 89>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {(DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR')) </fpm/pool.d/www.conf>})
                    (command.Simple
                      words: [
                        {<rm>}
                        {(DQ ($ Id.VSub_DollarName '$FP_PHP_BASE_DIR')) </mods-available/dietpi.ini>}
                      ]
                      redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
                    )
                    (C {<G_AGP>} 
                      {(DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME')) <-> <Id.Lit_Star '*'>} {<libapache2-mod-> (DQ ($ Id.VSub_DollarName '$PHP_APT_PACKAGE_NAME'))}
                    )
                    (C {<rm>} {</var/www/phpinfo.php>})
                    (C {<rm>} {</var/www/apc.php>})
                    (C {<rm>} {</var/www/opcache.php>})
                    (command.Simple
                      words: [{<rm>} {<-R>} {</var/tmp/php_upload_tmp>}]
                      redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
                    )
                  ]
                  spids: [67911 67925]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 90>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<systemctl>} {<start>} {<mysql>})
                    (C {<mysqladmin>} {<drop>} {<phpmyadmin>} {<-f>})
                    (C {<mysql>} {<-e>} {(DQ <"drop user 'phpmyadmin'@'localhost'">)})
                    (C {<G_AGP>} {<phpmyadmin>})
                  ]
                  spids: [67994 68008]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 54>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<systemctl>} {<start>} {<mysql>})
                    (C {<mysqladmin>} {<drop>} {<phpbb3>} {<-f>})
                    (C {<mysql>} {<-e>} {(DQ <'drop user phpbb3@localhost'>)})
                    (C {<rm>} {<-R>} {</var/www/phpBB3>})
                  ]
                  spids: [68043 68057]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 115>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_RUN_CMD>} {<dpkg>} {<-P>} {<webmin>})]
                  spids: [68094 68108]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 32>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<rm>} {</usr/bin/ympd>}) (C {<rm>} {</etc/systemd/system/ympd.service>})]
                  spids: [68122 68136]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 128>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{<apt-mark>} {<unhold>} {<mpd>}]
                      redirects: [(redir.Redir op:<Id.Redir_Great '1>'> fd:1 arg_word:{</dev/null>})]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DAmp
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$G_DISTRO')})
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_NEqual
                                  left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$G_HW_ARCH')})
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                )
                            )
                        )
                        (C {<G_AGP>} {<mpd>} {<libmpdclient2>})
                        (C {<G_RUN_CMD>} {<dpkg>} {<-P>} {<mpd>} {<libmpdclient2>})
                      ]
                    )
                    (command.Simple
                      words: [{<userdel>} {<-f>} {<mpd>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<rm>} {</lib/systemd/system/mpd.service>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </.mpd_cache>})
                  ]
                  spids: [68151 68165]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 121>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {</etc/systemd/system/roonbridge.service>})
                    (C {<rm>} {<-R>} {</etc/roonbridge>})
                  ]
                  spids: [68251 68265]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 122>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {</etc/systemd/system/node-red.service>})
                    (C {<rm>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.node-red>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </node-red>})
                    (C {<userdel>} {<-f>} {<nodered>})
                  ]
                  spids: [68282 68296]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 123>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Great
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<G_AGP>} {<mosquitto>})]
                          spids: [68350 68364]
                        )
                      ]
                      else_action: [(C {<dpkg>} {<-P>} {<mosquitto>})]
                    )
                  ]
                  spids: [68332 68346]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 124>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_RUN_CMD>} {<dpkg>} {<-P>} {<networkaudiod>})]
                  spids: [68394 68408]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 125>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<tomcat8>})]
                  spids: [68426 68440]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 126>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<openmediavault>})
                    (C {<rm>} {</etc/apt/sources.list.d/openmediavault.list>})
                  ]
                  spids: [68450 68464]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 129>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</var/www/ompd>})
                    (C {<systemctl>} {<start>} {<mysql>})
                    (C {<mysqladmin>} {<drop>} {<ompd>} {<-f>})
                    (C {<mysql>} {<-e>} {(DQ <'drop user ompd@localhost'>)})
                  ]
                  spids: [68479 68493]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 130>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<python-pip>} {<python3-pip>})]
                  spids: [68530 68544]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 131>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {</etc/systemd/system/blynkserver.service>})
                    (C {<rm>} {<-R>} {</etc/blynkserver>})
                  ]
                  spids: [68556 68570]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 132>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {</etc/systemd/system/aria2.service>})
                    (C {<rm>} {</usr/local/bin/aria2c>})
                    (C {<rm>} {<-R>} {</var/www/aria2>})
                    (C {<G_AGP>} {<aria2>})
                  ]
                  spids: [68588 68602]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 133>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {</etc/systemd/system/yacy.service>})
                    (C {<rm>} {<-R>} {</etc/yacy>})
                  ]
                  spids: [68630 68644]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 134>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {</etc/systemd/system/tonido.service>})
                    (C {<rm>} {<-R>} {</etc/tonido>})
                    (C {<rm>} {(DQ ($ Id.VSub_DollarName '$HOME')) </tonido>})
                    (C {<rm>} {(DQ ($ Id.VSub_DollarName '$HOME')) </TonidoSync>})
                    (C {<rm>} {(DQ ($ Id.VSub_DollarName '$HOME')) </TonidoSyncData>})
                  ]
                  spids: [68663 68677]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 135>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<darkice>} {<icecast2>})
                    (C {<rm>} {</etc/systemd/system/darkice.service>})
                  ]
                  spids: [68725 68739]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 136>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Great
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$G_DISTRO')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                            )
                        )
                        (C {<G_AGP>} {<motion>})
                        (C {<G_RUN_CMD>} {<dpkg>} {<-P>} {<motion>})
                      ]
                    )
                    (C {<rm>} {<-R>} {</etc/motioneye>})
                    (C {<rm>} {</etc/systemd/system/motioneye.service>})
                    (C {<pip>} {<uninstall>} {<-y>} {<motioneye>})
                  ]
                  spids: [68757 68771]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 137>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<cloudprint-service>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<rm>} {</etc/apt/sources.list.d/cloudprint.list>}) (C {<G_AGUP>})]
                          spids: [68855 68869]
                        )
                      ]
                    )
                  ]
                  spids: [68832 68846]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 138>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</etc/vhusbd>})
                    (C {<rm>} {</etc/systemd/system/virtualhere.service>})
                  ]
                  spids: [68886 68900]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 139>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</etc/sabnzbd>})
                    (C {<rm>} {</etc/systemd/system/sabnzbd.service>})
                  ]
                  spids: [68918 68932]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 140>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_RUN_CMD>} {<dpkg>} {<-P>} {<libsdl2>} {<libsdl2-image>} {<libsdl2-mixer>} 
                      {<libsdl2-net>} {<libsdl2-ttf>} {<libsmpeg2>}
                    )
                  ]
                  spids: [68950 68964]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 141>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </spotify-connect-web>}
                    )
                    (C {<rm>} {</etc/systemd/system/spotify-connect-web.service>})
                  ]
                  spids: [68988 69002]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 142>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</etc/couchpotato>})
                    (C {<rm>} {<-R>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </couchpotato>}
                    )
                    (C {<rm>} {</etc/init.d/couchpotato>})
                  ]
                  spids: [69022 69036]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 143>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<systemctl>} {<start>} {<mysql>})
                    (C {<mysqladmin>} {<drop>} {<koel>} {<-f>})
                    (C {<mysql>} {<-e>} {(DQ <'drop user koel@localhost'>)})
                    (C {<rm>} {<-R>} {</var/www/koel>})
                    (C {<rm>} {</etc/systemd/system/koel.service>})
                  ]
                  spids: [69068 69082]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 144>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<nzbdrone>})
                    (C {<rm>} {</etc/systemd/system/sonarr.service>})
                    (C {<rm>} {</etc/apt/sources.list.d/sonarr.list>})
                    (C {<G_AGUP>})
                  ]
                  spids: [69126 69140]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 145>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</opt/Radarr>})
                    (C {<rm>} {</etc/systemd/system/radarr.service>})
                  ]
                  spids: [69163 69177]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 146>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</opt/plexpy>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </plexpy>})
                    (C {<rm>} {</etc/systemd/system/plexpy.service>})
                  ]
                  spids: [69194 69208]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 147>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</opt/jackett>})
                    (C {<rm>} {</etc/systemd/system/jackett.service>})
                  ]
                  spids: [69235 69249]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 148>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<mediacenter22>})]
                  spids: [69266 69280]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 149>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </nzbget>})
                    (C {<rm>} {</etc/systemd/system/nzbget.service>})
                  ]
                  spids: [69290 69304]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 155>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </htpc-manager>}
                    )
                    (C {<rm>} {</etc/systemd/system/htpc-manager.service>})
                  ]
                  spids: [69324 69338]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 150>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<rm>} {</etc/apt/sources.list.d/mono-xamarin.list>}) (C {<G_AGUP>})]
                  spids: [69358 69372]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 151>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<nvidia-driver>} {<nvidia-xconfig>} 
                      {<libgl1-nvidia-glx> <Id.Lit_Other ':'> <i386>}
                    )
                  ]
                  spids: [69390 69404]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 152>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<avahi-daemon>})]
                  spids: [69420 69434]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 153>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </octoprint>})
                    (C {<rm>} 
                      {
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: (command.CommandList children:[(C {<which>} {<octoprint>})])
                        )
                      }
                    )
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.octoprint>})
                    (C {<rm>} {</etc/systemd/system/octoprint.service>})
                  ]
                  spids: [69444 69458]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 154>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </roonserver>})
                    (C {<rm>} {</etc/systemd/system/roonserver.service>})
                  ]
                  spids: [69497 69511]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 156>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<steam>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.steam>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </steam>})
                  ]
                  spids: [69531 69545]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 119>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<cava>})
                    (C {<rm>} {(DQ ($ Id.VSub_DollarName '$HOME') </.config/cava/config>)})
                    (C {<rm>} {(DQ ($ Id.VSub_DollarName '$HOME') </cava.psf>)})
                  ]
                  spids: [69575 69589]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 118>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<mopidy>})
                    (C {<rm>} {</etc/apt/sources.list.d/mopidy.list>})
                    (C {<pip>} {<uninstall>} {<-y>} {<Mopidy-MusicBox-Webclient>} {<Mopidy-Local-Images>})
                  ]
                  spids: [69615 69629]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 31>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<kodi>})
                    (C {<G_AGP>} {<kodi-odroid>})
                    (C {<rm>} {</usr/share/applications/kodi.desktop>})
                    (C {<rm>} 
                      {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) </Desktop/kodi.desktop>}
                    )
                  ]
                  spids: [69656 69670]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 39>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<minidlna>})]
                  spids: [69700 69714]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 51>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<ibsdl1.2debian>} {<libsdl-net1.2>})
                    (C {<rm>} {<-R>} {</usr/local/games/opentyrian>})
                    (C {<rm>} {</usr/share/applications/opentyrian.desktop>})
                    (C {<rm>} 
                      {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) 
                        </Desktop/opentyrian.desktop>
                      }
                    )
                  ]
                  spids: [69724 69738]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 59>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<gpac>})
                    (C {<rm>} {<-R>} {</var/www/dietpicam>})
                    (C {<rm>} {</opt/vc/bin/raspimjpeg>})
                    (C {<rm>} {</usr/bin/raspimjpeg>})
                    (C {<rm>} {</var/lib/dietpi/dietpi-software/services/raspimjpeg.service>})
                    (C {<rm>} {</etc/raspimjpeg>})
                  ]
                  spids: [69768 69782]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 45>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<deluged>} {<deluge-web>} {<deluge-webui>} {<deluge-console>})
                    (C {<rm>} {</var/lib/dietpi/dietpi-software/services/deluge.service>})
                    (C {<rm>} {<-R>} 
                      {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) </.config/deluge>}
                    )
                  ]
                  spids: [69819 69833]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 94>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<proftpd-basic>})]
                  spids: [69862 69876]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 96>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<samba>} {<samba-common-bin>})]
                  spids: [69886 69900]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 95>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<vsftpd>})]
                  spids: [69912 69926]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 109>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<nfs-kernel-server>})]
                  spids: [69936 69950]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 67>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {</usr/local/bin/noip2>})
                    (C {<rm>} {</etc/systemd/system/noip2.service>})
                  ]
                  spids: [69960 69974]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 106>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</var/www/raspcontrol>})
                    (C {<rm>} {<-R>} {</etc/raspcontrol>})
                  ]
                  spids: [69989 70003]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 63>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<rm>} {<-R>} {</var/www/linuxdash>})]
                  spids: [70022 70036]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 93>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<dnsmasq>})
                    (C {<pihole>} {<uninstall>})
                    (command.Simple
                      words: [{<chmod>} {<774>} {</etc/lighttpd/lighttpd.conf>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<rm>} {<-R>} {</etc/pihole>})
                    (C {<rm>} {<-R>} {</etc/.pihole>})
                    (C {<rm>} {<-R>} {</var/www/html/admin>})
                    (C {<rm>} {</var/www/pihole>})
                    (C {<rm>} {</var/www/admin>})
                  ]
                  spids: [70048 70062]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 33>})
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 34>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_RUN_CMD>} {<dpkg>} {<-P>} {<subsonic>})
                    (C {<rm>} {<-R>} {</var/subsonic>})
                  ]
                  spids: [70130 70152]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 71>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<update-rc.d>} {<webiopi>} {<remove>})
                    (C {<rm>} {<-R>} {</etc/webiopi>})
                    (C {<rm>} {<-R>} {</usr/share/webiopi>})
                    (C {<rm>} {</usr/bin/webiopi>})
                    (C {<rm>} {</etc/init.d/webiopi>})
                  ]
                  spids: [70173 70187]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 68>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</etc/weaved>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$HOME')) </weaved_software>})
                    (C {<rm>} {(DQ ($ Id.VSub_DollarName '$HOME')) </weaved_setup.bin>})
                    (C {<G_RUN_CMD>} {<dpkg>} {<-P>} {<weavedconnectd>})
                  ]
                  spids: [70223 70237]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 62>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<systemctl>} {<stop>} {<dietpi-cloudshell>})
                    (C {<rm>} {</etc/systemd/system/dietpi-cloudshell.service>})
                    (C {<killall>} {<-w>} {<dietpi-cloudshell>})
                    (C {</DietPi/dietpi/dietpi-autostart>} {<0>})
                  ]
                  spids: [70285 70299]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 98>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<update-rc.d>} {<haproxy>} {<remove>})
                    (C {<rm>} {</etc/init.d/haproxy>})
                    (C {<rm>} {<-r>} {</etc/haproxy>})
                  ]
                  spids: [70342 70356]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 35>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_RUN_CMD>} {<dpkg>} {<-P>} {<logitechmediaserver>})
                    (C {<rm>} {</var/lib/dietpi/dietpi-software/services/squeezeboxserver.service>})
                    (C {<rm>} {<-R>} {</var/lib/squeezeboxserver>})
                    (C {<rm>} {<-R>} {</usr/share/squeezeboxserver>})
                  ]
                  spids: [70390 70404]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 55>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<systemctl>} {<start>} {<mysql>})
                    (C {<mysqladmin>} {<drop>} {<wordpress>} {<-f>})
                    (C {<mysql>} {<-e>} {(DQ <'drop user wordpress@localhost'>)})
                    (C {<rm>} {<-R>} {</var/www/wordpress>})
                  ]
                  spids: [70441 70455]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DPipe
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 27>})
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 28>})
                                    )
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 120>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<tightvncserver>})
                    (C {<G_AGP>} {<vnc4server>})
                    (C {<G_AGP>} {<x11vnc>})
                    (C {<G_AGP>} {<realvnc-vnc-server>})
                    (C {<G_AGP>} {<tigervnc-> <Id.Lit_Star '*'>})
                    (C {<rm>} {</etc/systemd/system/vncserver.service>})
                    (C {<rm>} {</etc/init.d/vncserver>})
                    (C {<rm>} {</usr/local/bin/vncserver>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.vnc>})
                    (C {<systemctl>} {<disable>} {<vncserver-x11-serviced.service>})
                    (C {<systemctl>} {<disable>} {<vncserver-virtuald.service>})
                  ]
                  spids: [70493 70523]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 73>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<fail2ban>})]
                  spids: [70601 70615]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 64>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<rm>} {<-R>} {</var/www/phpsysinfo>})]
                  spids: [70625 70639]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 56>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {</var/www/gallery/index.php>})
                    (C {<rm>} {<-R>} {</var/www/gallery/_sfpg_data>})
                  ]
                  spids: [70651 70665]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 40>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</var/www/ampache>})
                    (C {<systemctl>} {<start>} {<mysql>})
                    (C {<mysqladmin>} {<drop>} {<ampache>} {<-f>})
                    (C {<mysql>} {<-e>} {(DQ <'drop user ampache@localhost'>)})
                  ]
                  spids: [70682 70696]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 117>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {</etc/apt/sources.list.d/swupdate.openvpn.net.list>})
                    (C {<pivpn>} {<-u>})
                    (C {<userdel>} {<-f>} {<pivpn>})
                  ]
                  spids: [70738 70752]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 97>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<openvpn>})
                    (command.Simple
                      words: [{<rm>} {<-R>} {</etc/openvpn>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                  ]
                  spids: [70774 70788]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 92>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_DISTRO')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_AGP>} {<python-certbot-apache>} {<python-certbot-nginx>} {<certbot>})
                          ]
                          spids: [70827 70841]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<rm>} {<-R>} {</etc/letsencrypt_scripts>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<rm>} {<-R>} {</etc/certbot_scripts>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                  ]
                  spids: [70809 70823]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 69>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<python-rpi.gpio>} {<python3-rpi.gpio>})]
                  spids: [70880 70894]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 72>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<i2c-tools>})
                    (C {</DietPi/dietpi/func/dietpi-set_hardware>} {<i2c>} {<disable>})
                  ]
                  spids: [70906 70920]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 70>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{<rm>} {<-R>} {</root/wiringPi> <Id.Lit_Star '*'>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                  ]
                  spids: [70941 70955]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 60>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<hostapd>} {<isc-dhcp-server>})
                    (command.Simple
                      words: [{<rm>} {</etc/dhcp/dhcpd.conf>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<rm>} {</etc/hostapd/hostapd.conf>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<rm>} {</etc/default/isc-dhcp-server>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<rm>} {</etc/default/hostapd>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<rm>} {</etc/iptables.ipv4.nat>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<rm>} {</usr/sbin/hostapd>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<rm>} {</usr/sbin/hostapd_cli>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'wifi_index='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [(C {<sed>} {<-n>} {<2p>} {</DietPi/dietpi/.network>})]
                            )
                        )
                      }
                    )
                    (C {<sed>} {<-i>} {(SQ <'/allow-hotplug wlan/q0'>)} {</etc/network/interfaces>})
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/allow-hotplug wlan/c'> <Id.Lit_Other '\\'> <'#allow-hotplug wlan'> 
                          ($ Id.VSub_DollarName '$wifi_index')
                        )
                      } {</etc/network/interfaces>}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir.HereDoc
                          op: <Id.Redir_DLess '<<'>
                          fd: -1
                          here_begin: {<_EOF_>}
                          here_end_span_id: 71148
                          stdin_parts: [
                            <'iface wlan'>
                            ($ Id.VSub_DollarName '$wifi_index')
                            <' inet dhcp\n'>
                            <'address 192.168.0.101\n'>
                            <'netmask 255.255.255.0\n'>
                            <'gateway 192.168.0.1\n'>
                            <'wireless-power off\n'>
                            <'wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf\n'>
                            <'#dns-nameservers 8.8.8.8 8.8.4.4\n'>
                          ]
                        )
                        (redir.Redir
                          op: <Id.Redir_DGreat '>>'>
                          fd: -1
                          arg_word: {</etc/network/interfaces>}
                        )
                      ]
                    )
                    (C {<iptables>} {<-F>})
                    (C {<iptables>} {<-t>} {<nat>} {<-F>})
                    (command.Simple
                      words: [{<iptables-save>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</etc/iptables.ipv4.nat>}
                        )
                      ]
                    )
                  ]
                  spids: [70972 70986]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 61>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<tor>}) (C {<Uninstall_Software>} {<60>})]
                  spids: [71177 71191]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 37>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [
                        {<rm>}
                        {</lib/systemd/system/shairport-sync.service>}
                        {</usr/local/bin/shairport-sync>}
                        {</usr/local/etc/shairport-sync.conf> <Id.Lit_Star '*'>}
                        {</usr/local/share/man/man7/shairport-sync.7.gz>}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<userdel>} {<-f>} {<shairport-sync>})
                  ]
                  spids: [71211 71225]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 38>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<brutefir>})
                    (C {<rm>} {<-R>} {</etc/BruteFIR>})
                    (C {<rm>} {</var/lib/dietpi/dietpi-software/services/brutefir.service>})
                    (C {<rm>} {</etc/asound.conf>})
                    (C {<rm>} {</etc/modules-load.d/brutefir-alsa-loopback.conf>})
                    (C {<rm>} {</etc/modprobe.d/brutefir-alsa-loopback.conf>})
                  ]
                  spids: [71269 71283]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 48>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</var/www/pydio>})
                    (C {<systemctl>} {<start>} {<mysql>})
                    (C {<mysqladmin>} {<drop>} {<pydio>} {<-f>})
                    (C {<mysql>} {<-e>} {(DQ <'drop user pydio@localhost'>)})
                  ]
                  spids: [71322 71336]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 36>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<squeezelite>})
                    (C {<rm>} {<-R>} {</usr/bin/squeezelite> <Id.Lit_Star '*'>})
                    (C {<rm>} {</etc/systemd/system/squeezelite.service>})
                  ]
                  spids: [71378 71392]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 99>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</etc/emonhub>})
                    (C {<rm>} {</etc/init.d/emonhub>})
                    (C {<rm>} {</etc/default/emonhub>})
                  ]
                  spids: [71416 71430]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 66>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_RUN_CMD>} {<dpkg>} {<-P>} {<rpimonitor>})]
                  spids: [71452 71466]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 57>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</var/www/baikal>})
                    (C {<systemctl>} {<start>} {<mysql>})
                    (C {<mysqladmin>} {<drop>} {<baikal>} {<-f>})
                    (C {<mysql>} {<-e>} {(DQ <'drop user baikal@localhost'>)})
                  ]
                  spids: [71480 71494]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 65>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {</etc/systemd/system/netdata.service>})
                    (C {<userdel>} {<-f>} {<netdata>})
                    (C {<groupdel>} {<netdata>})
                    (C {<G_RUN_CMD>} {<dpkg>} {<-P>} {<netdata>})
                    (C {<rm>} {</usr/sbin/netdata>})
                    (C {<rm>} {<-R>} {</etc/netdata>})
                    (C {<rm>} {<-R>} {</usr/share/netdata>})
                    (C {<rm>} {<-R>} {</usr/libexec/netdata>})
                    (C {<rm>} {<-R>} {</var/cache/netdata>})
                    (C {<rm>} {<-R>} {</var/log/netdata>})
                  ]
                  spids: [71536 71550]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 43>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<mumble-server>})]
                  spids: [71642 71656]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 41>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<emby-server>} {<embymagick>})
                    (C {<rm>} {</etc/apt/sources.list.d/emby-server.list>})
                    (C {<G_AGUP>})
                  ]
                  spids: [71666 71680]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 58>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</etc/openbazaar-server>})
                    (C {<rm>} {</etc/systemd/system/openbazaar.service>})
                  ]
                  spids: [71701 71715]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 42>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$G_HW_ARCH')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                            )
                        )
                        (C {<G_RUN_CMD>} {<dpkg>} {<-P>} {<plexmediaserver>} {<plexmediaserver-installer>})
                        (C {<G_AGP>} {<plexmediaserver> <Id.Lit_Star '*'>})
                      ]
                    )
                    (C {<rm>} {<-R>} {</var/lib/plexmediaserver>})
                    (command.Simple
                      words: [{<rm>} {</etc/apt/sources.list.d/plex.list>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<G_AGUP>})
                  ]
                  spids: [71732 71746]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 52>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</etc/cuberite>})
                    (C {<rm>} {</etc/systemd/system/cuberite.service>})
                  ]
                  spids: [71803 71817]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 53>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$USERDATA_DIRECTORY')) </mineos>})
                    (C {<rm>} {<-R>} {</var/games/minecraft>})
                    (C {<rm>} {</etc/supervisor/conf.d/mineos.conf>})
                    (C {<supervisorctl>} {<reload>})
                    (C {<rm>} {</usr/local/bin/mineos>})
                    (C {<userdel>} {<-f>} {<mineos>})
                  ]
                  spids: [71834 71848]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 49>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</etc/gogs>})
                    (C {<rm>} {</etc/systemd/system/gogs.service>})
                    (C {<rm>} {</var/log/gogs_daemon.log>})
                    (C {<rm>} {</var/log/gogs.log>})
                    (C {<systemctl>} {<start>} {<mysql>})
                    (C {<mysqladmin>} {<drop>} {<gogs>} {<-f>})
                    (C {<mysql>} {<-e>} {(DQ <'drop user gogs@localhost'>)})
                  ]
                  spids: [71895 71909]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 46>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<qbittorrent-nox>})
                    (C {<rm>} {</etc/systemd/system/qbittorrent.service>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.config/qBittorrent>})
                  ]
                  spids: [71963 71977]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 50>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</etc/syncthing>})
                    (command.Simple
                      words: [{<rm>} {</usr/bin/syncthing>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<rm>} {</etc/systemd/system/syncthing.service>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </syncthing>})
                  ]
                  spids: [72003 72017]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 116>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {</etc/systemd/system/sickrage.service>})
                    (C {<rm>} {<-R>} {</etc/sickrage>})
                  ]
                  spids: [72056 72070]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 107>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<rtorrent>})
                    (C {<rm>} {<-R>} {</var/www/rutorrent>})
                    (C {<rm>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.rtorrent.rc>})
                    (C {<rm>} {</etc/systemd/system/rtorrent.service>})
                    (C {<rm>} {</etc/.rutorrent-htaccess>})
                    (C {<rm>} {</etc/nginx/sites-dietpi/rutorrent.config>})
                    (C {<rm>} {</etc/apache2/sites-available/rutorrent.conf>})
                  ]
                  spids: [72087 72101]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 108>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</etc/amiberry>})
                    (C {<rm>} {</etc/systemd/system/amiberry.service>})
                    (C {<rm>} {</etc/systemd/system/amiberry-sdl2.service>})
                    (C {</DietPi/dietpi/dietpi-autostart>} {<0>})
                  ]
                  spids: [72174 72188]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 112>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </dxx-rebirth/> 
                        <Id.Lit_Star '*'>
                      }
                    )
                    (C {<rm>} {<-R>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                        </dxx-rebirth/descent_1_game>
                      }
                    )
                    (C {<rm>} {<-R>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) 
                        </dxx-rebirth/descent_2_game>
                      }
                    )
                    (C {<rm>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.d1x-rebirth>})
                    (C {<rm>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.d2x-rebirth>})
                    (C {<rm>} {(DQ ($ Id.VSub_DollarName '$HOME')) </Desktop/dxx-rebirth.desktop>})
                    (C {<rm>} {</usr/share/applications/dxx-rebirth.desktop>})
                  ]
                  spids: [72220 72234]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 113>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<apt-mark>} {<unhold>} {<chromium>} {<chromedriver>})
                    (C {<rm>} {</etc/chromium.d/custom_flags>})
                    (C {<rm>} {(DQ ($ Id.VSub_DollarName '$HOME')) </.chromium-browser.init>})
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_GreatEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$G_DISTRO')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                            )
                        )
                        (C {<G_AGP>} {<chromium> <Id.Lit_Star '*'>})
                        (C {<G_RUN_CMD>} {<dpkg>} {<-P>} {<chromium>} {<chromedriver>})
                      ]
                    )
                  ]
                  spids: [72302 72316]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 157>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</srv/homeassistant>})
                    (C {<userdel>} {<-r>} {<-f>} {<homeassistant>})
                    (C {<groupdel>} {<homeassistant>})
                    (C {<rm>} {</etc/systemd/system/home-assistant.service>})
                  ]
                  spids: [72379 72392]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 165>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {</etc/systemd/system/gitea.service>})
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </gitea>})
                    (C {<rm>} {<-R>} {</var/log/gitea>})
                    (C {<systemctl>} {<start>} {<mysql>})
                    (C {<mysqladmin>} {<drop>} {<gitea>} {<-f>})
                    (C {<mysql>} {<-e>} {(DQ <'drop user gitea@localhost'>)})
                  ]
                  spids: [72437 72451]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 166>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {</etc/systemd/system/pi-spc.service>})
                    (C {<rm>} {<-R>} {</var/lib/dietpi/dietpi-software/installed/pi-spc>})
                  ]
                  spids: [72517 72531]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 167>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<raspotify>})
                    (C {<rm>} {</etc/apt/sources.list.d/raspotify.list>})
                    (C {<G_AGUP>})
                  ]
                  spids: [72548 72562]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 168>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<echo>} {<-e>} {(DQ <pending>)})]
                  spids: [72580 72594]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 169>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </voice-recognizer-raspi>}
                    )
                    (C {<rm>} {</etc/systemd/system/voice-recognizer.service>})
                    (C {<rm>} {</etc/systemd/system/alsa-init.service>})
                    (C {<rm>} {<-R>} {</home/dietpi/assistant.json>})
                  ]
                  spids: [72608 72622]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 170>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Reset_NTPD>}) (C {<G_AGP>} {<ntp>})]
                  spids: [72654 72668]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 158>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<systemctl>} {<stop>} {<minio.service>})
                    (C {<systemctl>} {<disable>} {<minio.service>})
                    (C {<rm>} {</usr/local/bin/minio>})
                    (C {<rm>} {</etc/systemd/system/minio.service>})
                    (C {<rm>} {</etc/default/minio>})
                    (C {<userdel>} {<-r>} {<-f>} {<minio-user>})
                  ]
                  spids: [72681 72695]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 161>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {</etc/init.d/bdd>} {<stop>})
                    (C {<sleep>} {<2>})
                    (C {<killall>} {<--user>} {<bd>})
                    (C {<sleep>} {<2>})
                    (C {<rm>} {</etc/rc3.d/S99bdd>})
                    (C {<rm>} {</etc/rc4.d/S99bdd>})
                    (C {<rm>} {</etc/rc2.d/S99bdd>})
                    (C {<rm>} {</etc/rc5.d/S99bdd>})
                    (C {<rm>} {</etc/init.d/bdd>})
                    (C {<userdel>} {<-r>} {<bd>})
                  ]
                  spids: [72752 72766]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 162>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<G_AGP>} {<docker-ce>})]
                          spids: [72844 72858]
                        )
                      ]
                      else_action: [(C {<G_AGP>} {<docker-engine>})]
                    )
                    (C {<rm>} {<-r>} 
                      {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')) </docker-data>}
                    )
                    (C {<rm>} {<-r>} {</var/lib/docker>})
                  ]
                  spids: [72826 72840]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 164>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {</etc/systemd/system/nukkit.service>})
                    (C {<rm>} {<-r>} {</usr/local/bin/nukkit>})
                  ]
                  spids: [72912 72926]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 163>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_RUN_CMD>} {<dpkg>} {<-P>} {<gmrender>})
                    (C {<rm>} {</etc/systemd/system/gmrender.service>})
                  ]
                  spids: [72952 72966]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 159>})
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 160>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<rm>} {<-R>} {</var/www/allo>})
                    (C {<systemctl>} {<start>} {<mysql>})
                    (C {<mysqladmin>} {<drop>} {<allo_db>} {<-f>})
                    (C {<mysql>} {<-e>} {(DQ <'drop user allo_db@localhost'>)})
                  ]
                  spids: [72989 73011]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 15>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<tcpdump>})]
                  spids: [73058 73072]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 14>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<nload>})]
                  spids: [73082 73096]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 13>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<mtr-tiny>})]
                  spids: [73106 73120]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 11>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<iptraf>})]
                  spids: [73130 73144]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<iftop>})]
                  spids: [73154 73168]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 19>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<jed>})]
                  spids: [73178 73192]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<mc>})]
                  spids: [73202 73216]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 18>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<emacs>})]
                  spids: [73226 73240]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 20>})
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 21>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<vim>} {<vim-tiny>})]
                  spids: [73250 73272]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 127>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<neovim>})]
                  spids: [73284 73298]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                command_list: 
                                                  (command.CommandList
                                                    children: [
                                                      (command.Pipeline
                                                        children: [
                                                          (C {<dpkg>} {<-l>})
                                                          (C {<grep>} {<-ci>} {<-m1>} 
                                                            {(SQ <openssh-server>)}
                                                          )
                                                        ]
                                                        negated: F
                                                      )
                                                    ]
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<G_AGP>} {<openssh-client>})]
                          spids: [73330 73360]
                        )
                      ]
                    )
                  ]
                  spids: [73308 73322]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<umount>} {<-f>} {</mnt/samba>})
                    (C {<G_AGP>} {<smbclient>})
                    (C {<sed>} {<-i>} 
                      {
                        (SQ 
                          <
'/\\/mnt\\/samba/c\\#\\/mnt\\/samba . Please use dietpi-config and the Networking Options: NAS menu to setup this mount'
                          >
                        )
                      } {</etc/fstab>}
                    )
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <'Samba client can be installed and setup by DietPi-Config.'> 
                            <Id.Lit_Other '\\'> <'nSimply run: dietpi-config and select the Networking Options: NAS/Misc menu'>
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</mnt/samba/readme.txt>}
                        )
                      ]
                    )
                  ]
                  spids: [73374 73388]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 111>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_RUN_CMD>} {<dpkg>} {<-P>} {<urbackup-server>})
                    (C {<rm>} {</etc/systemd/system/urbackupsrv.service>})
                    (C {<rm>} {</etc/default/urbackupsrv>})
                    (C {<rm>} {</etc/logrotate.d/urbackupsrv>})
                    (C {<rm>} {</usr/sbin/urbackupsrv>})
                    (C {<rm>} {</usr/bin/urbackup_snapshot_helper>})
                    (C {<rm>} {</usr/bin/urbackupsrv>})
                    (C {<rm>} {<-R>} {</usr/share/urbackup>})
                  ]
                  spids: [73439 73453]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 110>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<umount>} {<-f>} {</mnt/nfs_client>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {<Id.Lit_Digits 109>}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<G_AGP>} {<nfs-common>})]
                          spids: [73539 73558]
                        )
                      ]
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (SQ 
                          <
'/\\/mnt\\/nfs_client/c\\#\\/mnt\\/nfs_client . Please use dietpi-config and the Networking Options: NAS menu to setup this mount'
                          >
                        )
                      } {</etc/fstab>}
                    )
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <'NFS client can be installed and setup by DietPi-Config.'> 
                            <Id.Lit_Other '\\'> <'nSimply run: dietpi-config and select the Networking Options: NAS/Misc menu'>
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</mnt/nfs_client/readme.txt>}
                        )
                      ]
                    )
                  ]
                  spids: [73509 73523]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 16>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<build-essential>})]
                  spids: [73608 73622]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 17>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<git>})]
                  spids: [73632 73646]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 5>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<alsa-utils>})]
                  spids: [73656 73670]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 6>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<xcompmgr>} {<xterm>} {<xinit>} {<xauth>} {<xserver-xorg>} {<dbus-x11>} 
                      {<xfonts-base>} {<x11-xserver-utils>} {<x11-common>} {<x11-utils>}
                    )
                    (command.Simple
                      words: [{<rm>} {</etc/xdg/autostart/xcompmgr.desktop>} {</etc/X11/xorg.conf>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                  ]
                  spids: [73680 73694]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<umount>} {<-f>} {</mnt/ftp_client>})
                    (C {<G_AGP>} {<curlftpfs>})
                    (C {<sed>} {<-i>} 
                      {
                        (SQ 
                          <
'/\\/mnt\\/ftp_client/c\\#\\/mnt\\/ftp_client . Please use dietpi-config and the Networking Options: NAS menu to setup this mount'
                          >
                        )
                      } {</etc/fstab>}
                    )
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <'FTP client mount can be installed and setup by DietPi-Config.'> 
                            <Id.Lit_Other '\\'> <'nSimply run: dietpi-config and select the Networking Options: NAS/Misc menu'>
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</mnt/ftp_client/readme.txt>}
                        )
                      ]
                    )
                  ]
                  spids: [73737 73751]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 7>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<ffmpeg>})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Less
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$G_HW_MODEL')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 10>})
                            )
                        )
                        (C {<G_RUN_CMD>} {<dpkg>} {<-P>} {<libx264>} {<libmp3lame>} {<libfdk-aac>})
                      ]
                    )
                  ]
                  spids: [73804 73818]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 8>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<openjdk-8-jdk>})
                    (command.Simple
                      words: [{<rm>} {</etc/apt/preferences.d/99-dietpi-openjdk-8-jdk>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                  ]
                  spids: [73862 73876]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 104>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<dropbear> <Id.Lit_Star '*'>})]
                  spids: [73895 73909]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 105>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<openssh-> <Id.Lit_Star '*'>})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [73952]
                        )
                      ]
                    )
                  ]
                  spids: [73923 73937]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 103>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<sed>} {<-i>} {(SQ <'/\\/var\\/log/c\\#\\/var\\/log DietPi Ramlog Disabled'>)} 
                      {</etc/fstab>}
                    )
                  ]
                  spids: [73961 73975]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 101>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<logrotate>})]
                  spids: [73991 74005]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 102>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<rsyslog>})]
                  spids: [74015 74029]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 9>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_AGP>} {<nodejs>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<-f>} 
                                  {</etc/apt/sources.list.d/nodesource_nodejs.list>} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<rm>} {</etc/apt/sources.list.d/nodesource_nodejs.list>})
                            (C {<G_AGUP>})
                          ]
                          spids: [74067 74078]
                        )
                      ]
                    )
                    (C {<rm>} {</usr/local/bin/node>})
                  ]
                  spids: [74039 74053]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 4>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<G_AGP>} {<vifm>})]
                  spids: [74101 74115]
                )
              ]
              else_action: [
                (C {<G_DIETPI-NOTIFY>} {<2>} 
                  {
                    (DQ <'Software index '> ($ Id.VSub_DollarName '$index') 
                      <' is unknown, or, has no removal code.'>
                    )
                  }
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:valid_input)
                      op: assign_op.Equal
                      rhs: {<0>}
                      spids: [74140]
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} 
                          {</DietPi/dietpi/.uninstalled>} {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <'DietPi Uninstall Software Log'> <Id.Lit_Other '\\'> 
                            <n----------------------> <Id.Lit_Other '\\'> <n>
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</DietPi/dietpi/.uninstalled>}
                        )
                      ]
                    )
                  ]
                  spids: [74157 74170]
                )
              ]
            )
            (command.Simple
              words: [
                {<echo>}
                {<-e>}
                {
                  (DQ ($ Id.VSub_DollarName '$index') <' | '> 
                    (command_sub
                      left_token: <Id.Left_DollarParen '$('>
                      command_list: (command.CommandList children:[(C {<date>})])
                    )
                  )
                }
              ]
              redirects: [
                (redir.Redir
                  op: <Id.Redir_DGreat '>>'>
                  fd: -1
                  arg_word: {</DietPi/dietpi/.uninstalled>}
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      name: aSOFTWARE_INSTALL_STATE
                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$index')})
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [74218]
                )
              ]
            )
            (C {<G_ERROR_HANDLER_RESET>})
          ]
        )
    )
    (command.ShFunction
      name: Uninstall_Software_Finalize
      body: 
        (command.BraceGroup
          children: [
            (C {<G_DIETPI-NOTIFY>} {<3>} {<DietPi-Software>} 
              {(DQ <'Removing packages that are no longer required'>)}
            )
            (C {<apt-get>} {<autoremove>} {<--purge>} {<-y>})
            (C {<local>} {<Id.Lit_VarLike 'fp_temp='> (SQ </tmp/.dietpi-uninstall_dpkg>)})
            (command.Pipeline
              children: [
                (C {<dpkg>} {<--get-selections>})
                (command.Simple
                  words: [{<awk>} {(SQ <'{print $1}'>)}]
                  redirects: [
                    (redir.Redir
                      op: <Id.Redir_Great '>'>
                      fd: -1
                      arg_word: {(DQ ($ Id.VSub_DollarName '$fp_temp'))}
                    )
                  ]
                )
              ]
              negated: F
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DAmp
                              left: 
                                (arith_expr.Unary
                                  op_id: Id.Arith_Bang
                                  child: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^openssh-server'>)} 
                                                    {(DQ ($ Id.VSub_DollarName '$fp_temp'))}
                                                  )
                                                ]
                                              )
                                          )
                                        }
                                    )
                                )
                              right: 
                                (arith_expr.Unary
                                  op_id: Id.Arith_Bang
                                  child: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^dropbear'>)} 
                                                    {(DQ ($ Id.VSub_DollarName '$fp_temp'))}
                                                  )
                                                ]
                                              )
                                          )
                                        }
                                    )
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_SSHSERVER_CURRENT)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [74362]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_SSHSERVER_TARGET)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [74366]
                        )
                      ]
                    )
                  ]
                  spids: [74311 74358]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DAmp
                              left: 
                                (arith_expr.Unary
                                  op_id: Id.Arith_Bang
                                  child: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^samba$'>)} 
                                                    {(DQ ($ Id.VSub_DollarName '$fp_temp'))}
                                                  )
                                                ]
                                              )
                                          )
                                        }
                                    )
                                )
                              right: 
                                (arith_expr.Unary
                                  op_id: Id.Arith_Bang
                                  child: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^proftpd-basic'>)} 
                                                    {(DQ ($ Id.VSub_DollarName '$fp_temp'))}
                                                  )
                                                ]
                                              )
                                          )
                                        }
                                    )
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_FILESERVER_CURRENT)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [74426]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_FILESERVER_TARGET)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [74430]
                        )
                      ]
                    )
                  ]
                  spids: [74375 74422]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DAmp
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DAmp
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (C {<grep>} {<-ci>} {<-m1>} {(SQ <'#/var/log'>)} 
                                                    {</etc/fstab>}
                                                  )
                                                ]
                                              )
                                          )
                                        }
                                    )
                                  right: 
                                    (arith_expr.Unary
                                      op_id: Id.Arith_Bang
                                      child: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                command_list: 
                                                  (command.CommandList
                                                    children: [
                                                      (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^rsyslog'>)} 
                                                        {(DQ ($ Id.VSub_DollarName '$fp_temp'))}
                                                      )
                                                    ]
                                                  )
                                              )
                                            }
                                        )
                                    )
                                )
                              right: 
                                (arith_expr.Unary
                                  op_id: Id.Arith_Bang
                                  child: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^logrotate'>)} 
                                                    {(DQ ($ Id.VSub_DollarName '$fp_temp'))}
                                                  )
                                                ]
                                              )
                                          )
                                        }
                                    )
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_LOGGING_CURRENT)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [74507]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INDEX_LOGGING_TARGET)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [74511]
                        )
                      ]
                    )
                  ]
                  spids: [74439 74503]
                )
              ]
            )
            (C {<rm>} {(DQ ($ Id.VSub_DollarName '$fp_temp'))})
            (C {<systemctl>} {<daemon-reload>})
          ]
        )
    )
    (command.ShFunction
      name: Run_Installations
      body: 
        (command.BraceGroup
          children: [
            (C {<Check_NTPD_Status>})
            (command.Simple
              words: [{<setterm>} {<-blank>} {<0>} {<-powersave>} {<off>}]
              redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
            )
            (C {</DietPi/dietpi/dietpi-services>} {<unmask>} {<all>})
            (C {</DietPi/dietpi/dietpi-services>} {<stop>})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$G_DIETPI_INSTALL_STAGE')}
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {</DietPi/dietpi/func/dietpi-set_dphys-swapfile>} 
                      {
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_SWAPFILE_SIZE='>)} 
                                      {</DietPi/dietpi.txt>}
                                    )
                                    (C {<sed>} {(SQ <'s/.*=//'>)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      }
                    )
                  ]
                  spids: [74611 74625]
                )
              ]
            )
            (C {<Create_UserContent_Folders>})
            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$HOME'))})
            (C {<Banner_Apt_Update>})
            (C {<apt-get>} {<clean>})
            (C {<G_AGUP>})
            (C {<G_DIETPI-NOTIFY>} {<2>} 
              {(DQ <'Running apt simulation to check for errors, please wait...'>)}
            )
            (C {<local>} {<Id.Lit_VarLike 'package_to_test='> (SQ <bash-doc>)})
            (C {<G_AGI>} {($ Id.VSub_DollarName '$package_to_test')} {<-s>})
            (C {<Banner_Setup>})
            (C {<Banner_Apt_Update>})
            (C {<G_AGUG>})
            (C {<mkdir>} {<-p>} {</var/lib/dietpi/dietpi-software/services>})
            (C {<chmod>} {<-R>} {<Id.Lit_Other '+'> <x>} {</var/lib/dietpi/dietpi-software/services>})
            (C {<Install_Disable_Requires_UserInput>})
            (C {<Apply_FileServer_Choices>})
            (C {<Apply_SSHServer_Choices>})
            (C {<Apply_Logging_Choices>})
            (C {<Apply_Webserver_Preference>})
            (C {<Install_Flag_Prereq_Software>})
            (C {</DietPi/dietpi/dietpi-services>} {<stop>})
            (C {<Install_Linux_Software>})
            (C {</DietPi/dietpi/dietpi-services>} {<stop>})
            (C {<Install_Dietpi_Software>})
            (C {<Uninstall_NonSelected_Choices>})
            (C {</DietPi/dietpi/dietpi-services>} {<stop>})
            (C {<Banner_Configs>})
            (C {<Install_Apply_Configs>})
            (command.Simple
              words: [{<Install_Apply_Permissions>}]
              redirects: [(redir.Redir op:<Id.Redir_AndGreat '&>'> fd:-1 arg_word:{</dev/null>})]
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'autostart_current='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  command_list: 
                    (command.CommandList
                      children: [(C {<cat>} {</DietPi/dietpi/.dietpi-autostart_index>})]
                    )
                )
              }
            )
            (C {</DietPi/dietpi/dietpi-autostart>} {($ Id.VSub_DollarName '$autostart_current')})
            (C {</DietPi/dietpi/dietpi-services>} {<dietpi_controlled>})
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<2>}
                                  spids: [74947]
                                )
                              ]
                            )
                          ]
                          spids: [74924 74943]
                        )
                      ]
                    )
                  ]
                )
            )
            (C {<Install_Apply_GPU_Settings>})
            (C {<Write_InstallFileList>})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$G_DIETPI_INSTALL_STAGE')}
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} 
                                  {(DQ ($ Id.VSub_DollarName '$AUTOINSTALL_TIMEZONE'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <Europe/London>)} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<echo>} {<-e>} 
                              {
                                (DQ <Id.Lit_Other '\\'> <'nDietPi: Setting Timezone = '> 
                                  ($ Id.VSub_DollarName '$AUTOINSTALL_TIMEZONE')
                                )
                              }
                            )
                            (C {<rm>} {</etc/timezone>})
                            (C {<rm>} {</etc/localtime>})
                            (C {<ln>} {<-fs>} 
                              {</usr/share/zoneinfo/> ($ Id.VSub_DollarName '$AUTOINSTALL_TIMEZONE')} {</etc/localtime>}
                            )
                            (C {<dpkg-reconfigure>} {<-f>} {<noninteractive>} {<tzdata>})
                          ]
                          spids: [75006 75024]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} 
                                  {(DQ ($ Id.VSub_DollarName '$AUTOINSTALL_LANGUAGE'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <en_GB.UTF-8>)} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                              {
                                (DQ <'Setting Locale '> ($ Id.VSub_DollarName '$AUTOINSTALL_LANGUAGE') 
                                  <'. Please wait'>
                                )
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} {<-z>} 
                                          {(DQ ($ Id.VSub_DollarName '$AUTOINSTALL_LANGUAGE'))} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:AUTOINSTALL_LANGUAGE)
                                          op: assign_op.Equal
                                          rhs: {(SQ <en_GB.UTF-8>)}
                                          spids: [75132]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [75115 75128]
                                )
                              ]
                            )
                            (C {</DietPi/dietpi/func/dietpi-set_software>} {<locale>} 
                              {(DQ ($ Id.VSub_DollarName '$AUTOINSTALL_LANGUAGE'))}
                            )
                          ]
                          spids: [75077 75095]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} 
                                  {(DQ ($ Id.VSub_DollarName '$AUTOINSTALL_KEYBOARD'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <gb>)} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                              {
                                (DQ <'Setting Keyboard '> 
                                  ($ Id.VSub_DollarName '$AUTOINSTALL_KEYBOARD') <'. Please wait...'> <Id.Lit_Other '\\'> <n>
                                )
                              }
                            )
                            (C {<sed>} {<-i>} 
                              {(SQ <'/XKBLAYOUT=/c XKBLAYOUT="'>) 
                                (DQ ($ Id.VSub_DollarName '$AUTOINSTALL_KEYBOARD')) (SQ <'"'>)
                              } {</etc/default/keyboard>}
                            )
                          ]
                          spids: [75165 75183]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {</DietPi/dietpi/func/dietpi-set_smbclient>} {<1>})]
                          spids: [75230 75249]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {</DietPi/dietpi/func/dietpi-set_curlftpfs>} {<1>})]
                          spids: [75263 75282]
                        )
                      ]
                    )
                    (C {<local>} {<Id.Lit_VarLike 'run_custom_script='> <0>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<-f>} {</boot/Automation_Custom_Script.sh>} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_DESCRIPTION)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'Automation - Local Custom Script'>)}
                                  spids: [75321]
                                )
                              ]
                            )
                            (C {<Banner_Installing>})
                            (C {<cp>} {</boot/Automation_Custom_Script.sh>} 
                              {</root/AUTO_CustomScript.sh>}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:run_custom_script)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [75338]
                                )
                              ]
                            )
                          ]
                          spids: [75306 75317]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} 
                                  {(DQ ($ Id.VSub_DollarName '$AUTOINSTALL_CUSTOMSCRIPTURL'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <0>)} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_DESCRIPTION)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'Automation - Online Custom Script'>)}
                                  spids: [75369]
                                )
                              ]
                            )
                            (C {<Banner_Installing>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_URL_ADDRESS)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$AUTOINSTALL_CUSTOMSCRIPTURL')}
                                  spids: [75380]
                                )
                              ]
                            )
                            (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: (arith_expr.ArithWord w:{($ Id.VSub_QMark '$?')})
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<wget>} {(DQ ($ Id.VSub_DollarName '$INSTALL_URL_ADDRESS'))} 
                                      {<-O>} {</root/AUTO_CustomScript.sh>}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:run_custom_script)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [75429]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [75396 75410]
                                )
                              ]
                              else_action: [
                                (command.Simple
                                  words: [
                                    {<echo>}
                                    {<-e>}
                                    {
                                      (DQ <'Automated Custom Script URL Error:'> <Id.Lit_Other '\\'> 
                                        <'n '> ($ Id.VSub_DollarName '$AUTOINSTALL_CUSTOMSCRIPTURL') <' is offline and/or unreachable'>
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (redir.Redir
                                      op: <Id.Redir_DGreat '>>'>
                                      fd: -1
                                      arg_word: 
                                        {(DQ ($ Id.VSub_DollarName '$FP_DIETPIAUTOMATION_LOG'))}
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [75347 75365]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$run_custom_script')}
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<chmod>} {<Id.Lit_Other '+'> <x>} {</root/AUTO_CustomScript.sh>})
                            (C {</root/AUTO_CustomScript.sh>})
                            (C {<local>} {<Id.Lit_VarLike 'result='> ($ Id.VSub_QMark '$?')})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$result')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.Simple
                                      words: [
                                        {<echo>}
                                        {<-e>}
                                        {
                                          (DQ <'Automated custom script executed succesfully:'> 
                                            <Id.Lit_Other '\\'> <'n - Filepath = /root/AUTO_CustomScript.sh'> <Id.Lit_Other '\\'> <'n - URL = '> 
                                            ($ Id.VSub_DollarName '$AUTOINSTALL_CUSTOMSCRIPTURL')
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (redir.Redir
                                          op: <Id.Redir_DGreat '>>'>
                                          fd: -1
                                          arg_word: 
                                            {(DQ ($ Id.VSub_DollarName '$FP_DIETPIAUTOMATION_LOG'))}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [75497 75511]
                                )
                              ]
                              else_action: [
                                (command.Simple
                                  words: [
                                    {<echo>}
                                    {<-e>}
                                    {
                                      (DQ <'Automated Custom Script Error:'> <Id.Lit_Other '\\'> 
                                        <'n - Exit code = '> ($ Id.VSub_DollarName '$result') <Id.Lit_Other '\\'> <'n - Filepath = /root/AUTO_CustomScript.sh'> 
                                        <Id.Lit_Other '\\'> <'n - URL = '> ($ Id.VSub_DollarName '$AUTOINSTALL_CUSTOMSCRIPTURL')
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (redir.Redir
                                      op: <Id.Redir_DGreat '>>'>
                                      fd: -1
                                      arg_word: 
                                        {(DQ ($ Id.VSub_DollarName '$FP_DIETPIAUTOMATION_LOG'))}
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [75466 75476]
                        )
                      ]
                    )
                    (C {</DietPi/dietpi/dietpi-autostart>} 
                      {($ Id.VSub_DollarName '$AUTOINSTALL_AUTOSTARTTARGET')}
                    )
                  ]
                  spids: [74984 74998]
                )
              ]
            )
            (command.Simple
              words: [{<echo>} {<1>}]
              redirects: [
                (redir.Redir
                  op: <Id.Redir_Great '>'>
                  fd: -1
                  arg_word: {</DietPi/dietpi/.install_stage>}
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:AUTOINSTALL_ENABLED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [75616]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:AUTOINSTALL_SSHINDEX)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [75621]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:AUTOINSTALL_FILESERVERINDEX)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [75625]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:AUTOINSTALL_LOGGINGINDEX)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [75629]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:AUTOINSTALL_WEBSERVERINDEX)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [75633]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:AUTOINSTALL_AUTOSTARTTARGET)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [75638]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:AUTOINSTALL_TIMEZONE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [75643]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:AUTOINSTALL_LANGUAGE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [75647]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:AUTOINSTALL_KEYBOARD)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [75651]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:AUTOINSTALL_CUSTOMSCRIPTURL)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [75656]
        )
      ]
    )
    (command.ShFunction
      name: FirstRun_Automation_Init
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:AUTOINSTALL_ENABLED)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {<cat>} {</DietPi/dietpi.txt>})
                                  (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_AUTOMATED='>)})
                                  (C {<sed>} {(SQ <'s/.*=//'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [75672]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:AUTOINSTALL_AUTOSTARTTARGET)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {<cat>} {</DietPi/dietpi.txt>})
                                  (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_AUTOSTART_TARGET_INDEX='>)})
                                  (C {<sed>} {(SQ <'s/.*=//'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [75699]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:AUTOINSTALL_SSHINDEX)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {<cat>} {</DietPi/dietpi.txt>})
                                  (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_SSH_SERVER_INDEX='>)})
                                  (C {<sed>} {(SQ <'s/.*=//'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [75727]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:AUTOINSTALL_FILESERVERINDEX)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {<cat>} {</DietPi/dietpi.txt>})
                                  (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_FILE_SERVER_INDEX='>)})
                                  (C {<sed>} {(SQ <'s/.*=//'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [75753]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:AUTOINSTALL_LOGGINGINDEX)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {<cat>} {</DietPi/dietpi.txt>})
                                  (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_LOGGING_INDEX='>)})
                                  (C {<sed>} {(SQ <'s/.*=//'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [75779]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:AUTOINSTALL_WEBSERVERINDEX)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {<cat>} {</DietPi/dietpi.txt>})
                                  (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_WEB_SERVER_INDEX='>)})
                                  (C {<sed>} {(SQ <'s/.*=//'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [75805]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:AUTOINSTALL_TIMEZONE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {<cat>} {</DietPi/dietpi.txt>})
                                  (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_TIMEZONE='>)})
                                  (C {<sed>} {(SQ <'s/.*=//'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [75832]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:AUTOINSTALL_LANGUAGE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {<cat>} {</DietPi/dietpi.txt>})
                                  (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_LOCALE='>)})
                                  (C {<sed>} {(SQ <'s/.*=//'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [75859]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:AUTOINSTALL_KEYBOARD)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {<cat>} {</DietPi/dietpi.txt>})
                                  (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_KEYBOARD_LAYOUT='>)})
                                  (C {<sed>} {(SQ <'s/.*=//'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [75886]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:AUTOINSTALL_CUSTOMSCRIPTURL)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {<cat>} {</DietPi/dietpi.txt>})
                                  (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_CUSTOM_SCRIPT_EXEC='>)})
                                  (C {<sed>} {(SQ <'s/AUTO_SETUP_CUSTOM_SCRIPT_EXEC=//'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [75914]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: FirstRun_Automation_Set
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_GreatEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$AUTOINSTALL_ENABLED')}
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_DIETPI-NOTIFY>} {<3>} {<DietPi-Software>} 
                      {(DQ <'Running automated installation'>)}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                          op: assign_op.Equal
                          rhs: {<-1>}
                          spids: [75990]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:GOSTARTINSTALL)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [75999]
                        )
                      ]
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: [(C {<read>} {<-r>} {<line>})]
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<local>} 
                              {<Id.Lit_VarLike 'index='> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (command.Pipeline
                                          children: [
                                            (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$line'))})
                                            (C {<grep>} {(SQ <'^AUTO_SETUP_INSTALL_SOFTWARE_ID='>)})
                                            (C {<sed>} {(SQ <'s/[^0-9]*//g'>)})
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                )
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_EqualTilde
                                              left: {($ Id.VSub_DollarName '$index')}
                                              right: 
                                                {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> 
                                                  <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'>
                                                }
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              name: aSOFTWARE_INSTALL_STATE
                                              index: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$index')}
                                                )
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [76082]
                                        )
                                      ]
                                    )
                                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                                      {
                                        (DQ <'Automation: '> 
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: 
                                                  (arith_expr.ArithWord
                                                    w: {($ Id.VSub_DollarName '$index')}
                                                  )
                                              )
                                          ) <'. Flagged for installation.'>
                                        )
                                      }
                                    )
                                  ]
                                  spids: [76058 76078]
                                )
                              ]
                            )
                          ]
                        )
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Less '<'>
                          fd: -1
                          arg_word: {</DietPi/dietpi.txt>}
                        )
                      ]
                    )
                  ]
                  spids: [75956 75970]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INDEX_SSHSERVER_TARGET)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$AUTOINSTALL_SSHINDEX')}
                  spids: [76128]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INDEX_FILESERVER_TARGET)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$AUTOINSTALL_FILESERVERINDEX')}
                  spids: [76132]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INDEX_LOGGING_TARGET)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$AUTOINSTALL_LOGGINGINDEX')}
                  spids: [76136]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INDEX_WEBSERVER_TARGET)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$AUTOINSTALL_WEBSERVERINDEX')}
                  spids: [76140]
                )
              ]
            )
            (C {</DietPi/dietpi/func/dietpi-set_hardware>} {<preferipversion>} 
              {
                (DQ 
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    command_list: 
                      (command.CommandList
                        children: [
                          (command.Pipeline
                            children: [
                              (C {<cat>} {</DietPi/dietpi.txt>})
                              (C {<grep>} {<-m1>} {(SQ <'^CONFIG_PREFER_IPVERSION='>)})
                              (C {<sed>} {(SQ <'s/.*=//'>)})
                            ]
                            negated: F
                          )
                        ]
                      )
                  )
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: FirstRun_DietPi_Update
      body: 
        (command.BraceGroup
          children: [
            (command.Simple
              words: [{<setterm>} {<-blank>} {<0>} {<-powersave>} {<off>}]
              redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})]
            )
            (command.Simple
              words: [{<echo>} {<1>}]
              redirects: [
                (redir.Redir
                  op: <Id.Redir_Great '>'>
                  fd: -1
                  arg_word: {</DietPi/dietpi/.update_stage>}
                )
              ]
            )
            (C {<G_AGUP>})
            (C {</DietPi/dietpi/dietpi-update>} {<1>})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        command_list: 
                                          (command.CommandList
                                            children: [(C {<cat>} {</DietPi/dietpi/.update_stage>})]
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{<echo>} {<1>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {</DietPi/dietpi/.update_stage>}
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$G_USER_INPUTS')}
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'DietPi Update Completed'>)}
                                  spids: [76306]
                                )
                              ]
                            )
                            (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} 
                              {<--msgbox>} 
                              {
                                (DQ <'DietPi has been updated to the latest version.'> 
                                  <Id.Lit_Other '\\'> <'nYour system will now reboot. Once completed, simply login to resume DietPi Setup. '> 
                                  <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'nPress Enter to Continue.'>
                                )
                              } {<13>} {<65>}
                            )
                          ]
                          spids: [76292 76302]
                        )
                      ]
                    )
                    (C {<reboot>})
                    (C {<Exit_Destroy>})
                  ]
                  spids: [76252 76270]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INTERNET_URL_TEST)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Pipeline
                        children: [
                          (C {<grep>} {<-m1>} {(SQ <'deb '>)} {</etc/apt/sources.list>})
                          (C {<awk>} {(SQ <'{print $2}'>)})
                        ]
                        negated: F
                      )
                    ]
                  )
              )
            }
          spids: [76377]
        )
      ]
    )
    (command.ShFunction
      name: Check_Internet_Connection
      body: 
        (command.BraceGroup
          children: [(C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$INTERNET_URL_TEST'))})]
        )
    )
    (command.ShFunction
      name: Input_Modes
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<-1>}
                  spids: [76445]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:DISABLE_REBOOT)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [76450]
                )
              ]
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'ainput='> 
                (sh_array_literal
                  left: <Id.Op_LParen _>
                  words: [{(DQ ($ Id.VSub_At '$@'))}]
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DPipe Id.Op_DPipe]
                          children: [
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} 
                              {<Id.Lit_Equals '='>} {(DQ <install>)} {<Id.Lit_RBracket ']'>}
                            )
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} 
                              {<Id.Lit_Equals '='>} {(DQ <reinstall>)} {<Id.Lit_RBracket ']'>}
                            )
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} 
                              {<Id.Lit_Equals '='>} {(DQ <uninstall>)} {<Id.Lit_RBracket ']'>}
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_DIETPI-NOTIFY>} {<3>} {<DietPi-Software>} 
                      {(DQ <'Automated '> ($ Id.VSub_Number '$1'))}
                    )
                    (C {<sleep>} {<1>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_Number '$2'))} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<1>} 
                              {
                                (DQ 
                                  <
'Please enter a software index ID, or, choice system INDEX_*_TARGET=-?'
                                  >
                                )
                              }
                            )
                          ]
                          spids: [76547 76560]
                        )
                      ]
                      else_action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} 
                                      {<Id.Lit_Equals '='>} {(DQ <uninstall>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [(C {</DietPi/dietpi/dietpi-services>} {<stop>})]
                              spids: [76582 76599]
                            )
                          ]
                        )
                        (command.ForEach
                          iter_name: i
                          iter_words: [
                            {
                              (DQ 
                                (braced_var_sub
                                  token: <Id.VSub_Name ainput>
                                  bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                )
                              )
                            }
                          ]
                          do_arg_iter: F
                          body: 
                            (command.DoGroup
                              children: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_EqualTilde
                                                  left: {($ Id.VSub_DollarName '$i')}
                                                  right: 
                                                    {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> 
                                                      <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'>
                                                    }
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                      action: [
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<Id.Lit_LBracket '['>} 
                                                      {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} {(DQ <uninstall>)} {<Id.Lit_RBracket ']'>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                              action: [
                                                (C {<Uninstall_Software>} 
                                                  {(DQ ($ Id.VSub_DollarName '$i'))}
                                                )
                                              ]
                                              spids: [76669 76686]
                                            )
                                            (if_arm
                                              cond: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<Id.Lit_LBracket '['>} 
                                                      {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} {(DQ <reinstall>)} {<Id.Lit_RBracket ']'>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                              action: [
                                                (command.If
                                                  arms: [
                                                    (if_arm
                                                      cond: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.DParen
                                                              child: 
                                                                (arith_expr.Binary
                                                                  op_id: Id.Arith_DEqual
                                                                  left: 
                                                                    (arith_expr.ArithWord
                                                                      w: 
                                                                        {
                                                                          (braced_var_sub
                                                                            token: 
                                                                              <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                              >
                                                                            bracket_op: 
                                                                              (bracket_op.ArrayIndex
                                                                                expr: 
                                                                                  (arith_expr.ArithWord
                                                                                    w: 
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName '$i'
                                                                                        )
                                                                                      }
                                                                                  )
                                                                              )
                                                                          )
                                                                        }
                                                                    )
                                                                  right: 
                                                                    (arith_expr.ArithWord
                                                                      w: {<Id.Lit_Digits 2>}
                                                                    )
                                                                )
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.IndexedName
                                                                  name: aSOFTWARE_INSTALL_STATE
                                                                  index: 
                                                                    (arith_expr.ArithWord
                                                                      w: {($ Id.VSub_DollarName '$i')}
                                                                    )
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<1>}
                                                              spids: [76755]
                                                            )
                                                          ]
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: GOSTARTINSTALL
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<1>}
                                                              spids: [76763]
                                                            )
                                                          ]
                                                        )
                                                        (C {<G_DIETPI-NOTIFY>} {<0>} 
                                                          {
                                                            (DQ <'Reinstalling '> 
                                                              (braced_var_sub
                                                                token: 
                                                                  <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      (arith_expr.ArithWord
                                                                        w: 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$i'
                                                                            )
                                                                          }
                                                                      )
                                                                  )
                                                              ) <': '> 
                                                              (braced_var_sub
                                                                token: 
                                                                  <Id.VSub_Name aSOFTWARE_WHIP_DESC>
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      (arith_expr.ArithWord
                                                                        w: 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$i'
                                                                            )
                                                                          }
                                                                      )
                                                                  )
                                                              )
                                                            )
                                                          }
                                                        )
                                                        (C {<sleep>} {<1>})
                                                      ]
                                                      spids: [76719 76738]
                                                    )
                                                  ]
                                                  else_action: [
                                                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                                                      {
                                                        (DQ ($ Id.VSub_DollarName '$i') <': '> 
                                                          (braced_var_sub
                                                            token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  (arith_expr.ArithWord
                                                                    w: {($ Id.VSub_DollarName '$i')}
                                                                  )
                                                              )
                                                          ) <' is not currently installed'>
                                                        )
                                                      }
                                                    )
                                                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                                                      {
                                                        (DQ 
                                                          <
'The program must be installed, before reinstall can be used'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {<G_DIETPI-NOTIFY>} {<0>} 
                                                      {
                                                        (DQ <'No changes applied for: '> 
                                                          (braced_var_sub
                                                            token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  (arith_expr.ArithWord
                                                                    w: {($ Id.VSub_DollarName '$i')}
                                                                  )
                                                              )
                                                          )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [76698 76715]
                                            )
                                            (if_arm
                                              cond: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<Id.Lit_LBracket '['>} 
                                                      {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} {(DQ <install>)} {<Id.Lit_RBracket ']'>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                              action: [
                                                (command.If
                                                  arms: [
                                                    (if_arm
                                                      cond: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.DParen
                                                              child: 
                                                                (arith_expr.Binary
                                                                  op_id: Id.Arith_NEqual
                                                                  left: 
                                                                    (arith_expr.ArithWord
                                                                      w: 
                                                                        {
                                                                          (braced_var_sub
                                                                            token: 
                                                                              <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                              >
                                                                            bracket_op: 
                                                                              (bracket_op.ArrayIndex
                                                                                expr: 
                                                                                  (arith_expr.ArithWord
                                                                                    w: 
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName '$i'
                                                                                        )
                                                                                      }
                                                                                  )
                                                                              )
                                                                          )
                                                                        }
                                                                    )
                                                                  right: 
                                                                    (arith_expr.ArithWord
                                                                      w: {<Id.Lit_Digits 2>}
                                                                    )
                                                                )
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.IndexedName
                                                                  name: aSOFTWARE_INSTALL_STATE
                                                                  index: 
                                                                    (arith_expr.ArithWord
                                                                      w: {($ Id.VSub_DollarName '$i')}
                                                                    )
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<1>}
                                                              spids: [76890]
                                                            )
                                                          ]
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: GOSTARTINSTALL
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<1>}
                                                              spids: [76898]
                                                            )
                                                          ]
                                                        )
                                                        (C {<G_DIETPI-NOTIFY>} {<0>} 
                                                          {
                                                            (DQ <'Installing '> 
                                                              (braced_var_sub
                                                                token: 
                                                                  <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      (arith_expr.ArithWord
                                                                        w: 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$i'
                                                                            )
                                                                          }
                                                                      )
                                                                  )
                                                              ) <': '> 
                                                              (braced_var_sub
                                                                token: 
                                                                  <Id.VSub_Name aSOFTWARE_WHIP_DESC>
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      (arith_expr.ArithWord
                                                                        w: 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$i'
                                                                            )
                                                                          }
                                                                      )
                                                                  )
                                                              )
                                                            )
                                                          }
                                                        )
                                                        (C {<sleep>} {<0.5>})
                                                      ]
                                                      spids: [76867 76886]
                                                    )
                                                  ]
                                                  else_action: [
                                                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                                                      {
                                                        (DQ ($ Id.VSub_DollarName '$i') <': '> 
                                                          (braced_var_sub
                                                            token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  (arith_expr.ArithWord
                                                                    w: {($ Id.VSub_DollarName '$i')}
                                                                  )
                                                              )
                                                          ) <' is already installed'>
                                                        )
                                                      }
                                                    )
                                                    (C {<G_DIETPI-NOTIFY>} {<0>} 
                                                      {
                                                        (DQ <'No changes applied for: '> 
                                                          (braced_var_sub
                                                            token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  (arith_expr.ArithWord
                                                                    w: {($ Id.VSub_DollarName '$i')}
                                                                  )
                                                              )
                                                          )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [76846 76863]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [76645 76665]
                                    )
                                  ]
                                )
                              ]
                            )
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} 
                                      {<Id.Lit_Equals '='>} {(DQ <uninstall>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (C {<Uninstall_Software_Finalize>})
                                (C {<Write_InstallFileList>})
                                (C {</DietPi/dietpi/dietpi-services>} {<start>})
                              ]
                              spids: [76988 77005]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [76471 76521]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} 
                          {(DQ <setpermissions>)} {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{<Install_Apply_Permissions>}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_AndGreat '&>'>
                          fd: -1
                          arg_word: {</dev/null>}
                        )
                      ]
                    )
                    (C {<G_DIETPI-NOTIFY>} {<0>} {(DQ <'Set permissions completed'>)})
                  ]
                  spids: [77043 77060]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} 
                          {(DQ <list>)} {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: (sh_lhs_expr.Name name:i)
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                          right: 
                            (arith_expr.ArithWord
                              w: {($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')}
                            )
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: (sh_lhs_expr.Name name:i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<local>} {<Id.Lit_VarLike 'string='> (SQ )})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:string)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <Id.Lit_Other '\\'> <'e[32mID '> 
                                                ($ Id.VSub_DollarName '$i') <' | '>
                                              )
                                            }
                                          spids: [77160]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [77137 77156]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:string)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ <Id.Lit_Other '\\'> <'e[0mID '> 
                                            ($ Id.VSub_DollarName '$i') <' | '>
                                          )
                                        }
                                      spids: [77174]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:string)
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (DQ <'='> 
                                        (braced_var_sub
                                          token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$i')}
                                                )
                                            )
                                        ) <' | '> 
                                        (braced_var_sub
                                          token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$i')}
                                                )
                                            )
                                        ) <': '> <Id.Lit_Other '\\'> <'e[90m'> 
                                        (braced_var_sub
                                          token: <Id.VSub_Name aSOFTWARE_WHIP_DESC>
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$i')}
                                                )
                                            )
                                        ) <Id.Lit_Other '\\'> <'e[0m |'>
                                      )
                                    }
                                  spids: [77188]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: <Id.VSub_Name aSOFTWARE_REQUIRES_ALSA>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:string)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <' +ALSA'>)}
                                          spids: [77242]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [77219 77238]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: 
                                                          <Id.VSub_Name 
aSOFTWARE_REQUIRES_XSERVERXORG
                                                          >
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:string)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <' +XSERVER'>)}
                                          spids: [77275]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [77252 77271]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: 
                                                          <Id.VSub_Name aSOFTWARE_REQUIRES_DESKTOP>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:string)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <' +DESKTOP'>)}
                                          spids: [77309]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [77286 77305]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: 
                                                          <Id.VSub_Name aSOFTWARE_REQUIRES_RSYSLOG>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:string)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <' +RSYSLOG'>)}
                                          spids: [77343]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [77320 77339]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: 
                                                          <Id.VSub_Name aSOFTWARE_REQUIRES_FFMPEG>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:string)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <' +FFMPEG'>)}
                                          spids: [77377]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [77354 77373]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: 
                                                          <Id.VSub_Name 
aSOFTWARE_REQUIRES_ORACLEJAVA
                                                          >
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:string)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <' +ORACLEJAVA'>)}
                                          spids: [77411]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [77388 77407]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: 
                                                          <Id.VSub_Name aSOFTWARE_REQUIRES_NODEJS>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:string)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <' +NODEJS'>)}
                                          spids: [77445]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [77422 77441]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: 
                                                          <Id.VSub_Name 
aSOFTWARE_REQUIRES_BUILDESSENTIAL
                                                          >
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:string)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <' +BUILDESSENTIAL'>)}
                                          spids: [77479]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [77456 77475]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: <Id.VSub_Name aSOFTWARE_REQUIRES_GIT>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:string)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <' +GIT'>)}
                                          spids: [77513]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [77490 77509]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: 
                                                          <Id.VSub_Name aSOFTWARE_REQUIRES_WEBSERVER>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:string)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <' +WEBSERVER'>)}
                                          spids: [77547]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [77524 77543]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: 
                                                          <Id.VSub_Name aSOFTWARE_REQUIRES_MYSQL>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:string)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <' +MYSQL'>)}
                                          spids: [77581]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [77558 77577]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: 
                                                          <Id.VSub_Name aSOFTWARE_REQUIRES_SQLITE>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {($ Id.VSub_DollarName '$i')}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:string)
                                          op: assign_op.PlusEqual
                                          rhs: {(SQ <' +SQLITE'>)}
                                          spids: [77615]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [77592 77611]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Unary
                                              op_id: Id.Arith_Bang
                                              child: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: 
                                                          <Id.VSub_Name aSOFTWARE_AVAIL_G_HW_ARCH>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.Binary
                                                                op_id: Id.Arith_Comma
                                                                left: 
                                                                  (arith_expr.ArithWord
                                                                    w: {($ Id.VSub_DollarName '$i')}
                                                                  )
                                                                right: 
                                                                  (arith_expr.ArithWord
                                                                    w: 
                                                                      {
                                                                        ($ Id.VSub_DollarName 
'$G_HW_ARCH'
                                                                        )
                                                                      }
                                                                  )
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:string)
                                          op: assign_op.PlusEqual
                                          rhs: 
                                            {
                                              (DQ <' '> <Id.Lit_Other '\\'> 
                                                <'e[31mDISABLED for G_HW_ARCH'> <Id.Lit_Other '\\'> <'e[0m'>
                                              )
                                            }
                                          spids: [77653]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [77630 77649]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Unary
                                              op_id: Id.Arith_Bang
                                              child: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: 
                                                          <Id.VSub_Name aSOFTWARE_AVAIL_G_HW_MODEL>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.Binary
                                                                op_id: Id.Arith_Comma
                                                                left: 
                                                                  (arith_expr.ArithWord
                                                                    w: {($ Id.VSub_DollarName '$i')}
                                                                  )
                                                                right: 
                                                                  (arith_expr.ArithWord
                                                                    w: 
                                                                      {
                                                                        ($ Id.VSub_DollarName 
'$G_HW_MODEL'
                                                                        )
                                                                      }
                                                                  )
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:string)
                                          op: assign_op.PlusEqual
                                          rhs: 
                                            {
                                              (DQ <' '> <Id.Lit_Other '\\'> 
                                                <'e[31mDISABLED for G_HW_MODEL'> <Id.Lit_Other '\\'> <'e[0m'>
                                              )
                                            }
                                          spids: [77695]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [77672 77691]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} {<-n>} 
                                          {
                                            (DQ 
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_ONLINEDOC_URL>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              )
                                            )
                                          } {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:string)
                                          op: assign_op.PlusEqual
                                          rhs: 
                                            {
                                              (DQ <' | '> <Id.Lit_Other '\\'> <'e[90m'> 
                                                ($ Id.VSub_DollarName '$FP_ONLINEDOC_URL') 
                                                (braced_var_sub
                                                  token: <Id.VSub_Name aSOFTWARE_ONLINEDOC_URL>
                                                  bracket_op: 
                                                    (bracket_op.ArrayIndex
                                                      expr: 
                                                        (arith_expr.ArithWord
                                                          w: {($ Id.VSub_DollarName '$i')}
                                                        )
                                                    )
                                                ) <Id.Lit_Other '\\'> <'e[0m'>
                                              )
                                            }
                                          spids: [77736]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [77714 77732]
                                )
                              ]
                            )
                            (C {<echo>} {<-e>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name string>
                                    suffix_op: (suffix_op.Unary op_id:Id.VOp1_DComma arg_word:(word.Empty))
                                  )
                                )
                              }
                            )
                          ]
                        )
                    )
                    (C {<echo>} {<-e>} 
                      {
                        (DQ <'Total Software index HARD limit : '> 
                          ($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS_HARDLIMIT')
                        )
                      }
                    )
                    (C {<echo>} {<-e>} 
                      {
                        (DQ <'Total Software index Current    : '> 
                          ($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')
                        )
                      }
                    )
                  ]
                  spids: [77085 77102]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} 
                          {(DQ <weblist_export>)} {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'fp_export_dir='> (SQ </tmp/dietpi-software/weblist_export>)}
                    )
                    (C {<rm>} {<-R>} {(DQ ($ Id.VSub_DollarName '$fp_export_dir'))})
                    (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$fp_export_dir'))})
                    (C {<local>} 
                      {<Id.Lit_VarLike 'fp_target='> 
                        (DQ ($ Id.VSub_DollarName '$fp_export_dir') </category_dietpi_total>)
                      }
                    )
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {(DQ ($ Id.VSub_DollarName '$MAX_SOFTWARE_CATEGORIES_DIETPI'))}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {(DQ ($ Id.VSub_DollarName '$fp_target'))}
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'fp_target='> 
                        (DQ ($ Id.VSub_DollarName '$fp_export_dir') </category_linux_total>)
                      }
                    )
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {(DQ ($ Id.VSub_DollarName '$MAX_SOFTWARE_CATEGORIES_LINUX'))}
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {(DQ ($ Id.VSub_DollarName '$fp_target'))}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:fp_target)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$fp_export_dir') </category_dietpi_desc>)}
                          spids: [77910]
                        )
                      ]
                    )
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: (sh_lhs_expr.Name name:i)
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                          right: 
                            (arith_expr.ArithWord
                              w: {($ Id.VSub_DollarName '$MAX_SOFTWARE_CATEGORIES_DIETPI')}
                            )
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: (sh_lhs_expr.Name name:i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<local>} {<Id.Lit_VarLike 'output='>})
                            (command.Simple
                              words: [
                                {<echo>}
                                {<-e>}
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (command.Pipeline
                                              children: [
                                                (C {<echo>} 
                                                  {
                                                    (braced_var_sub
                                                      token: 
                                                        <Id.VSub_Name aSOFTWARE_CATEGORIES_DIETPI>
                                                      bracket_op: 
                                                        (bracket_op.ArrayIndex
                                                          expr: 
                                                            (arith_expr.ArithWord
                                                              w: {($ Id.VSub_DollarName '$i')}
                                                            )
                                                        )
                                                    )
                                                  }
                                                )
                                                (C {<sed>} {(SQ <'s/\xe2\x94\x80//g'>)})
                                              ]
                                              negated: F
                                            )
                                          ]
                                        )
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$fp_target'))}
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:fp_target)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$fp_export_dir') </category_linux_desc>)}
                          spids: [77982]
                        )
                      ]
                    )
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: (sh_lhs_expr.Name name:i)
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                          right: 
                            (arith_expr.ArithWord
                              w: {($ Id.VSub_DollarName '$MAX_SOFTWARE_CATEGORIES_LINUX')}
                            )
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: (sh_lhs_expr.Name name:i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Simple
                              words: [
                                {<echo>}
                                {<-e>}
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (command.Pipeline
                                              children: [
                                                (C {<echo>} 
                                                  {
                                                    (braced_var_sub
                                                      token: 
                                                        <Id.VSub_Name aSOFTWARE_CATEGORIES_LINUX>
                                                      bracket_op: 
                                                        (bracket_op.ArrayIndex
                                                          expr: 
                                                            (arith_expr.ArithWord
                                                              w: {($ Id.VSub_DollarName '$i')}
                                                            )
                                                        )
                                                    )
                                                  }
                                                )
                                                (C {<sed>} {(SQ <'s/\xe2\x94\x80//g'>)})
                                              ]
                                              negated: F
                                            )
                                          ]
                                        )
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$fp_target'))}
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'fp_target='> 
                        (DQ ($ Id.VSub_DollarName '$fp_export_dir') </total_software_index>)
                      }
                    )
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS'))}]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {(DQ ($ Id.VSub_DollarName '$fp_target'))}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:fp_target)
                          op: assign_op.Equal
                          rhs: 
                            {(DQ ($ Id.VSub_DollarName '$fp_export_dir') </software_installed_state>)}
                          spids: [78079]
                        )
                      ]
                    )
                    (command.Simple
                      words: [
                        {<printf>}
                        {(DQ <'%i'> <Id.Lit_Other '\\'> <n>)}
                        {
                          (DQ 
                            (braced_var_sub
                              token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                            )
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {(DQ ($ Id.VSub_DollarName '$fp_target'))}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:fp_target)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$fp_export_dir') </software_name>)}
                          spids: [78111]
                        )
                      ]
                    )
                    (command.Simple
                      words: [
                        {<printf>}
                        {(DQ <'%s'> <Id.Lit_Other '\\'> <n>)}
                        {
                          (DQ 
                            (braced_var_sub
                              token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                            )
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {(DQ ($ Id.VSub_DollarName '$fp_target'))}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:fp_target)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$fp_export_dir') </software_desc>)}
                          spids: [78143]
                        )
                      ]
                    )
                    (command.Simple
                      words: [
                        {<printf>}
                        {(DQ <'%s'> <Id.Lit_Other '\\'> <n>)}
                        {
                          (DQ 
                            (braced_var_sub
                              token: <Id.VSub_Name aSOFTWARE_WHIP_DESC>
                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                            )
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {(DQ ($ Id.VSub_DollarName '$fp_target'))}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:fp_target)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$fp_export_dir') </category_index>)}
                          spids: [78175]
                        )
                      ]
                    )
                    (command.Simple
                      words: [
                        {<printf>}
                        {(DQ <'%i'> <Id.Lit_Other '\\'> <n>)}
                        {
                          (DQ 
                            (braced_var_sub
                              token: <Id.VSub_Name aSOFTWARE_CATEGORY_INDEX>
                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                            )
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {(DQ ($ Id.VSub_DollarName '$fp_target'))}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:fp_target)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$fp_export_dir') </software_urldocs>)}
                          spids: [78207]
                        )
                      ]
                    )
                    (command.Simple
                      words: [
                        {<printf>}
                        {(DQ <'%s'> <Id.Lit_Other '\\'> <n>)}
                        {
                          (DQ 
                            (braced_var_sub
                              token: <Id.VSub_Name aSOFTWARE_ONLINEDOC_URL>
                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                            )
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: <Id.Redir_Great '>'>
                          fd: -1
                          arg_word: {(DQ ($ Id.VSub_DollarName '$fp_target'))}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:fp_target)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$fp_export_dir') 
                                </software_available_hw_model>
                              )
                            }
                          spids: [78243]
                        )
                      ]
                    )
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: (sh_lhs_expr.Name name:i)
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                          right: 
                            (arith_expr.ArithWord
                              w: {($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')}
                            )
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: (sh_lhs_expr.Name name:i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Simple
                              words: [
                                {<printf>}
                                {(DQ <'%i'> <Id.Lit_Other '\\'> <n>)}
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: <Id.VSub_Name aSOFTWARE_AVAIL_G_HW_MODEL>
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_Comma
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$i')}
                                                )
                                              right: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                                )
                                            )
                                        )
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$fp_target'))}
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:fp_target)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$fp_export_dir') 
                                </software_available_hw_arch>
                              )
                            }
                          spids: [78303]
                        )
                      ]
                    )
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: (sh_lhs_expr.Name name:i)
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                          right: 
                            (arith_expr.ArithWord
                              w: {($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')}
                            )
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: (sh_lhs_expr.Name name:i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Simple
                              words: [
                                {<printf>}
                                {(DQ <'%i'> <Id.Lit_Other '\\'> <n>)}
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: <Id.VSub_Name aSOFTWARE_AVAIL_G_HW_ARCH>
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_Comma
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$i')}
                                                )
                                              right: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$G_HW_ARCH')}
                                                )
                                            )
                                        )
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_DollarName '$fp_target'))}
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [77807 77824]
                )
              ]
              else_action: [
                (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Unknown command '> ($ Id.VSub_Number '$1'))})
              ]
            )
            (C {<unset>} {<ainput>})
          ]
        )
    )
    (command.ShFunction
      name: Exit_Destroy
      body: 
        (command.BraceGroup
          children: [
            (C {<Software_Arrays_Destroy>})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ERROR_TEXT)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [78454]
        )
      ]
    )
    (command.ShFunction
      name: Error_Display
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$G_USER_INPUTS')})
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<whiptail>} {<--title>} {(DQ <Error>)} {<--msgbox>} 
                      {(DQ ($ Id.VSub_DollarName '$ERROR_TEXT'))} {<18>} {<70>}
                    )
                  ]
                  spids: [78472 78482]
                )
              ]
              else_action: [
                (command.Simple
                  words: [{<echo>} {<-e>} {(DQ <'Error: '> ($ Id.VSub_DollarName '$ERROR_TEXT'))}]
                  redirects: [
                    (redir.Redir
                      op: <Id.Redir_DGreat '>>'>
                      fd: -1
                      arg_word: {(DQ ($ Id.VSub_DollarName '$FP_DIETPIAUTOMATION_LOG'))}
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WHIP_BACKTITLE)
          op: assign_op.Equal
          rhs: {(SQ <DietPi-Software>)}
          spids: [78547]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [78553]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [78557]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MENU_MAIN_LASTITEM)
          op: assign_op.Equal
          rhs: {(SQ <'Help!'>)}
          spids: [78561]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [78567]
        )
      ]
    )
    (command.ShFunction
      name: Menu_CreateSoftwareList
      body: 
        (command.BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'software_type='> ($ Id.VSub_Number '$1')})
            (C {<local>} 
              {<Id.Lit_VarLike 'max_categories='> 
                ($ Id.VSub_DollarName '$MAX_SOFTWARE_CATEGORIES_DIETPI')
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_Number '$1')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:max_categories)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$MAX_SOFTWARE_CATEGORIES_LINUX')}
                          spids: [78617]
                        )
                      ]
                    )
                  ]
                  spids: [78599 78613]
                )
              ]
            )
            (C {<local>} {<Id.Lit_VarLike 'whiptail_list='> (sh_array_literal left:<Id.Op_LParen _>)})
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$max_categories')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (C {<local>} {<Id.Lit_VarLike 'category_enabled='> <0>})
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: (sh_lhs_expr.Name name:j)
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike j>)
                          right: 
                            (arith_expr.ArithWord
                              w: {($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')}
                            )
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: (sh_lhs_expr.Name name:j)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DAmp
                                              left: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: 
                                                        {
                                                          (braced_var_sub
                                                            token: 
                                                              <Id.VSub_Name aSOFTWARE_CATEGORY_INDEX>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  (arith_expr.ArithWord
                                                                    w: {($ Id.VSub_DollarName '$j')}
                                                                  )
                                                              )
                                                          )
                                                        }
                                                    )
                                                  right: 
                                                    (arith_expr.ArithWord
                                                      w: {($ Id.VSub_DollarName '$i')}
                                                    )
                                                )
                                              right: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: 
                                                        {
                                                          (braced_var_sub
                                                            token: <Id.VSub_Name aSOFTWARE_TYPE>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  (arith_expr.ArithWord
                                                                    w: {($ Id.VSub_DollarName '$j')}
                                                                  )
                                                              )
                                                          )
                                                        }
                                                    )
                                                  right: 
                                                    (arith_expr.ArithWord
                                                      w: {($ Id.VSub_DollarName '$software_type')}
                                                    )
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DAmp
                                                      left: 
                                                        (arith_expr.ArithWord
                                                          w: 
                                                            {
                                                              (braced_var_sub
                                                                token: 
                                                                  <Id.VSub_Name 
aSOFTWARE_AVAIL_G_HW_MODEL
                                                                  >
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      (arith_expr.Binary
                                                                        op_id: Id.Arith_Comma
                                                                        left: 
                                                                          (arith_expr.ArithWord
                                                                            w: 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName '$j'
                                                                                )
                                                                              }
                                                                          )
                                                                        right: 
                                                                          (arith_expr.ArithWord
                                                                            w: 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName '$G_HW_MODEL'
                                                                                )
                                                                              }
                                                                          )
                                                                      )
                                                                  )
                                                              )
                                                            }
                                                        )
                                                      right: 
                                                        (arith_expr.ArithWord
                                                          w: 
                                                            {
                                                              (braced_var_sub
                                                                token: 
                                                                  <Id.VSub_Name 
aSOFTWARE_AVAIL_G_HW_ARCH
                                                                  >
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      (arith_expr.Binary
                                                                        op_id: Id.Arith_Comma
                                                                        left: 
                                                                          (arith_expr.ArithWord
                                                                            w: 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName '$j'
                                                                                )
                                                                              }
                                                                          )
                                                                        right: 
                                                                          (arith_expr.ArithWord
                                                                            w: 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName '$G_HW_ARCH'
                                                                                )
                                                                              }
                                                                          )
                                                                      )
                                                                  )
                                                              )
                                                            }
                                                        )
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (C {<local>} {<Id.Lit_VarLike 'selected='> (DQ <off>)})
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_Great
                                                              left: 
                                                                (arith_expr.ArithWord
                                                                  w: 
                                                                    {
                                                                      (braced_var_sub
                                                                        token: 
                                                                          <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                          >
                                                                        bracket_op: 
                                                                          (bracket_op.ArrayIndex
                                                                            expr: 
                                                                              (arith_expr.ArithWord
                                                                                w: 
                                                                                  {
                                                                                    ($ 
Id.VSub_DollarName '$j'
                                                                                    )
                                                                                  }
                                                                              )
                                                                          )
                                                                      )
                                                                    }
                                                                )
                                                              right: 
                                                                (arith_expr.ArithWord
                                                                  w: {<Id.Lit_Digits 0>}
                                                                )
                                                            )
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:selected)
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <on>)}
                                                          spids: [78819]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.DParen
                                                                  child: 
                                                                    (arith_expr.Binary
                                                                      op_id: Id.Arith_DEqual
                                                                      left: 
                                                                        (arith_expr.ArithWord
                                                                          w: 
                                                                            {
                                                                              (braced_var_sub
                                                                                token: 
                                                                                  <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                                  >
                                                                                bracket_op: 
                                                                                  (bracket_op.ArrayIndex
                                                                                    expr: 
                                                                                      (arith_expr.ArithWord
                                                                                        w: 
                                                                                          {
                                                                                            ($ 
Id.VSub_DollarName '$j'
                                                                                            )
                                                                                          }
                                                                                      )
                                                                                  )
                                                                              )
                                                                            }
                                                                        )
                                                                      right: 
                                                                        (arith_expr.ArithWord
                                                                          w: {<Id.Lit_Digits 1>}
                                                                        )
                                                                    )
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.IndexedName
                                                                      name: aSOFTWARE_INSTALL_STATE
                                                                      index: 
                                                                        (arith_expr.ArithWord
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
'$j'
                                                                              )
                                                                            }
                                                                        )
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<0>}
                                                                  spids: [78853]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [78826 78845]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [78796 78815]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_DEqual
                                                              left: 
                                                                (arith_expr.ArithWord
                                                                  w: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$category_enabled'
                                                                      )
                                                                    }
                                                                )
                                                              right: 
                                                                (arith_expr.ArithWord
                                                                  w: {<Id.Lit_Digits 0>}
                                                                )
                                                            )
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.DParen
                                                                  child: 
                                                                    (arith_expr.Binary
                                                                      op_id: Id.Arith_DEqual
                                                                      left: 
                                                                        (arith_expr.ArithWord
                                                                          w: {($ Id.VSub_Number '$1')}
                                                                        )
                                                                      right: 
                                                                        (arith_expr.ArithWord
                                                                          w: {<Id.Lit_Digits 0>}
                                                                        )
                                                                    )
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: whiptail_list
                                                                    )
                                                                  op: assign_op.PlusEqual
                                                                  rhs: 
                                                                    {
                                                                      (sh_array_literal
                                                                        left: <Id.Op_LParen _>
                                                                        words: [
                                                                          {(DQ )}
                                                                          {
                                                                            (DQ 
                                                                              (braced_var_sub
                                                                                token: 
                                                                                  <Id.VSub_Name 
aSOFTWARE_CATEGORIES_DIETPI
                                                                                  >
                                                                                bracket_op: 
                                                                                  (bracket_op.ArrayIndex
                                                                                    expr: 
                                                                                      (arith_expr.ArithWord
                                                                                        w: 
                                                                                          {
                                                                                            ($ 
Id.VSub_DollarName '$i'
                                                                                            )
                                                                                          }
                                                                                      )
                                                                                  )
                                                                              )
                                                                            )
                                                                          }
                                                                          {(DQ <off>)}
                                                                        ]
                                                                      )
                                                                    }
                                                                  spids: [78914]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [78896 78910]
                                                        )
                                                        (if_arm
                                                          cond: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.DParen
                                                                  child: 
                                                                    (arith_expr.Binary
                                                                      op_id: Id.Arith_DEqual
                                                                      left: 
                                                                        (arith_expr.ArithWord
                                                                          w: {($ Id.VSub_Number '$1')}
                                                                        )
                                                                      right: 
                                                                        (arith_expr.ArithWord
                                                                          w: {<Id.Lit_Digits 1>}
                                                                        )
                                                                    )
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: whiptail_list
                                                                    )
                                                                  op: assign_op.PlusEqual
                                                                  rhs: 
                                                                    {
                                                                      (sh_array_literal
                                                                        left: <Id.Op_LParen _>
                                                                        words: [
                                                                          {(DQ )}
                                                                          {
                                                                            (DQ 
                                                                              (braced_var_sub
                                                                                token: 
                                                                                  <Id.VSub_Name 
aSOFTWARE_CATEGORIES_LINUX
                                                                                  >
                                                                                bracket_op: 
                                                                                  (bracket_op.ArrayIndex
                                                                                    expr: 
                                                                                      (arith_expr.ArithWord
                                                                                        w: 
                                                                                          {
                                                                                            ($ 
Id.VSub_DollarName '$i'
                                                                                            )
                                                                                          }
                                                                                      )
                                                                                  )
                                                                              )
                                                                            )
                                                                          }
                                                                          {(DQ <off>)}
                                                                        ]
                                                                      )
                                                                    }
                                                                  spids: [78957]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [78939 78953]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: category_enabled
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<1>}
                                                          spids: [78982]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [78874 78888]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:whiptail_list)
                                                  op: assign_op.PlusEqual
                                                  rhs: 
                                                    {
                                                      (sh_array_literal
                                                        left: <Id.Op_LParen _>
                                                        words: [
                                                          {(DQ ($ Id.VSub_DollarName '$j'))}
                                                          {
                                                            (DQ 
                                                              (braced_var_sub
                                                                token: 
                                                                  <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      (arith_expr.ArithWord
                                                                        w: 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$j'
                                                                            )
                                                                          }
                                                                      )
                                                                  )
                                                              ) <': '> 
                                                              (braced_var_sub
                                                                token: 
                                                                  <Id.VSub_Name aSOFTWARE_WHIP_DESC>
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      (arith_expr.ArithWord
                                                                        w: 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$j'
                                                                            )
                                                                          }
                                                                      )
                                                                  )
                                                              )
                                                            )
                                                          }
                                                          {(DQ ($ Id.VSub_DollarName '$selected'))}
                                                        ]
                                                      )
                                                    }
                                                  spids: [78995]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [78754 78783]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [78710 78742]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi Software Selection'>)}
                  spids: [79044]
                )
              ]
            )
            (command.Simple
              words: [
                {<whiptail>}
                {<--title>}
                {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))}
                {<--checklist>}
                {<--separate-output>}
                {
                  (DQ <'Please use the spacebar to select the software you wish to install.'> 
                    <Id.Lit_Other '\\'> <'nSoftware details: http://dietpi.com/software'>
                  )
                }
                {<--backtitle>}
                {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))}
                {<22>}
                {<78>}
                {<14>}
                {
                  (DQ 
                    (braced_var_sub
                      token: <Id.VSub_Name whiptail_list>
                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                    )
                  )
                }
              ]
              redirects: [
                (redir.Redir
                  op: <Id.Redir_Great '2>'>
                  fd: 2
                  arg_word: {</tmp/dietpi-software_results>}
                )
              ]
            )
            (C {<unset>} {<whiptail_list>})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_Number '$1')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_DIETPI_CHOICESMADE)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [79130]
                        )
                      ]
                    )
                  ]
                  spids: [79112 79126]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_Number '$1')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INSTALL_LINUX_CHOICESMADE)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [79157]
                        )
                      ]
                    )
                  ]
                  spids: [79139 79153]
                )
              ]
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: [(C {<read>} {<choice>})]
              body: 
                (command.DoGroup
                  children: [
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: (sh_lhs_expr.Name name:i)
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                          right: 
                            (arith_expr.ArithWord
                              w: {($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')}
                            )
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: (sh_lhs_expr.Name name:i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DAmp
                                              left: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: {($ Id.VSub_DollarName '$choice')}
                                                    )
                                                  right: 
                                                    (arith_expr.ArithWord
                                                      w: {($ Id.VSub_DollarName '$i')}
                                                    )
                                                )
                                              right: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: 
                                                        {
                                                          (braced_var_sub
                                                            token: 
                                                              <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  (arith_expr.ArithWord
                                                                    w: {($ Id.VSub_DollarName '$i')}
                                                                  )
                                                              )
                                                          )
                                                        }
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: 
                                                        (arith_expr.ArithWord
                                                          w: {($ Id.VSub_Number '$1')}
                                                        )
                                                      right: 
                                                        (arith_expr.ArithWord
                                                          w: {<Id.Lit_Digits 0>}
                                                        )
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      name: INSTALL_DIETPI_CHOICESMADE
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [79262]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [79244 79258]
                                        )
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: 
                                                        (arith_expr.ArithWord
                                                          w: {($ Id.VSub_Number '$1')}
                                                        )
                                                      right: 
                                                        (arith_expr.ArithWord
                                                          w: {<Id.Lit_Digits 1>}
                                                        )
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      name: INSTALL_LINUX_CHOICESMADE
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [79289]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [79271 79285]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              name: aSOFTWARE_INSTALL_STATE
                                              index: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$i')}
                                                )
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [79298]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [79208 79236]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                )
              redirects: [
                (redir.Redir
                  op: <Id.Redir_Less '<'>
                  fd: -1
                  arg_word: {</tmp/dietpi-software_results>}
                )
              ]
            )
            (command.Simple
              words: [{<rm>} {</tmp/dietpi-software_results>}]
              redirects: [(redir.Redir op:<Id.Redir_AndGreat '&>'> fd:-1 arg_word:{</dev/null>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_Main
      body: 
        (command.BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'index_sshserver_text='> (DQ <None>)})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INDEX_SSHSERVER_TARGET')}
                                )
                              right: 
                                (arith_expr.Unary
                                  op_id: Id.Node_UnaryMinus
                                  child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:index_sshserver_text)
                          op: assign_op.Equal
                          rhs: {(DQ <Dropbear>)}
                          spids: [79377]
                        )
                      ]
                    )
                  ]
                  spids: [79359 79374]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INDEX_SSHSERVER_TARGET')}
                                )
                              right: 
                                (arith_expr.Unary
                                  op_id: Id.Node_UnaryMinus
                                  child: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:index_sshserver_text)
                          op: assign_op.Equal
                          rhs: {(DQ <OpenSSH>)}
                          spids: [79401]
                        )
                      ]
                    )
                  ]
                  spids: [79383 79398]
                )
              ]
            )
            (C {<local>} {<Id.Lit_VarLike 'index_fileserver_text='> (DQ <None>)})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INDEX_FILESERVER_TARGET')}
                                )
                              right: 
                                (arith_expr.Unary
                                  op_id: Id.Node_UnaryMinus
                                  child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:index_fileserver_text)
                          op: assign_op.Equal
                          rhs: {(DQ <ProFTP>)}
                          spids: [79441]
                        )
                      ]
                    )
                  ]
                  spids: [79423 79438]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INDEX_FILESERVER_TARGET')}
                                )
                              right: 
                                (arith_expr.Unary
                                  op_id: Id.Node_UnaryMinus
                                  child: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:index_fileserver_text)
                          op: assign_op.Equal
                          rhs: {(DQ <Samba>)}
                          spids: [79465]
                        )
                      ]
                    )
                  ]
                  spids: [79447 79462]
                )
              ]
            )
            (C {<local>} {<Id.Lit_VarLike 'index_logging_text='> (DQ <None>)})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INDEX_LOGGING_TARGET')}
                                )
                              right: 
                                (arith_expr.Unary
                                  op_id: Id.Node_UnaryMinus
                                  child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:index_logging_text)
                          op: assign_op.Equal
                          rhs: {(DQ <'DietPi-Ramlog #1'>)}
                          spids: [79505]
                        )
                      ]
                    )
                  ]
                  spids: [79487 79502]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INDEX_LOGGING_TARGET')}
                                )
                              right: 
                                (arith_expr.Unary
                                  op_id: Id.Node_UnaryMinus
                                  child: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:index_logging_text)
                          op: assign_op.Equal
                          rhs: {(DQ <'DietPi-Ramlog #2'>)}
                          spids: [79529]
                        )
                      ]
                    )
                  ]
                  spids: [79511 79526]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INDEX_LOGGING_TARGET')}
                                )
                              right: 
                                (arith_expr.Unary
                                  op_id: Id.Node_UnaryMinus
                                  child: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:index_logging_text)
                          op: assign_op.Equal
                          rhs: {(DQ <Full>)}
                          spids: [79553]
                        )
                      ]
                    )
                  ]
                  spids: [79535 79550]
                )
              ]
            )
            (C {<local>} {<Id.Lit_VarLike 'toberemoved_text='> (SQ )})
            (C {<Check_USB_Drive_Installed>})
            (C {<local>} 
              {<Id.Lit_VarLike 'user_data_location_current='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {<readlink>} {<-f>} {($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA')})
                      ]
                    )
                )
              }
            )
            (C {<local>} {<Id.Lit_VarLike 'user_data_location_description='> (SQ )})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} 
                          {(DQ ($ Id.VSub_DollarName '$user_data_location_current'))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$FP_DIETPI_DEDICATED_USBDRIVE'))} 
                          {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:user_data_location_description)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'USB Drive | '> 
                                ($ Id.VSub_DollarName '$user_data_location_current')
                              )
                            }
                          spids: [79628]
                        )
                      ]
                    )
                  ]
                  spids: [79607 79624]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} 
                          {(DQ ($ Id.VSub_DollarName '$user_data_location_current'))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$G_FP_DIETPI_USERDATA'))} {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:user_data_location_description)
                          op: assign_op.Equal
                          rhs: 
                            {(DQ <'SD/EMMC | '> ($ Id.VSub_DollarName '$user_data_location_current'))}
                          spids: [79657]
                        )
                      ]
                    )
                  ]
                  spids: [79636 79653]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:user_data_location_description)
                      op: assign_op.Equal
                      rhs: {(DQ <'Custom | '> ($ Id.VSub_DollarName '$user_data_location_current'))}
                      spids: [79669]
                    )
                  ]
                )
              ]
            )
            (C {<local>} {<Id.Lit_VarLike 'index_webserver_text='> (SQ <Apache2>)})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INDEX_WEBSERVER_TARGET')}
                                )
                              right: 
                                (arith_expr.Unary
                                  op_id: Id.Node_UnaryMinus
                                  child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:index_webserver_text)
                          op: assign_op.Equal
                          rhs: {(SQ <Nginx>)}
                          spids: [79712]
                        )
                      ]
                    )
                  ]
                  spids: [79693 79708]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INDEX_WEBSERVER_TARGET')}
                                )
                              right: 
                                (arith_expr.Unary
                                  op_id: Id.Node_UnaryMinus
                                  child: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:index_webserver_text)
                          op: assign_op.Equal
                          rhs: {(SQ <Lighttpd>)}
                          spids: [79738]
                        )
                      ]
                    )
                  ]
                  spids: [79719 79734]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <DietPi-Software>)}
                  spids: [79749]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_BACKTITLE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'DietPi-Software | IP: '> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          command_list: 
                            (command.CommandList
                              children: [(C {<sed>} {<-n>} {<4p>} {</DietPi/dietpi/.network>})]
                            )
                        ) <' | Device: '> ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION')
                      )
                    }
                  spids: [79755]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Simple
                                words: [
                                  {<whiptail>}
                                  {<--title>}
                                  {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))}
                                  {<--backtitle>}
                                  {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))}
                                  {<--menu>}
                                  {(DQ )}
                                  {<--default-item>}
                                  {(DQ ($ Id.VSub_DollarName '$MENU_MAIN_LASTITEM'))}
                                  {<--cancel-button>}
                                  {(DQ <Exit>)}
                                  {<20>}
                                  {<100>}
                                  {<13>}
                                  {(DQ <'Help!'>)}
                                  {(DQ <'Links to online guides, docs and information'>)}
                                  {(DQ <DietPi-Config>)}
                                  {(DQ <'Feature-rich configuration tool for your device'>)}
                                  {(DQ )}
                                  {
                                    (DQ 
                                      <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 Select Software \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                                      >
                                    )
                                  }
                                  {(DQ <'Software Optimized'>)}
                                  {(DQ <'Select DietPi optimized software for installation'>)}
                                  {(DQ <'Software Additional'>)}
                                  {(DQ <'Select additional Linux software for installation'>)}
                                  {(DQ <'SSH Server'>)}
                                  {(DQ <': '> ($ Id.VSub_DollarName '$index_sshserver_text'))}
                                  {(DQ <'File Server'>)}
                                  {(DQ <': '> ($ Id.VSub_DollarName '$index_fileserver_text'))}
                                  {(DQ <'Log System'>)}
                                  {(DQ <': '> ($ Id.VSub_DollarName '$index_logging_text'))}
                                  {(DQ <'Webserver Preference'>)}
                                  {(DQ <': '> ($ Id.VSub_DollarName '$index_webserver_text'))}
                                  {(DQ <'User Data Location'>)}
                                  {
                                    (DQ <': '> 
                                      ($ Id.VSub_DollarName '$user_data_location_description')
                                    )
                                  }
                                  {(DQ )}
                                  {
                                    (DQ 
                                      <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 Install or Remove Software \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                                      >
                                    )
                                  }
                                  {(DQ <Uninstall>)}
                                  {(DQ <'Select installed software for removal'>)}
                                  {(DQ <Install>)}
                                  {(DQ <'Go >> Start installation for selected software'>)}
                                ]
                                redirects: [
                                  (redir.Redir
                                    op: <Id.Redir_GreatAnd '3>&'>
                                    fd: 3
                                    arg_word: {<1>}
                                  )
                                  (redir.Redir
                                    op: <Id.Redir_GreatAnd '1>&'>
                                    fd: 1
                                    arg_word: {<2>}
                                  )
                                  (redir.Redir
                                    op: <Id.Redir_GreatAnd '2>&'>
                                    fd: 2
                                    arg_word: {<3>}
                                  )
                                ]
                              )
                            ]
                          )
                      )
                    }
                  spids: [79773]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [79957]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$CHOICE')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:MENU_MAIN_LASTITEM)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$OPTION'))}
                          spids: [79979]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ <Uninstall>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<3>}
                                  spids: [80003]
                                )
                              ]
                            )
                          ]
                          spids: [79996 79999 80008 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'Software Optimized'>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [80019]
                                )
                              ]
                            )
                          ]
                          spids: [80012 80015 80024 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'Software Additional'>) <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<2>}
                                  spids: [80036]
                                )
                              ]
                            )
                          ]
                          spids: [80028 80032 80041 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'SSH Server'>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'SSH Server Choices'>)}
                                  spids: [80052]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:OPTION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (command.Simple
                                                words: [
                                                  {<whiptail>}
                                                  {<--title>}
                                                  {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))}
                                                  {<--menu>}
                                                  {
                                                    (DQ <'> None'> <Id.Lit_Other '\\'> 
                                                      <
'nSelecting this option will uninstall all SSH servers. This reduces system resources and improves performance. Useful for users who do NOT require networked/remote terminal access.'
                                                      > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'n> Dropbear (Recommended)'> <Id.Lit_Other '\\'> 
                                                      <
'nLightweight SSH server, installed by default on DietPi systems.'
                                                      > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'n> OpenSSH'> <Id.Lit_Other '\\'> 
                                                      <
'nA feature rich SSH server with SFTP/SCP support, at the cost of increased resource usage.'
                                                      >
                                                    )
                                                  }
                                                  {<--cancel-button>}
                                                  {(DQ <Back>)}
                                                  {<--default-item>}
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName '$index_sshserver_text')
                                                    )
                                                  }
                                                  {<21>}
                                                  {<75>}
                                                  {<3>}
                                                  {(DQ <None>)}
                                                  {(DQ <'Not required / manual setup.'>)}
                                                  {(DQ <Dropbear>)}
                                                  {(DQ <'Lightweight SSH Server (Recommended).'>)}
                                                  {(DQ <OpenSSH>)}
                                                  {
                                                    (DQ 
                                                      <
'Feature Rich SSH Server with SFTP/SCP support.'
                                                      >
                                                    )
                                                  }
                                                ]
                                                redirects: [
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '3>&'>
                                                    fd: 3
                                                    arg_word: {<1>}
                                                  )
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '1>&'>
                                                    fd: 1
                                                    arg_word: {<2>}
                                                  )
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '2>&'>
                                                    fd: 2
                                                    arg_word: {<3>}
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                      )
                                    }
                                  spids: [80058]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} 
                                          {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <None>)} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INDEX_SSHSERVER_TARGET)
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [80173]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:toberemoved_text)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'Dropbear and OpenSSH Server'>)}
                                          spids: [80177]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [80152 80169]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} 
                                          {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <Dropbear>)} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INDEX_SSHSERVER_TARGET)
                                          op: assign_op.Equal
                                          rhs: {<-1>}
                                          spids: [80205]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:toberemoved_text)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'OpenSSH Server'>)}
                                          spids: [80209]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [80184 80201]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} 
                                          {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <OpenSSH>)} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INDEX_SSHSERVER_TARGET)
                                          op: assign_op.Equal
                                          rhs: {<-2>}
                                          spids: [80237]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:toberemoved_text)
                                          op: assign_op.Equal
                                          rhs: {(DQ <Dropbear>)}
                                          spids: [80241]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [80216 80233]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INDEX_SSHSERVER_TARGET)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$INDEX_SSHSERVER_CURRENT')}
                                      spids: [80256]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_SSHSERVER_CHOICESMADE)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [80269]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_NEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      ($ Id.VSub_DollarName '$INDEX_SSHSERVER_TARGET')
                                                    }
                                                )
                                              right: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      ($ Id.VSub_DollarName 
'$INDEX_SSHSERVER_CURRENT'
                                                      )
                                                    }
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INSTALL_SSHSERVER_CHOICESMADE)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [80291]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'SSH Server Change'>)}
                                          spids: [80300]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$OPTION') 
                                                <' has been selected:'> <Id.Lit_Other '\\'> 
                                                <
"n- Your choice will be applied when 'Install Go >> Start installation' is selected."
                                                > <Id.Lit_Other '\\'> <'n- '> ($ Id.VSub_DollarName '$toberemoved_text') 
                                                <
' installations will be automatically uninstalled.'
                                                >
                                              )
                                            }
                                          spids: [80306]
                                        )
                                      ]
                                    )
                                    (C {<whiptail>} {<--title>} 
                                      {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} 
                                      {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<11>} {<75>}
                                    )
                                  ]
                                  spids: [80273 80287]
                                )
                              ]
                            )
                          ]
                          spids: [80045 80048 80348 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'File Server'>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'Fileserver Choices'>)}
                                  spids: [80359]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:OPTION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (command.Simple
                                                words: [
                                                  {<whiptail>}
                                                  {<--title>}
                                                  {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))}
                                                  {<--menu>}
                                                  {
                                                    (DQ <'> None'> <Id.Lit_Other '\\'> 
                                                      <
'nSelect this option if you do NOT require a method of accessing files and folders on this device, over a network.'
                                                      > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'n> ProFTP (Recommended for RPi v1)'> <Id.Lit_Other '\\'> 
                                                      <
'nAllows you to access/share files on this device efficiently with minimal cpu usage. Uses FTP protocol.'
                                                      > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'n> Samba (Recommended for RPi v2)'> <Id.Lit_Other '\\'> 
                                                      <
'nAllows you to easily access/share files on this device, at the cost of higher cpu usage.'
                                                      > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                                                      <
'nMore info: http://dietpi.com/phpbb/viewtopic.php?f=8&t=15#p19'
                                                      >
                                                    )
                                                  }
                                                  {<--cancel-button>}
                                                  {(DQ <Back>)}
                                                  {<--default-item>}
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName '$index_fileserver_text')
                                                    )
                                                  }
                                                  {<23>}
                                                  {<75>}
                                                  {<3>}
                                                  {(DQ <None>)}
                                                  {(DQ <'Not required / manual setup.'>)}
                                                  {(DQ <ProFTP>)}
                                                  {
                                                    (DQ 
                                                      <
'Efficient, lightweight fileserver (recommended).'
                                                      >
                                                    )
                                                  }
                                                  {(DQ <Samba>)}
                                                  {(DQ <'Feature-rich fileserver.'>)}
                                                ]
                                                redirects: [
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '3>&'>
                                                    fd: 3
                                                    arg_word: {<1>}
                                                  )
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '1>&'>
                                                    fd: 1
                                                    arg_word: {<2>}
                                                  )
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '2>&'>
                                                    fd: 2
                                                    arg_word: {<3>}
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                      )
                                    }
                                  spids: [80365]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} 
                                          {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <None>)} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INDEX_FILESERVER_TARGET)
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [80483]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:toberemoved_text)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'ProFTP and Samba Server'>)}
                                          spids: [80487]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [80463 80480]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} 
                                          {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <ProFTP>)} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INDEX_FILESERVER_TARGET)
                                          op: assign_op.Equal
                                          rhs: {<-1>}
                                          spids: [80513]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:toberemoved_text)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'Samba Server'>)}
                                          spids: [80517]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [80493 80510]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} 
                                          {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <Samba>)} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INDEX_FILESERVER_TARGET)
                                          op: assign_op.Equal
                                          rhs: {<-2>}
                                          spids: [80543]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:toberemoved_text)
                                          op: assign_op.Equal
                                          rhs: {(DQ <ProFTP>)}
                                          spids: [80547]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [80523 80540]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INDEX_FILESERVER_TARGET)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$INDEX_FILESERVER_CURRENT')}
                                      spids: [80560]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_FILESERVER_CHOICESMADE)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [80572]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_NEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      ($ Id.VSub_DollarName 
'$INDEX_FILESERVER_TARGET'
                                                      )
                                                    }
                                                )
                                              right: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      ($ Id.VSub_DollarName 
'$INDEX_FILESERVER_CURRENT'
                                                      )
                                                    }
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INSTALL_FILESERVER_CHOICESMADE)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [80593]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'Fileserver Choice Change'>)}
                                          spids: [80602]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$OPTION') 
                                                <' has been selected:'> <Id.Lit_Other '\\'> 
                                                <
"n- Your choice will be applied when 'Install Go >> Start installation' is selected."
                                                > <Id.Lit_Other '\\'> <'n- '> ($ Id.VSub_DollarName '$toberemoved_text') 
                                                <
' installations will be automatically uninstalled.'
                                                >
                                              )
                                            }
                                          spids: [80608]
                                        )
                                      ]
                                    )
                                    (C {<whiptail>} {<--title>} 
                                      {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} 
                                      {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<11>} {<75>}
                                    )
                                  ]
                                  spids: [80576 80590]
                                )
                              ]
                            )
                          ]
                          spids: [80352 80355 80650 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'Log System'>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'Logging System Choices'>)}
                                  spids: [80661]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:OPTION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (command.Simple
                                                words: [
                                                  {<whiptail>}
                                                  {<--title>}
                                                  {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))}
                                                  {<--menu>}
                                                  {
                                                    (DQ <'> None'> <Id.Lit_Other '\\'> 
                                                      <
'nSelecting this option will uninstall DietPi-Ramlog, Logrotate, Rsyslog.'
                                                      > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'n> DietPi-Ramlog #1 (Max performance)'> <Id.Lit_Other '\\'> 
                                                      <
'nMounts /var/log to RAM, reducing filesystem IO. Logfiles are cleared every hour. Does NOT save logfiles to disk.'
                                                      > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'n> DietPi-Ramlog #2'> <Id.Lit_Other '\\'> 
                                                      <
'nSame as #1, with the added feature of saving logfile contents to disk ('
                                                      > ($ Id.VSub_DollarName '$HOME') <'/logfile_storage/*), before being cleared.'> <Id.Lit_Other '\\'> <n> 
                                                      <Id.Lit_Other '\\'> <'n> Full (Reduces performance)'> <Id.Lit_Other '\\'> 
                                                      <
'nMounts /var/log to DISK, reduces SDcard lifespan. Full logging system with Logrotate and Rsyslog.'
                                                      >
                                                    )
                                                  }
                                                  {<--cancel-button>}
                                                  {(DQ <Back>)}
                                                  {<--default-item>}
                                                  {(DQ ($ Id.VSub_DollarName '$index_logging_text'))}
                                                  {<25>}
                                                  {<75>}
                                                  {<4>}
                                                  {(DQ <None>)}
                                                  {(DQ <' Not required / manual setup.'>)}
                                                  {(DQ <'DietPi-Ramlog #1'>)}
                                                  {(DQ <' Hourly clear (recommended).'>)}
                                                  {(DQ <'DietPi-Ramlog #2'>)}
                                                  {(DQ <' Hourly save, then clear.'>)}
                                                  {(DQ <Full>)}
                                                  {(DQ <' Logrotate and Rsyslog.'>)}
                                                ]
                                                redirects: [
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '3>&'>
                                                    fd: 3
                                                    arg_word: {<1>}
                                                  )
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '1>&'>
                                                    fd: 1
                                                    arg_word: {<2>}
                                                  )
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '2>&'>
                                                    fd: 2
                                                    arg_word: {<3>}
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                      )
                                    }
                                  spids: [80667]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} 
                                          {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <None>)} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INDEX_LOGGING_TARGET)
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [80799]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:toberemoved_text)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'DietPi-Ramlog, Logrotate, Rsyslog'>)}
                                          spids: [80803]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [80779 80796]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} 
                                          {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <'DietPi-Ramlog #1'>)} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INDEX_LOGGING_TARGET)
                                          op: assign_op.Equal
                                          rhs: {<-1>}
                                          spids: [80829]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:toberemoved_text)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'Logrotate, Rsyslog'>)}
                                          spids: [80833]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [80809 80826]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} 
                                          {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <'DietPi-Ramlog #2'>)} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INDEX_LOGGING_TARGET)
                                          op: assign_op.Equal
                                          rhs: {<-2>}
                                          spids: [80859]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:toberemoved_text)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'Logrotate, Rsyslog'>)}
                                          spids: [80863]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [80839 80856]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} 
                                          {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <Full>)} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INDEX_LOGGING_TARGET)
                                          op: assign_op.Equal
                                          rhs: {<-3>}
                                          spids: [80889]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:toberemoved_text)
                                          op: assign_op.Equal
                                          rhs: {(DQ <DietPi-Ramlog>)}
                                          spids: [80893]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [80869 80886]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INDEX_LOGGING_TARGET)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$INDEX_LOGGING_CURRENT')}
                                      spids: [80906]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INSTALL_LOGGING_CHOICESMADE)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [80918]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_NEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$INDEX_LOGGING_TARGET')}
                                                )
                                              right: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$INDEX_LOGGING_CURRENT')}
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INSTALL_LOGGING_CHOICESMADE)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [80939]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'Logging System Change'>)}
                                          spids: [80948]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$OPTION') 
                                                <' has been selected:'> <Id.Lit_Other '\\'> 
                                                <
"n- Your choice will be applied when 'Install Go >> Start installation' is selected."
                                                > <Id.Lit_Other '\\'> <'n- '> ($ Id.VSub_DollarName '$toberemoved_text') 
                                                <
' installations will be automatically uninstalled.'
                                                >
                                              )
                                            }
                                          spids: [80954]
                                        )
                                      ]
                                    )
                                    (C {<whiptail>} {<--title>} 
                                      {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} 
                                      {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<11>} {<75>}
                                    )
                                  ]
                                  spids: [80922 80936]
                                )
                              ]
                            )
                          ]
                          spids: [80654 80657 80995 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'User Data Location'>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'User Data Location'>)}
                                  spids: [81006]
                                )
                              ]
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'move_data_target='> 
                                ($ Id.VSub_DollarName '$user_data_location_current')
                              }
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:OPTION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (command.Simple
                                                words: [
                                                  {<whiptail>}
                                                  {<--title>}
                                                  {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))}
                                                  {<--menu>}
                                                  {
                                                    (DQ 
                                                      <
'Choose where to store your user data. User data includes software such as Owncloud data store, BitTorrent downloads etc'
                                                      > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'nMore information on user data in DietPi:'> 
                                                      <Id.Lit_Other '\\'> <'n - http://dietpi.com/phpbb/viewtopic.php?f=8&t=478&p=2087'> <Id.Lit_Other '\\'> <n> 
                                                      <Id.Lit_Other '\\'> <'n> DietPi-Drive Manager'> <Id.Lit_Other '\\'> 
                                                      <
'nLaunch DietPi-Drive Manager to setup external drives, and, move user data to different locations.'
                                                      >
                                                    )
                                                  }
                                                  {<--cancel-button>}
                                                  {(DQ <Back>)}
                                                  {<20>}
                                                  {<85>}
                                                  {<3>}
                                                  {(DQ <'Drive Manager'>)}
                                                  {(DQ <'Launches DietPi-Drive Manager'>)}
                                                  {(DQ <List>)}
                                                  {
                                                    (DQ 
                                                      <
'Select from a list of available mounts/drives, to move user data'
                                                      >
                                                    )
                                                  }
                                                  {(DQ <Custom>)}
                                                  {(DQ <'Input a manual location to move user data'>)}
                                                ]
                                                redirects: [
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '3>&'>
                                                    fd: 3
                                                    arg_word: {<1>}
                                                  )
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '1>&'>
                                                    fd: 1
                                                    arg_word: {<2>}
                                                  )
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '2>&'>
                                                    fd: 2
                                                    arg_word: {<3>}
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                      )
                                    }
                                  spids: [81024]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [81105]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$CHOICE')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<Id.Lit_LBracket '['>} 
                                                  {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <'Drive Manager'>)} {<Id.Lit_RBracket ']'>}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [(C {</DietPi/dietpi/dietpi-drive_manager>})]
                                          spids: [81132 81149]
                                        )
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<Id.Lit_LBracket '['>} 
                                                  {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <List>)} {<Id.Lit_RBracket ']'>}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (C {</DietPi/dietpi/dietpi-drive_manager>} {<1>})
                                            (C {<local>} 
                                              {<Id.Lit_VarLike 'return_value='> 
                                                (DQ 
                                                  (command_sub
                                                    left_token: <Id.Left_DollarParen '$('>
                                                    command_list: 
                                                      (command.CommandList
                                                        children: [
                                                          (C {<cat>} 
                                                            {</tmp/dietpi-drive_manager_selmnt>}
                                                          )
                                                        ]
                                                      )
                                                  )
                                                )
                                              }
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<Id.Lit_LBracket '['>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$return_value')
                                                            )
                                                          } {<Id.Lit_RBracket ']'>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (command.Sentence
                                                              child: 
                                                                (C {<Id.Lit_LBracket '['>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$return_value'
                                                                      )
                                                                    )
                                                                  } {<Id.Lit_Equals '='>} {(DQ </>)} {<Id.Lit_RBracket ']'>}
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: return_value
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {(SQ </mnt>)}
                                                                  spids: [81238]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [81217 81234]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: move_data_target
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName '$return_value')
                                                              )
                                                            }
                                                          spids: [81249]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: move_data_target
                                                            )
                                                          op: assign_op.PlusEqual
                                                          rhs: {(SQ </dietpi_userdata>)}
                                                          spids: [81255]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [81200 81213]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [81161 81178]
                                        )
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<Id.Lit_LBracket '['>} 
                                                  {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <Custom>)} {<Id.Lit_RBracket ']'>}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:OPTION)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        command_list: 
                                                          (command.CommandList
                                                            children: [
                                                              (command.Simple
                                                                words: [
                                                                  {<whiptail>}
                                                                  {<--inputbox>}
                                                                  {
                                                                    (DQ 
                                                                      <
'Please input a location. Your user data will be stored inside this location.'
                                                                      > <Id.Lit_Other '\\'> <'n - eg: /mnt/MyDrive/MyData'>
                                                                    )
                                                                  }
                                                                  {<11>}
                                                                  {<60>}
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$user_data_location_current'
                                                                      )
                                                                    )
                                                                  }
                                                                  {<--title>}
                                                                  {
                                                                    (DQ 
                                                                      <
'User/Personal Data Directory'
                                                                      >
                                                                    )
                                                                  }
                                                                  {<--backtitle>}
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$WHIP_BACKTITLE'
                                                                      )
                                                                    )
                                                                  }
                                                                ]
                                                                redirects: [
                                                                  (redir.Redir
                                                                    op: <Id.Redir_GreatAnd '3>&'>
                                                                    fd: 3
                                                                    arg_word: {<1>}
                                                                  )
                                                                  (redir.Redir
                                                                    op: <Id.Redir_GreatAnd '1>&'>
                                                                    fd: 1
                                                                    arg_word: {<2>}
                                                                  )
                                                                  (redir.Redir
                                                                    op: <Id.Redir_GreatAnd '2>&'>
                                                                    fd: 2
                                                                    arg_word: {<3>}
                                                                  )
                                                                ]
                                                              )
                                                            ]
                                                          )
                                                      )
                                                    }
                                                  spids: [81291]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_QMark '$?')}
                                                  spids: [81334]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_DEqual
                                                              left: 
                                                                (arith_expr.ArithWord
                                                                  w: 
                                                                    {
                                                                      ($ Id.VSub_DollarName '$CHOICE')
                                                                    }
                                                                )
                                                              right: 
                                                                (arith_expr.ArithWord
                                                                  w: {<Id.Lit_Digits 0>}
                                                                )
                                                            )
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: move_data_target
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                                          spids: [81355]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [81338 81352]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [81270 81287]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<Id.Lit_LBracket '['>} 
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName 
'$user_data_location_current'
                                                      )
                                                    )
                                                  } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$move_data_target'))} 
                                                  {<Id.Lit_RBracket ']'>}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (C {<whiptail>} {<--title>} {(DQ <'User data transfer'>)} 
                                              {<--yesno>} 
                                              {
                                                (DQ 
                                                  <
'DietPi will now attempt to transfer your existing user data to the new location:'
                                                  > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'n - From: '> 
                                                  ($ Id.VSub_DollarName '$user_data_location_current') <Id.Lit_Other '\\'> <'n - To: '> ($ Id.VSub_DollarName '$move_data_target') <Id.Lit_Other '\\'> <n> 
                                                  <Id.Lit_Other '\\'> <'nWould you like to begin?'>
                                                )
                                              } {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<--defaultno>} {<14>} {<70>}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_QMark '$?')}
                                                  spids: [81436]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_DEqual
                                                              left: 
                                                                (arith_expr.ArithWord
                                                                  w: 
                                                                    {
                                                                      ($ Id.VSub_DollarName '$CHOICE')
                                                                    }
                                                                )
                                                              right: 
                                                                (arith_expr.ArithWord
                                                                  w: {<Id.Lit_Digits 0>}
                                                                )
                                                            )
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (C {</DietPi/dietpi/func/dietpi-set_userdata>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$user_data_location_current'
                                                          )
                                                        )
                                                      } {(DQ ($ Id.VSub_DollarName '$move_data_target'))}
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.DParen
                                                                  child: 
                                                                    (arith_expr.Binary
                                                                      op_id: Id.Arith_DEqual
                                                                      left: 
                                                                        (arith_expr.ArithWord
                                                                          w: {($ Id.VSub_QMark '$?')}
                                                                        )
                                                                      right: 
                                                                        (arith_expr.ArithWord
                                                                          w: {<Id.Lit_Digits 0>}
                                                                        )
                                                                    )
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          action: [
                                                            (C {<whiptail>} {<--title>} 
                                                              {(DQ <'User data transfer: Completed'>)} {<--msgbox>} 
                                                              {
                                                                (DQ 
                                                                  <
'Your user data has been sucessfuly moved:'
                                                                  > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'n - From: '> 
                                                                  ($ Id.VSub_DollarName 
'$user_data_location_current'
                                                                  ) <Id.Lit_Other '\\'> <'n - To: '> ($ Id.VSub_DollarName '$move_data_target')
                                                                )
                                                              } {<12>} {<70>}
                                                            )
                                                          ]
                                                          spids: [81474 81488]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (C {<whiptail>} {<--title>} 
                                                          {(DQ <'User data transfer: Failed'>)} {<--msgbox>} 
                                                          {
                                                            (DQ 
                                                              (command_sub
                                                                left_token: 
                                                                  <Id.Left_DollarParen '$('>
                                                                command_list: 
                                                                  (command.CommandList
                                                                    children: [
                                                                      (C {<cat>} 
                                                                        {
                                                                          <
/var/log/dietpi-move_userdata.log
                                                                          >
                                                                        }
                                                                      )
                                                                    ]
                                                                  )
                                                              ) <Id.Lit_Other '\\'> <'nNo changes have been applied.'>
                                                            )
                                                          } {<12>} {<70>}
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [81440 81454]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [81371 81389]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [81110 81124]
                                )
                              ]
                            )
                          ]
                          spids: [80999 81002 81565 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'Webserver Preference'>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'Webserver Preference'>)}
                                  spids: [81575]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:OPTION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (command.Simple
                                                words: [
                                                  {<whiptail>}
                                                  {<--title>}
                                                  {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))}
                                                  {<--menu>}
                                                  {
                                                    (DQ 
                                                      <
'More Info: http://dietpi.com/phpbb/viewtopic.php?f=8&t=5&p=1549#p1549'
                                                      > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'n> Apache2'> <Id.Lit_Other '\\'> 
                                                      <
'nFeature-rich and popular. Recommended for beginners and users who are looking to follow Apache2 based guides.'
                                                      > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'n> Nginx'> <Id.Lit_Other '\\'> 
                                                      <
'nLightweight alternative to Apache2. Nginx claims faster webserver performance compared to Apache2.'
                                                      > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'n> Lighttpd'> <Id.Lit_Other '\\'> 
                                                      <
'nExtremely lightweight and is generally considered to offer the '
                                                      > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <best> 
                                                      (word_part.EscapedLiteral
                                                        token: <Id.Lit_EscapedChar '\\"'>
                                                      ) <" webserver performance for SBC's. Recommended for users who expect low webserver traffic.">
                                                    )
                                                  }
                                                  {<--cancel-button>}
                                                  {(DQ <Back>)}
                                                  {<--default-item>}
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName '$index_webserver_text')
                                                    )
                                                  }
                                                  {<24>}
                                                  {<75>}
                                                  {<3>}
                                                  {(DQ <Apache2>)}
                                                  {(DQ <'Popular webserver.'>)}
                                                  {(DQ <Nginx>)}
                                                  {(DQ <'Lightweight webserver.'>)}
                                                  {(DQ <Lighttpd>)}
                                                  {(DQ <'Extremely lightweight webserver.'>)}
                                                ]
                                                redirects: [
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '3>&'>
                                                    fd: 3
                                                    arg_word: {<1>}
                                                  )
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '1>&'>
                                                    fd: 1
                                                    arg_word: {<2>}
                                                  )
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '2>&'>
                                                    fd: 2
                                                    arg_word: {<3>}
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                      )
                                    }
                                  spids: [81581]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} 
                                          {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <Apache2>)} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INDEX_WEBSERVER_TARGET)
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [81703]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [81683 81700]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} 
                                          {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <Nginx>)} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INDEX_WEBSERVER_TARGET)
                                          op: assign_op.Equal
                                          rhs: {<-1>}
                                          spids: [81727]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [81707 81724]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} 
                                          {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <Lighttpd>)} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:INDEX_WEBSERVER_TARGET)
                                          op: assign_op.Equal
                                          rhs: {<-2>}
                                          spids: [81751]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [81731 81748]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:INDEX_WEBSERVER_TARGET)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$INDEX_WEBSERVER_CURRENT')}
                                      spids: [81762]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_NEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      ($ Id.VSub_DollarName '$INDEX_WEBSERVER_TARGET')
                                                    }
                                                )
                                              right: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      ($ Id.VSub_DollarName 
'$INDEX_WEBSERVER_CURRENT'
                                                      )
                                                    }
                                                )
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<local>} 
                                      {<Id.Lit_VarLike 'incompatible_webserver_preference='> <0>}
                                    )
                                    (C {<local>} 
                                      {<Id.Lit_VarLike 'info_currently_installed_webserver='> 
                                        (SQ <None>)
                                      }
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.ArithWord
                                                      w: 
                                                        {
                                                          (command_sub
                                                            left_token: <Id.Left_DollarParen '$('>
                                                            command_list: 
                                                              (command.CommandList
                                                                children: [
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (C {<dpkg>} {<-l>})
                                                                      (C {<awk>} {(SQ <'{print $2}'>)})
                                                                      (C {<grep>} {<-ci>} {<-m1>} 
                                                                        {(SQ <apache2>)}
                                                                      )
                                                                    ]
                                                                    negated: F
                                                                  )
                                                                ]
                                                              )
                                                          )
                                                        }
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      name: INDEX_WEBSERVER_CURRENT
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<0>}
                                                  spids: [81847]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      name: info_currently_installed_webserver
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(SQ <Apache2>)}
                                                  spids: [81851]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_NEqual
                                                              left: 
                                                                (arith_expr.ArithWord
                                                                  w: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$INDEX_WEBSERVER_TARGET'
                                                                      )
                                                                    }
                                                                )
                                                              right: 
                                                                (arith_expr.ArithWord
                                                                  w: {<Id.Lit_Digits 0>}
                                                                )
                                                            )
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: 
incompatible_webserver_preference
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<1>}
                                                          spids: [81874]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [81857 81871]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [81811 81844]
                                        )
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.ArithWord
                                                      w: 
                                                        {
                                                          (command_sub
                                                            left_token: <Id.Left_DollarParen '$('>
                                                            command_list: 
                                                              (command.CommandList
                                                                children: [
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (C {<dpkg>} {<-l>})
                                                                      (C {<awk>} {(SQ <'{print $2}'>)})
                                                                      (C {<grep>} {<-ci>} {<-m1>} 
                                                                        {(SQ <nginx>)}
                                                                      )
                                                                    ]
                                                                    negated: F
                                                                  )
                                                                ]
                                                              )
                                                          )
                                                        }
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      name: INDEX_WEBSERVER_CURRENT
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<-1>}
                                                  spids: [81918]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      name: info_currently_installed_webserver
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(SQ <Nginx>)}
                                                  spids: [81922]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_NEqual
                                                              left: 
                                                                (arith_expr.ArithWord
                                                                  w: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$INDEX_WEBSERVER_TARGET'
                                                                      )
                                                                    }
                                                                )
                                                              right: 
                                                                (arith_expr.Unary
                                                                  op_id: Id.Node_UnaryMinus
                                                                  child: 
                                                                    (arith_expr.ArithWord
                                                                      w: {<Id.Lit_Digits 1>}
                                                                    )
                                                                )
                                                            )
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: 
incompatible_webserver_preference
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<1>}
                                                          spids: [81946]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [81928 81943]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [81881 81915]
                                        )
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.ArithWord
                                                      w: 
                                                        {
                                                          (command_sub
                                                            left_token: <Id.Left_DollarParen '$('>
                                                            command_list: 
                                                              (command.CommandList
                                                                children: [
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (C {<dpkg>} {<-l>})
                                                                      (C {<awk>} {(SQ <'{print $2}'>)})
                                                                      (C {<grep>} {<-ci>} {<-m1>} 
                                                                        {(SQ <lighttpd>)}
                                                                      )
                                                                    ]
                                                                    negated: F
                                                                  )
                                                                ]
                                                              )
                                                          )
                                                        }
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      name: INDEX_WEBSERVER_CURRENT
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<-2>}
                                                  spids: [81990]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      name: info_currently_installed_webserver
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(SQ <Lighttpd>)}
                                                  spids: [81994]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (command.DParen
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_NEqual
                                                              left: 
                                                                (arith_expr.ArithWord
                                                                  w: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$INDEX_WEBSERVER_TARGET'
                                                                      )
                                                                    }
                                                                )
                                                              right: 
                                                                (arith_expr.Unary
                                                                  op_id: Id.Node_UnaryMinus
                                                                  child: 
                                                                    (arith_expr.ArithWord
                                                                      w: {<Id.Lit_Digits 2>}
                                                                    )
                                                                )
                                                            )
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: 
incompatible_webserver_preference
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<1>}
                                                          spids: [82018]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [82000 82015]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [81953 81987]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: 
                                                        (arith_expr.ArithWord
                                                          w: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$incompatible_webserver_preference'
                                                              )
                                                            }
                                                        )
                                                      right: 
                                                        (arith_expr.ArithWord
                                                          w: {<Id.Lit_Digits 1>}
                                                        )
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:INDEX_WEBSERVER_TARGET)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      ($ Id.VSub_DollarName 
'$INDEX_WEBSERVER_CURRENT'
                                                      )
                                                    }
                                                  spids: [82051]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ 
                                                        <'Error: Incompatible Webserver Preference'>
                                                      )
                                                    }
                                                  spids: [82060]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ 
                                                        <
'Unable to change your webserver preference to '
                                                        > ($ Id.VSub_DollarName '$OPTION') <.> <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                                                        <
'nThis is due to an existing and incompatible webserver installation on your system ('
                                                        > ($ Id.VSub_DollarName '$info_currently_installed_webserver') 
                                                        <
'). Please remove all webserver based software (using dietpi-software > uninstall), before trying again.'
                                                        >
                                                      )
                                                    }
                                                  spids: [82066]
                                                )
                                              ]
                                            )
                                            (C {<whiptail>} {<--title>} 
                                              {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} 
                                              {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<11>} {<75>}
                                            )
                                          ]
                                          spids: [82033 82047]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                              op: assign_op.Equal
                                              rhs: {(DQ <'Webserver Preference Changed'>)}
                                              spids: [82119]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$OPTION') 
                                                    <
' has been selected as your webserver preference.'
                                                    > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                                                    <
'nWhen you select any software for install that requires a webserver, DietPi will automatically install your prefered choice ('
                                                    > ($ Id.VSub_DollarName '$OPTION') <').'>
                                                  )
                                                }
                                              spids: [82125]
                                            )
                                          ]
                                        )
                                        (C {<whiptail>} {<--title>} 
                                          {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} 
                                          {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<11>} {<75>}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [81774 81788]
                                )
                              ]
                            )
                          ]
                          spids: [81569 81572 82178 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <DietPi-Config>)}]
                          action: [(C {</DietPi/dietpi/dietpi-config>})]
                          spids: [82182 82185 82193 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'Help!'>)}]
                          action: [
                            (command.Simple
                              words: [{<cat>}]
                              redirects: [
                                (redir.HereDoc
                                  op: <Id.Redir_DLess '<<'>
                                  fd: -1
                                  here_begin: {<_EOF_>}
                                  here_end_span_id: 82234
                                  stdin_parts: [
                                    <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n'
                                    >
                                    <'Welcome to DietPi:\n'>
                                    <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n'
                                    >
                                    <
'Use PageUp/Down or Arrow Up/Down to scroll this help screen.\n'
                                    >
                                    <'Press ESC, or TAB then enter to exit this help screen.\n'>
                                    <'\n'>
                                    <'Easy to follow, step by step guides for installing DietPi:\n'>
                                    <'http://dietpi.com/phpbb/viewtopic.php?f=8&t=9\n'>
                                    <'\n'>
                                    <'For a list of all installation options and their details:\n'>
                                    <'http://dietpi.com/software\n'>
                                    <'\n'>
                                    <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n'
                                    >
                                    <
'List of installed software and their URL links for online docs:\n'
                                    >
                                    <
'\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n'
                                    >
                                  ]
                                )
                                (redir.Redir
                                  op: <Id.Redir_Great '>'>
                                  fd: -1
                                  arg_word: {</tmp/dietpi-software_help_onlinedoc_url_list>}
                                )
                              ]
                            )
                            (command.ForExpr
                              init: 
                                (arith_expr.BinaryAssign
                                  op_id: Id.Arith_Equal
                                  left: (sh_lhs_expr.Name name:i)
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                )
                              cond: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                                  right: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')}
                                    )
                                )
                              update: 
                                (arith_expr.UnaryAssign
                                  op_id: Id.Node_PostDPlus
                                  child: (sh_lhs_expr.Name name:i)
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_Great
                                                      left: 
                                                        (arith_expr.ArithWord
                                                          w: 
                                                            {
                                                              (braced_var_sub
                                                                token: 
                                                                  <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                  >
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      (arith_expr.ArithWord
                                                                        w: 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$i'
                                                                            )
                                                                          }
                                                                      )
                                                                  )
                                                              )
                                                            }
                                                        )
                                                      right: 
                                                        (arith_expr.ArithWord
                                                          w: {<Id.Lit_Digits 0>}
                                                        )
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<Id.Lit_LBracket '['>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              (braced_var_sub
                                                                token: 
                                                                  <Id.VSub_Name 
aSOFTWARE_ONLINEDOC_URL
                                                                  >
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      (arith_expr.ArithWord
                                                                        w: 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$i'
                                                                            )
                                                                          }
                                                                      )
                                                                  )
                                                              )
                                                            )
                                                          } {<Id.Lit_RBracket ']'>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.Simple
                                                      words: [{<cat>}]
                                                      redirects: [
                                                        (redir.HereDoc
                                                          op: <Id.Redir_DLess '<<'>
                                                          fd: -1
                                                          here_begin: {<_EOF_>}
                                                          here_end_span_id: 82343
                                                          stdin_parts: [
                                                            (braced_var_sub
                                                              token: 
                                                                <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                                                              bracket_op: 
                                                                (bracket_op.ArrayIndex
                                                                  expr: 
                                                                    (arith_expr.ArithWord
                                                                      w: {($ Id.VSub_DollarName '$i')}
                                                                    )
                                                                )
                                                            )
                                                            <': '>
                                                            (braced_var_sub
                                                              token: 
                                                                <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                                                              bracket_op: 
                                                                (bracket_op.ArrayIndex
                                                                  expr: 
                                                                    (arith_expr.ArithWord
                                                                      w: {($ Id.VSub_DollarName '$i')}
                                                                    )
                                                                )
                                                            )
                                                            <'\n'>
                                                            ($ Id.VSub_DollarName '$FP_ONLINEDOC_URL')
                                                            (braced_var_sub
                                                              token: 
                                                                <Id.VSub_Name 
aSOFTWARE_ONLINEDOC_URL
                                                                >
                                                              bracket_op: 
                                                                (bracket_op.ArrayIndex
                                                                  expr: 
                                                                    (arith_expr.ArithWord
                                                                      w: {($ Id.VSub_DollarName '$i')}
                                                                    )
                                                                )
                                                            )
                                                            <'\n'>
                                                            <'\n'>
                                                          ]
                                                        )
                                                        (redir.Redir
                                                          op: <Id.Redir_DGreat '>>'>
                                                          fd: -1
                                                          arg_word: 
                                                            {
                                                              <
/tmp/dietpi-software_help_onlinedoc_url_list
                                                              >
                                                            }
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [82287 82305]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [82264 82283]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (C {<whiptail>} {<--title>} {(DQ <'DietPi - Help'>)} {<--backtitle>} 
                              {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<--textbox>} {</tmp/dietpi-software_help_onlinedoc_url_list>} 
                              {
                                (word_part.ArithSub
                                  anode: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Minus
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                command_list: 
                                                  (command.CommandList
                                                    children: [(C {<tput>} {<lines>})]
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              } 
                              {
                                (word_part.ArithSub
                                  anode: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Minus
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                command_list: 
                                                  (command.CommandList
                                                    children: [(C {<tput>} {<cols>})]
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                    )
                                )
                              } {<--scrolltext>}
                            )
                          ]
                          spids: [82197 82200 82410 -1]
                        )
                        (case_arm
                          pat_list: [{<Install>}]
                          action: [(C {<Menu_StartInstall>})]
                          spids: [82414 82415 82423 -1]
                        )
                      ]
                    )
                  ]
                  spids: [79961 79975]
                )
              ]
              else_action: [(C {<Menu_Exit>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_Exit
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$G_DIETPI_INSTALL_STAGE')}
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'Exit Setup?'>)}
                          spids: [82479]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
' DietPi has not fully been installed.\\n This must be completed prior to using DietPi by selecting:\\n - Go Start Install. \\n \\n Would you like to exit and abort the installation?'
                                >
                              )
                            }
                          spids: [82485]
                        )
                      ]
                    )
                    (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<--yes-button>} {(DQ <Ok>)} 
                      {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<13>} {<65>}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [82530]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$CHOICE')})
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<Banner_Aborted>}) (C {<Exit_Destroy>})]
                          spids: [82534 82548]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                              op: assign_op.Equal
                              rhs: {<0>}
                              spids: [82568]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [82462 82476]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$G_DIETPI_INSTALL_STAGE')}
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'Exit DietPi-Software?'>)}
                          spids: [82596]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'Do you wish to exit DietPi-Software?\\n\\nAll changes to software selections will be cleared.'
                                >
                              )
                            }
                          spids: [82602]
                        )
                      ]
                    )
                    (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<--yes-button>} {(DQ <Ok>)} 
                      {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<11>} {<65>}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [82647]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$CHOICE')})
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<Banner_Aborted>}) (C {<Exit_Destroy>})]
                          spids: [82651 82665]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                              op: assign_op.Equal
                              rhs: {<0>}
                              spids: [82685]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [82579 82593]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_ConfirmInstall
      body: 
        (command.BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'string_output='> (SQ )})
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:string_output)
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (DQ <Id.Lit_Other '\\'> <'n - '> 
                                        (braced_var_sub
                                          token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$i')}
                                                )
                                            )
                                        ) <': '> 
                                        (braced_var_sub
                                          token: <Id.VSub_Name aSOFTWARE_WHIP_DESC>
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$i')}
                                                )
                                            )
                                        )
                                      )
                                    }
                                  spids: [82763]
                                )
                              ]
                            )
                          ]
                          spids: [82740 82759]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'DietPi - Start Installation?'>)}
                  spids: [82796]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'DietPi is now ready to install your software choices: '> 
                        ($ Id.VSub_DollarName '$string_output') <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'nSoftware details, usernames, passwords etc:'> 
                        <Id.Lit_Other '\\'> <'n - http://dietpi.com/software'> <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                        <'nWould you like to begin?'>
                      )
                    }
                  spids: [82802]
                )
              ]
            )
            (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} 
              {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} 
              {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<20>} {<70>}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [82858]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$CHOICE')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                          op: assign_op.Equal
                          rhs: {<-1>}
                          spids: [82884]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:GOSTARTINSTALL)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [82893]
                        )
                      ]
                    )
                  ]
                  spids: [82862 82876]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                      op: assign_op.Equal
                      rhs: {<0>}
                      spids: [82906]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_StartInstall
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DPipe
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DPipe
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  ($ Id.VSub_DollarName '$INSTALL_DIETPI_CHOICESMADE')
                                                }
                                            )
                                          right: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$INSTALL_LINUX_CHOICESMADE')}
                                            )
                                        )
                                      right: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$INSTALL_SSHSERVER_CHOICESMADE')}
                                        )
                                    )
                                  right: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$INSTALL_FILESERVER_CHOICESMADE')}
                                    )
                                )
                              right: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$INSTALL_LOGGING_CHOICESMADE')}
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Menu_ConfirmInstall>})]
                  spids: [82930 82960]
                )
              ]
              else_action: [
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$G_DIETPI_INSTALL_STAGE')}
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                              op: assign_op.Equal
                              rhs: {(SQ <'No Software Selected. Continue?'>)}
                              spids: [82998]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (SQ 
                                    <
'DietPi was unable to detect any software selections for install. Do you wish to continue?\\n\\nBy selecting Ok: \\n- DietPi optimized software will NOT be installed.\\nYou can use dietpi-software at a later date if you change your mind. \\n\\n- You want a Minimal Raspbian/Debian Server Install.\\nDietPi is a minimal image. A great OS base to use with your projects.'
                                    >
                                  )
                                }
                              spids: [83004]
                            )
                          ]
                        )
                        (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} 
                          {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} 
                          {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<16>} {<75>}
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:CHOICE)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_QMark '$?')}
                              spids: [83049]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$CHOICE')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                      op: assign_op.Equal
                                      rhs: {<-1>}
                                      spids: [83075]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:GOSTARTINSTALL)
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                      spids: [83084]
                                    )
                                  ]
                                )
                              ]
                              spids: [83053 83067]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [83097]
                                )
                              ]
                            )
                          ]
                        )
                      ]
                      spids: [82980 82994]
                    )
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$G_DIETPI_INSTALL_STAGE')}
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                              op: assign_op.Equal
                              rhs: {(SQ <'No Changes to Software Selection'>)}
                              spids: [83128]
                            )
                          ]
                        )
                        (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} 
                          {<--msgbox>} {(DQ <'No changes have been detected. Unable to start installation.'>)} {<8>} {<65>}
                        )
                      ]
                      spids: [83110 83124]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_Dietpi_Software
      body: 
        (command.BraceGroup
          children: [
            (C {<Menu_CreateSoftwareList>} {<0>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [83194]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DAmp
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 126>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DAmp
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DAmp
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {<Id.Lit_Digits 77>}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {<Id.Lit_Digits 78>}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                            )
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {<Id.Lit_Digits 79>}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                        )
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_NEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$INDEX_WEBSERVER_TARGET')}
                                        )
                                      right: 
                                        (arith_expr.Unary
                                          op_id: Id.Node_UnaryMinus
                                          child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'OMV: Requires Nginx'>)}
                          spids: [83288]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                <
'Open Media Vault (OMV) requires Nginx webserver and is not compatible with other web servers (eg: Lighttpd/Apache2). This is due to the OMV package listing Nginx as a dependency.'
                                > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'nOptions:'> <Id.Lit_Other '\\'> 
                                <"n - Change 'web server choice' to 'Nginx'"> <Id.Lit_Other '\\'> 
                                <
'n - Uninstall current web server, then, select any Nginx web stack for install (eg: LESP)'
                                > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                                <'nOpen Media Vault has been deselected and will not be installed.'>
                              )
                            }
                          spids: [83294]
                        )
                      ]
                    )
                    (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<19>} {<70>}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 126>})
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [83338]
                        )
                      ]
                    )
                  ]
                  spids: [83212 83284]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DAmp
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 116>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 44>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'SickRage - Install Transmission?'>)}
                          spids: [83392]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                <
'The DietPi SickRage installation is pre-configured to work with Transmission BitTorrent Server. This will allow SickRage to automatically download TV shows for you.'
                                > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                                <
'nNB: If you have another BitTorrent server installed, or prefer manual setup, please select No.'
                                > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                                <
'nWould you like DietPi to also install Transmission (recommended)?'
                                >
                              )
                            }
                          spids: [83398]
                        )
                      ]
                    )
                    (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<72>}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [83439]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$CHOICE')})
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: aSOFTWARE_INSTALL_STATE
                                      index: (arith_expr.ArithWord w:{<Id.Lit_Digits 44>})
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [83461]
                                )
                              ]
                            )
                          ]
                          spids: [83443 83457]
                        )
                      ]
                    )
                  ]
                  spids: [83355 83388]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DAmp
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 49>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_NEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$INDEX_SSHSERVER_TARGET')}
                                    )
                                  right: 
                                    (arith_expr.Unary
                                      op_id: Id.Node_UnaryMinus
                                      child: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'Gogs: Requires OpenSSH'>)}
                          spids: [83514]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'Gogs requires OpenSSH server to function.'> <Id.Lit_Other '\\'> 
                                <
'nIf you continue, OpenSSH will be selected for install on your system. OpenSSH will also replace Dropbear (if currently installed).'
                                > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'nWould you like to continue with the Gogs installation?'>
                              )
                            }
                          spids: [83520]
                        )
                      ]
                    )
                    (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<13>} {<65>}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [83559]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$CHOICE')})
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:INDEX_SSHSERVER_TARGET)
                                  op: assign_op.Equal
                                  rhs: {<-2>}
                                  spids: [83585]
                                )
                              ]
                            )
                          ]
                          spids: [83563 83577]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.IndexedName
                                  name: aSOFTWARE_INSTALL_STATE
                                  index: (arith_expr.ArithWord w:{<Id.Lit_Digits 49>})
                                )
                              op: assign_op.Equal
                              rhs: {<0>}
                              spids: [83594]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [83482 83510]
                )
              ]
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 74>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 82>})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'Info: Webserver Stack'>)}
                                  spids: [83665]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        <
'DietPi will automatically install a webserver stack (based on your Webserver Preference) when any software that requires a webserver is selected for installation (eg: Owncloud, PiHole etc).'
                                        > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                                        <
'nIt is highly recommended that you allow DietPi to do this for you, ensuring compatibility and stability across DietPi installed programs.'
                                        > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                                        <
'nPlease only select a webserver stack if you specifically need it, and, no other webserver stack is installed.'
                                        > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                                        <
'nTLDR: You do NOT need to select a webserver stack for installation with DietPi. Its all automatic.'
                                        >
                                      )
                                    }
                                  spids: [83671]
                                )
                              ]
                            )
                            (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} 
                              {<--msgbox>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} 
                              {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<19>} {<70>}
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [83642 83661]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DAmp
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DAmp
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 90>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$INDEX_WEBSERVER_TARGET')}
                                        )
                                      right: 
                                        (arith_expr.Unary
                                          op_id: Id.Node_UnaryMinus
                                          child: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                        )
                                    )
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DAmp
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 80>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 82>})
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                    )
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <PhpMyAdmin>)}
                          spids: [83799]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                <
'Due to a apt-get installation issue with PhpMyAdmin, you must have a fully installed Lighttpd + MaridaDB webserver stack, before PhpMyAdmin can be selected for install.'
                                > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'nYour selection for PhpMyAdmin has been removed.'>
                              )
                            }
                          spids: [83805]
                        )
                      ]
                    )
                    (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<13>} {<70>}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: aSOFTWARE_INSTALL_STATE
                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 90>})
                            )
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [83841]
                        )
                      ]
                    )
                  ]
                  spids: [83735 83795]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 59>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'DietPi Cam - Camera'>)}
                          spids: [83881]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                <
'DietPi Cam will automatically start and activate the camera during boot. This will prevent other programs (eg: raspistill) from using the camera.'
                                > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'nYou can free up the camera by selecting '> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                ) <'Stop Camera'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                <' from the web interface:'> <Id.Lit_Other '\\'> <'nhttp://myip/dietpicam'>
                              )
                            }
                          spids: [83887]
                        )
                      ]
                    )
                    (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<15>} {<70>}
                    )
                  ]
                  spids: [83858 83877]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 99>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:USER_EMONHUB_APIKEY_CURRENT)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (command.Pipeline
                                        children: [
                                          (C {<cat>} {</DietPi/dietpi.txt>})
                                          (C {<grep>} {<-m1>} {(SQ <'^SOFTWARE_EMONHUB_APIKEY='>)})
                                          (C {<sed>} {(SQ <'s/.*=//'>)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                              )
                            }
                          spids: [83968]
                        )
                      ]
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$USER_EMONHUB_APIKEY_COMPLETED')}
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'EmonPi/Hub - API KEY'>)}
                                  spids: [84013]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'Please enter your '> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) <'Write API KEY'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <':'> <Id.Lit_Other '\\'> 
                                        <
'n - Goto http://emoncms.org and register an account and login.'
                                        > <Id.Lit_Other '\\'> <'n - Select '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <Setup> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) <' from the top right of screen, then select '> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) <'My Account'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <Id.Lit_Other '\\'> 
                                        <'n - Enter the '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'Write API Key'> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) <' into the box below.'>
                                      )
                                    }
                                  spids: [84019]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:OPTION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (command.Simple
                                                words: [
                                                  {<whiptail>}
                                                  {<--inputbox>}
                                                  {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))}
                                                  {<14>}
                                                  {<75>}
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName 
'$USER_EMONHUB_APIKEY_CURRENT'
                                                      )
                                                    )
                                                  }
                                                  {<--title>}
                                                  {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))}
                                                  {<--backtitle>}
                                                  {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))}
                                                ]
                                                redirects: [
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '3>&'>
                                                    fd: 3
                                                    arg_word: {<1>}
                                                  )
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '1>&'>
                                                    fd: 1
                                                    arg_word: {<2>}
                                                  )
                                                  (redir.Redir
                                                    op: <Id.Redir_GreatAnd '2>&'>
                                                    fd: 2
                                                    arg_word: {<3>}
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                      )
                                    }
                                  spids: [84046]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '$?')}
                                  spids: [84087]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$CHOICE')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:USER_EMONHUB_APIKEY_CURRENT)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$OPTION')}
                                          spids: [84109]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'EmonPi/Hub - API KEY'>)}
                                          spids: [84114]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <'The following '> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                ) <'Write API KEY'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                                <' will be applied during installation:'> <Id.Lit_Other '\\'> <n> ($ Id.VSub_DollarName '$USER_EMONHUB_APIKEY_CURRENT') <Id.Lit_Other '\\'> <n> 
                                                <Id.Lit_Other '\\'> <'nIs this key correct?'>
                                              )
                                            }
                                          spids: [84120]
                                        )
                                      ]
                                    )
                                    (C {<whiptail>} {<--title>} 
                                      {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} 
                                      {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<11>} {<70>}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:CHOICE)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '$?')}
                                          spids: [84162]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: 
                                                        (arith_expr.ArithWord
                                                          w: {($ Id.VSub_DollarName '$CHOICE')}
                                                        )
                                                      right: 
                                                        (arith_expr.ArithWord
                                                          w: {<Id.Lit_Digits 0>}
                                                        )
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (C {<sed>} {<-i>} 
                                              {
                                                (DQ <'/^SOFTWARE_EMONHUB_APIKEY=/c'> 
                                                  <Id.Lit_Other '\\'> <'SOFTWARE_EMONHUB_APIKEY='> ($ Id.VSub_DollarName '$USER_EMONHUB_APIKEY_CURRENT')
                                                )
                                              } {</DietPi/dietpi.txt>}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      name: USER_EMONHUB_APIKEY_COMPLETED
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [84203]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [84166 84180]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [84091 84105]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [83937 83956]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 93>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <' Pi-hole - Setup Static IP Now?'>)}
                          spids: [84255]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'A static IP address is essential for Pi-hole installations. DietPi-Config can be used to quickly setup your static IP address.\\n\\nIf you have already setup your static IP, please ignore this message.\\n\\nWould you like to setup your static IP address now?'
                                >
                              )
                            }
                          spids: [84261]
                        )
                      ]
                    )
                    (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<15>} {<70>}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [84294]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$CHOICE')})
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                  op: assign_op.Equal
                                  rhs: {(SQ <' Pi-hole - Setup Static IP'>)}
                                  spids: [84316]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (SQ 
                                        <
'DietPi-Config will now be launched. Simply select your Ethernet or Wifi connection from the menu to access the IP address settings.\\n\\nThe "copy current address to STATIC" menu option can be used to quickly setup your static IP. Please ensure you change the mode "DHCP" to "STATIC".\\n\\nWhen you are done, select "Apply, Save Changes", then exit DietPi-Config to resume setup.'
                                        >
                                      )
                                    }
                                  spids: [84322]
                                )
                              ]
                            )
                            (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} 
                              {<--msgbox>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} 
                              {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<15>} {<70>}
                            )
                            (C {</DietPi/dietpi/dietpi-config>} {<8>} {<1>})
                          ]
                          spids: [84298 84312]
                        )
                      ]
                    )
                  ]
                  spids: [84228 84247]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DPipe]
                          children: [
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 60>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 61>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {</DietPi/dietpi/func/dietpi-set_hardware>} {<wifimodules>} {<enable>})
                    (C {<local>} {<Id.Lit_VarLike 'check_criteria='> <1>})
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$check_criteria')}
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<local>} {<Id.Lit_VarLike 'criteria_passed='> <1>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'WiFi Hotspot Criteria'>)}
                                  spids: [84462]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        <
'The following criteria must be met for this installation to succeed:'
                                        >
                                      )
                                    }
                                  spids: [84468]
                                )
                              ]
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'ethernet_active_state='> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (command.Pipeline
                                          children: [
                                            (C {<ip>} {<r>})
                                            (C {<grep>} {<-ci>} {<-m1>} 
                                              {
                                                (DQ <eth> 
                                                  (command_sub
                                                    left_token: <Id.Left_DollarParen '$('>
                                                    command_list: 
                                                      (command.CommandList
                                                        children: [
                                                          (C {<sed>} {<-n>} {<1p>} 
                                                            {</DietPi/dietpi/.network>}
                                                          )
                                                        ]
                                                      )
                                                  )
                                                )
                                              }
                                            )
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                )
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$ethernet_active_state')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                          op: assign_op.PlusEqual
                                          rhs: 
                                            {
                                              (DQ <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                                                <'n - Ethernet online: PASSED'>
                                              )
                                            }
                                          spids: [84524]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [84506 84520]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:criteria_passed)
                                      op: assign_op.Equal
                                      rhs: {<0>}
                                      spids: [84538]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                      op: assign_op.PlusEqual
                                      rhs: 
                                        {
                                          (DQ <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                                            <'n - Ethernet online: FAILED.'> <Id.Lit_Other '\\'> <'nUse dietpi-config to connect and configure ethernet.'>
                                          )
                                        }
                                      spids: [84542]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} {<-d>} 
                                          {</sys/class/net/wlan> 
                                            (command_sub
                                              left_token: <Id.Left_DollarParen '$('>
                                              command_list: 
                                                (command.CommandList
                                                  children: [
                                                    (C {<sed>} {<-n>} {<2p>} {</DietPi/dietpi/.network>})
                                                  ]
                                                )
                                            )
                                          } {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                          op: assign_op.PlusEqual
                                          rhs: 
                                            {
                                              (DQ <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                                                <'n - Wifi adapter detected: PASSED'>
                                              )
                                            }
                                          spids: [84582]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [84558 84578]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:criteria_passed)
                                      op: assign_op.Equal
                                      rhs: {<0>}
                                      spids: [84596]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                      op: assign_op.PlusEqual
                                      rhs: 
                                        {
                                          (DQ <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                                            <'n - Wifi adapter detected: FAILED.'> <Id.Lit_Other '\\'> <'nPlease connect a WiFi adapter and try again.'>
                                          )
                                        }
                                      spids: [84600]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: {($ Id.VSub_DollarName '$criteria_passed')}
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                          op: assign_op.PlusEqual
                                          rhs: 
                                            {
                                              (DQ <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                                                <'nPASSED: Criteria met. Good to go.'>
                                              )
                                            }
                                          spids: [84638]
                                        )
                                      ]
                                    )
                                    (C {<whiptail>} {<--title>} 
                                      {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} 
                                      {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<75>}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:check_criteria)
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [84672]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [84620 84634]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                      op: assign_op.PlusEqual
                                      rhs: 
                                        {
                                          (DQ <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                                            <
'nFAILED: Criteria not met. Would you like to check again?'
                                            >
                                          )
                                        }
                                      spids: [84685]
                                    )
                                  ]
                                )
                                (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} 
                                  {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} 
                                  {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<16>} {<75>}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:CHOICE)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_QMark '$?')}
                                      spids: [84733]
                                    )
                                  ]
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: {($ Id.VSub_DollarName '$CHOICE')}
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                      action: [
                                        (command.Simple
                                          words: [{<echo>} {(DQ <retry>)}]
                                          redirects: [
                                            (redir.Redir
                                              op: <Id.Redir_AndGreat '&>'>
                                              fd: -1
                                              arg_word: {</dev/null>}
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [84737 84751]
                                    )
                                  ]
                                  else_action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:check_criteria)
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [84775]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              name: aSOFTWARE_INSTALL_STATE
                                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 60>})
                                            )
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [84779]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.IndexedName
                                              name: aSOFTWARE_INSTALL_STATE
                                              index: (arith_expr.ArithWord w:{<Id.Lit_Digits 61>})
                                            )
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [84787]
                                        )
                                      ]
                                    )
                                    (C {<whiptail>} {<--title>} {(DQ <'WiFi Hotspot Failed'>)} 
                                      {<--msgbox>} {(DQ <'WiFi Hotspot criteria was not met. Your selection has been removed.'>)} {<--backtitle>} 
                                      {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<10>} {<65>}
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [84377 84415]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 68>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'Remot3.it - 1st run setup'>)}
                          spids: [84864]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'Remot3.it requires you to create an online account, and, link it this device.\\n\\nOnce DietPi has completed your software installations, and rebooted, please follow the First Run tutorial here:\\nhttp://dietpi.com/phpbb/viewtopic.php?f=8&t=5&p=188#p188'
                                >
                              )
                            }
                          spids: [84870]
                        )
                      ]
                    )
                    (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<70>}
                    )
                  ]
                  spids: [84841 84860]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 92>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'Lets Encrypt Info'>)}
                          spids: [84933]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'Currently, the DietPi installation of CertBot supports Apache2 & Lighttpd only.\\n\\nOnce the installation has finished, you can setup your free SSL cert with:\\n - DietPi-LetsEncrypt\\n\\nThis is a easy to use frontend for CertBot and allows intergration into DietPi systems.\\n\\nMore information:\\n - http://dietpi.com/phpbb/viewtopic.php?f=8&t=5&p=1061#p1062'
                                >
                              )
                            }
                          spids: [84939]
                        )
                      ]
                    )
                    (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<18>} {<70>}
                    )
                  ]
                  spids: [84910 84929]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 67>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'NoIp - Setup Now?'>)}
                          spids: [85010]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'NoIp can be setup and configured by using DietPi-Config. Would you like to go there now? \\n\\n- Once completed, exit DietPi-Config to resume setup. \\n\\n- More information:\\nhttp://dietpi.com/phpbb/viewtopic.php?f=8&t=5&start=10#p58'
                                >
                              )
                            }
                          spids: [85016]
                        )
                      ]
                    )
                    (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Cancel>)} {<--defaultno>} {<--backtitle>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<15>} {<70>}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [85061]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$CHOICE')})
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<Write_InstallFileList>} {<temp>})
                            (C {</DietPi/dietpi/dietpi-config>} {<16>} {<1>})
                            (C {<Read_InstallFileList>} {<temp>})
                          ]
                          spids: [85065 85079]
                        )
                      ]
                    )
                  ]
                  spids: [84987 85006]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DPipe
                              left: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DPipe
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DPipe
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DPipe
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DPipe
                                              left: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DPipe
                                                  left: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DPipe
                                                      left: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_DPipe
                                                          left: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_DPipe
                                                              left: 
                                                                (arith_expr.Binary
                                                                  op_id: Id.Arith_DEqual
                                                                  left: 
                                                                    (arith_expr.ArithWord
                                                                      w: 
                                                                        {
                                                                          (braced_var_sub
                                                                            token: 
                                                                              <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                              >
                                                                            bracket_op: 
                                                                              (bracket_op.ArrayIndex
                                                                                expr: 
                                                                                  (arith_expr.ArithWord
                                                                                    w: 
                                                                                      {
                                                                                        <
Id.Lit_Digits 23
                                                                                        >
                                                                                      }
                                                                                  )
                                                                              )
                                                                          )
                                                                        }
                                                                    )
                                                                  right: 
                                                                    (arith_expr.ArithWord
                                                                      w: {<Id.Lit_Digits 1>}
                                                                    )
                                                                )
                                                              right: 
                                                                (arith_expr.Binary
                                                                  op_id: Id.Arith_DEqual
                                                                  left: 
                                                                    (arith_expr.ArithWord
                                                                      w: 
                                                                        {
                                                                          (braced_var_sub
                                                                            token: 
                                                                              <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                              >
                                                                            bracket_op: 
                                                                              (bracket_op.ArrayIndex
                                                                                expr: 
                                                                                  (arith_expr.ArithWord
                                                                                    w: 
                                                                                      {
                                                                                        <
Id.Lit_Digits 24
                                                                                        >
                                                                                      }
                                                                                  )
                                                                              )
                                                                          )
                                                                        }
                                                                    )
                                                                  right: 
                                                                    (arith_expr.ArithWord
                                                                      w: {<Id.Lit_Digits 1>}
                                                                    )
                                                                )
                                                            )
                                                          right: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_DEqual
                                                              left: 
                                                                (arith_expr.ArithWord
                                                                  w: 
                                                                    {
                                                                      (braced_var_sub
                                                                        token: 
                                                                          <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                          >
                                                                        bracket_op: 
                                                                          (bracket_op.ArrayIndex
                                                                            expr: 
                                                                              (arith_expr.ArithWord
                                                                                w: 
                                                                                  {
                                                                                    <Id.Lit_Digits 
25
                                                                                    >
                                                                                  }
                                                                              )
                                                                          )
                                                                      )
                                                                    }
                                                                )
                                                              right: 
                                                                (arith_expr.ArithWord
                                                                  w: {<Id.Lit_Digits 1>}
                                                                )
                                                            )
                                                        )
                                                      right: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_DEqual
                                                          left: 
                                                            (arith_expr.ArithWord
                                                              w: 
                                                                {
                                                                  (braced_var_sub
                                                                    token: 
                                                                      <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                      >
                                                                    bracket_op: 
                                                                      (bracket_op.ArrayIndex
                                                                        expr: 
                                                                          (arith_expr.ArithWord
                                                                            w: {<Id.Lit_Digits 26>}
                                                                          )
                                                                      )
                                                                  )
                                                                }
                                                            )
                                                          right: 
                                                            (arith_expr.ArithWord
                                                              w: {<Id.Lit_Digits 1>}
                                                            )
                                                        )
                                                    )
                                                  right: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: 
                                                        (arith_expr.ArithWord
                                                          w: 
                                                            {
                                                              (braced_var_sub
                                                                token: 
                                                                  <Id.VSub_Name 
aSOFTWARE_INSTALL_STATE
                                                                  >
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      (arith_expr.ArithWord
                                                                        w: {<Id.Lit_Digits 31>}
                                                                      )
                                                                  )
                                                              )
                                                            }
                                                        )
                                                      right: 
                                                        (arith_expr.ArithWord
                                                          w: {<Id.Lit_Digits 1>}
                                                        )
                                                    )
                                                )
                                              right: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: 
                                                    (arith_expr.ArithWord
                                                      w: 
                                                        {
                                                          (braced_var_sub
                                                            token: 
                                                              <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  (arith_expr.ArithWord
                                                                    w: {<Id.Lit_Digits 51>}
                                                                  )
                                                              )
                                                          )
                                                        }
                                                    )
                                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                                )
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: 
                                                (arith_expr.ArithWord
                                                  w: 
                                                    {
                                                      (braced_var_sub
                                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: 
                                                              (arith_expr.ArithWord
                                                                w: {<Id.Lit_Digits 108>}
                                                              )
                                                          )
                                                      )
                                                    }
                                                )
                                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {<Id.Lit_Digits 112>}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                        )
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {<Id.Lit_Digits 119>}
                                                      )
                                                  )
                                              )
                                            }
                                        )
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                    )
                                )
                              right: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 155>})
                                              )
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <' DietPi - Boot Options'>)}
                          spids: [85284]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'Would you like to configure the auto boot options for DietPi?\\n\\nThis will allow you to choose which program loads automatically after booting eg:\\n - Console\\n - Desktop\\n - Kodi'
                                >
                              )
                            }
                          spids: [85290]
                        )
                      ]
                    )
                    (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<70>}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [85323]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$CHOICE')})
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {</DietPi/dietpi/dietpi-autostart>})]
                          spids: [85327 85341]
                        )
                      ]
                    )
                  ]
                  spids: [85131 85276]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_Linux_Software
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Unary
                              op_id: Id.Arith_Bang
                              child: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      ($ Id.VSub_DollarName 
'$USER_LINUX_AUTOINSTALL_PROMPT_DISPLAYED'
                                      )
                                    }
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'Additional Linux Software'>)}
                          spids: [85392]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'DietPi will automatically install additional Linux software on the next screen, when required (eg: Desktop LXDE will install ALSA + Xserver).\\n\\nThis means you only need to select the software you actually require.'
                                >
                              )
                            }
                          spids: [85398]
                        )
                      ]
                    )
                    (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<70>}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:USER_LINUX_AUTOINSTALL_PROMPT_DISPLAYED)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [85430]
                        )
                      ]
                    )
                  ]
                  spids: [85376 85388]
                )
              ]
            )
            (C {<Menu_CreateSoftwareList>} {<1>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [85457]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'FTP Client - Setup Now?'>)}
                          spids: [85497]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'FTP Client as a filesystem mount (CurlFTPfs) can be setup and configured by using DietPi-Config. Would you like to go there now? \\n\\n- Once completed, exit DietPi-Config to resume setup.'
                                >
                              )
                            }
                          spids: [85503]
                        )
                      ]
                    )
                    (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Cancel>)} {<--defaultno>} {<--backtitle>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<13>} {<70>}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [85548]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$CHOICE')})
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<Write_InstallFileList>} {<temp>})
                            (C {</DietPi/dietpi/dietpi-config>} {<16>} {<1>})
                            (C {<Read_InstallFileList>} {<temp>})
                          ]
                          spids: [85552 85566]
                        )
                      ]
                    )
                  ]
                  spids: [85474 85493]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                          )
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'Samba Client  - Setup Now?'>)}
                          spids: [85637]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (SQ 
                                <
'Samba Client can be setup and configured by using DietPi-Config. Would you like to go there now? \\n\\n- Once completed, exit DietPi-Config to resume setup.'
                                >
                              )
                            }
                          spids: [85643]
                        )
                      ]
                    )
                    (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Cancel>)} {<--defaultno>} {<--backtitle>} 
                      {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<13>} {<70>}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [85688]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$CHOICE')})
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<Write_InstallFileList>} {<temp>})
                            (C {</DietPi/dietpi/dietpi-config>} {<16>} {<1>})
                            (C {<Read_InstallFileList>} {<temp>})
                          ]
                          spids: [85692 85706]
                        )
                      ]
                    )
                  ]
                  spids: [85614 85633]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Menu_Uninstall_Software
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [85774]
                )
              ]
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'asoftware_for_uninstall='> (sh_array_literal left:<Id.Op_LParen _>)}
            )
            (C {<local>} {<Id.Lit_VarLike 'software_installed_count='> <0>})
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                  right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')})
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DAmp
                                      left: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {($ Id.VSub_DollarName '$i')}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                        )
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_GreatEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name aSOFTWARE_TYPE>
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {($ Id.VSub_DollarName '$i')}
                                                          )
                                                      )
                                                  )
                                                }
                                            )
                                          right: 
                                            (arith_expr.Unary
                                              op_id: Id.Node_UnaryMinus
                                              child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                            )
                                        )
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:whiptail_list_array)
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [
                                          {(DQ ($ Id.VSub_DollarName '$i'))}
                                          {
                                            (DQ 
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              ) <': '> 
                                              (braced_var_sub
                                                token: <Id.VSub_Name aSOFTWARE_WHIP_DESC>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$i')}
                                                      )
                                                  )
                                              )
                                            )
                                          }
                                          {(DQ <off>)}
                                        ]
                                      )
                                    }
                                  spids: [85862]
                                )
                              ]
                            )
                            (command.DParen
                              child: 
                                (arith_expr.UnaryAssign
                                  op_id: Id.Node_PostDPlus
                                  child: (sh_lhs_expr.Name name:software_installed_count)
                                )
                            )
                          ]
                          spids: [85824 85858]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$software_installed_count')}
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<whiptail>} {<--title>} {(DQ <'Uninstall Software'>)} {<--msgbox>} 
                      {(DQ <'No software is currently installed, or, available for removal.'>)} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<9>} {<60>}
                    )
                  ]
                  spids: [85911 85925]
                )
              ]
              else_action: [
                (command.Simple
                  words: [
                    {<whiptail>}
                    {<--title>}
                    {(DQ <'Uninstall Software'>)}
                    {<--checklist>}
                    {<--separate-output>}
                    {(DQ <'Use the spacebar to select the software you would like to remove.'>)}
                    {<--cancel-button>}
                    {(DQ <Cancel>)}
                    {<--backtitle>}
                    {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))}
                    {<18>}
                    {<75>}
                    {<10>}
                    {
                      (DQ 
                        (braced_var_sub
                          token: <Id.VSub_Name whiptail_list_array>
                          bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                        )
                      )
                    }
                  ]
                  redirects: [
                    (redir.Redir
                      op: <Id.Redir_Great '2>'>
                      fd: 2
                      arg_word: {</tmp/dietpi-software_uninstall_results>}
                    )
                  ]
                )
                (command.WhileUntil
                  keyword: <Id.KW_While while>
                  cond: [(C {<read>} {<choice>})]
                  body: 
                    (command.DoGroup
                      children: [
                        (command.Case
                          to_match: {($ Id.VSub_DollarName '$choice')}
                          arms: [
                            (case_arm
                              pat_list: [{<Id.Lit_Star '*'>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:asoftware_for_uninstall)
                                      op: assign_op.PlusEqual
                                      rhs: 
                                        {
                                          (sh_array_literal
                                            left: <Id.Op_LParen _>
                                            words: [{(DQ ($ Id.VSub_DollarName '$choice'))}]
                                          )
                                        }
                                      spids: [86036]
                                    )
                                  ]
                                )
                              ]
                              spids: [86028 86029 86044 -1]
                            )
                          ]
                        )
                      ]
                    )
                  redirects: [
                    (redir.Redir
                      op: <Id.Redir_Less '<'>
                      fd: -1
                      arg_word: {</tmp/dietpi-software_uninstall_results>}
                    )
                  ]
                )
                (command.Simple
                  words: [{<rm>} {</tmp/dietpi-software_uninstall_results>}]
                  redirects: [(redir.Redir op:<Id.Redir_AndGreat '&>'> fd:-1 arg_word:{</dev/null>})]
                )
                (C {<unset>} {<whiptail_list_array>})
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Great
                                  left: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name asoftware_for_uninstall>
                                            prefix_op: (Id.VSub_Pound)
                                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                          )
                                        }
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                              op: assign_op.Equal
                              rhs: 
                                {(SQ <'The following software will be REMOVED from your system:\\n'>)}
                              spids: [86106]
                            )
                          ]
                        )
                        (command.ForExpr
                          init: 
                            (arith_expr.BinaryAssign
                              op_id: Id.Arith_Equal
                              left: (sh_lhs_expr.Name name:i)
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                          cond: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Less
                              left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                              right: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name asoftware_for_uninstall>
                                        prefix_op: (Id.VSub_Pound)
                                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      )
                                    }
                                )
                            )
                          update: 
                            (arith_expr.UnaryAssign
                              op_id: Id.Node_PostDPlus
                              child: (sh_lhs_expr.Name name:i)
                            )
                          body: 
                            (command.DoGroup
                              children: [
                                (command.ForExpr
                                  init: 
                                    (arith_expr.BinaryAssign
                                      op_id: Id.Arith_Equal
                                      left: (sh_lhs_expr.Name name:j)
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                  cond: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike j>)
                                      right: 
                                        (arith_expr.ArithWord
                                          w: {($ Id.VSub_DollarName '$TOTAL_SOFTWARE_INDEXS')}
                                        )
                                    )
                                  update: 
                                    (arith_expr.UnaryAssign
                                      op_id: Id.Node_PostDPlus
                                      child: (sh_lhs_expr.Name name:j)
                                    )
                                  body: 
                                    (command.DoGroup
                                      children: [
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DParen
                                                      child: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_DEqual
                                                          left: 
                                                            (arith_expr.ArithWord
                                                              w: 
                                                                {
                                                                  (braced_var_sub
                                                                    token: 
                                                                      <Id.VSub_Name 
asoftware_for_uninstall
                                                                      >
                                                                    bracket_op: 
                                                                      (bracket_op.ArrayIndex
                                                                        expr: 
                                                                          (arith_expr.ArithWord
                                                                            w: 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName '$i'
                                                                                )
                                                                              }
                                                                          )
                                                                      )
                                                                  )
                                                                }
                                                            )
                                                          right: 
                                                            (arith_expr.ArithWord
                                                              w: {($ Id.VSub_DollarName '$j')}
                                                            )
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:WHIP_QUESTION)
                                                      op: assign_op.PlusEqual
                                                      rhs: 
                                                        {
                                                          (DQ <' - '> 
                                                            (braced_var_sub
                                                              token: 
                                                                <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                                                              bracket_op: 
                                                                (bracket_op.ArrayIndex
                                                                  expr: 
                                                                    (arith_expr.ArithWord
                                                                      w: {($ Id.VSub_DollarName '$j')}
                                                                    )
                                                                )
                                                            ) <': '> 
                                                            (braced_var_sub
                                                              token: 
                                                                <Id.VSub_Name aSOFTWARE_WHIP_DESC>
                                                              bracket_op: 
                                                                (bracket_op.ArrayIndex
                                                                  expr: 
                                                                    (arith_expr.ArithWord
                                                                      w: {($ Id.VSub_DollarName '$j')}
                                                                    )
                                                                )
                                                            ) <Id.Lit_Other '\\'> <n>
                                                          )
                                                        }
                                                      spids: [86188]
                                                    )
                                                  ]
                                                )
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Break break>
                                                )
                                              ]
                                              spids: [86165 86184]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                )
                              ]
                            )
                        )
                        (C {<whiptail>} {<--title>} {(DQ <'Uninstall Software?'>)} {<--yesno>} 
                          {
                            (DQ ($ Id.VSub_DollarName '$WHIP_QUESTION') <' '> <Id.Lit_Other '\\'> 
                              <'nDo you wish to continue?'>
                            )
                          } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Cancel>)} {<--defaultno>} {<--backtitle>} 
                          {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<20>} {<70>}
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:CHOICE)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_QMark '$?')}
                              spids: [86271]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.ArithWord
                                              w: {($ Id.VSub_DollarName '$CHOICE')}
                                            )
                                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (C {</DietPi/dietpi/dietpi-services>} {<stop>})
                                (command.ForExpr
                                  init: 
                                    (arith_expr.BinaryAssign
                                      op_id: Id.Arith_Equal
                                      left: (sh_lhs_expr.Name name:i)
                                      right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                    )
                                  cond: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>)
                                      right: 
                                        (arith_expr.ArithWord
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name asoftware_for_uninstall>
                                                prefix_op: (Id.VSub_Pound)
                                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                              )
                                            }
                                        )
                                    )
                                  update: 
                                    (arith_expr.UnaryAssign
                                      op_id: Id.Node_PostDPlus
                                      child: (sh_lhs_expr.Name name:i)
                                    )
                                  body: 
                                    (command.DoGroup
                                      children: [
                                        (C {<Uninstall_Software>} 
                                          {
                                            (braced_var_sub
                                              token: <Id.VSub_Name asoftware_for_uninstall>
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: 
                                                    (arith_expr.ArithWord
                                                      w: {($ Id.VSub_DollarName '$i')}
                                                    )
                                                )
                                            )
                                          }
                                        )
                                      ]
                                    )
                                )
                                (C {<Uninstall_Software_Finalize>})
                                (C {<Write_InstallFileList>})
                                (C {</DietPi/dietpi/dietpi-services>} {<start>})
                                (C {<whiptail>} {<--title>} {(DQ <'Uninstall Software'>)} {<--msgbox>} 
                                  {(DQ <'Uninstall completed.'>)} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<9>} {<60>}
                                )
                              ]
                              spids: [86280 86294]
                            )
                          ]
                        )
                      ]
                      spids: [86078 86098]
                    )
                  ]
                )
              ]
            )
            (C {<unset>} {<whiptail_list_array>})
            (C {<unset>} {<asoftware_for_uninstall>})
          ]
        )
    )
    (command.ShFunction
      name: Banner_Setup
      body: 
        (command.BraceGroup
          children: [
            (C {</DietPi/dietpi/dietpi-banner>} {<0>})
            (C {<echo>} {<-e>} 
              {(DQ <Id.Lit_Other '\\'> <'n Welcome to DietPi-Software '> <Id.Lit_Other '\\'> <n>)}
            )
          ]
        )
    )
    (command.ShFunction
      name: Banner_Installing
      body: 
        (command.BraceGroup
          children: [
            (C {<G_DIETPI-NOTIFY>} {<3>} {<DietPi-Software>} 
              {
                (DQ <'Installing '> 
                  (braced_var_sub
                    token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$INSTALLING_INDEX')})
                      )
                  ) <': '> 
                  (braced_var_sub
                    token: <Id.VSub_Name aSOFTWARE_WHIP_DESC>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$INSTALLING_INDEX')})
                      )
                  )
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: Banner_Configuration
      body: 
        (command.BraceGroup
          children: [
            (C {<G_DIETPI-NOTIFY>} {<3>} {<DietPi-Software>} 
              {
                (DQ <'Configuring '> 
                  (braced_var_sub
                    token: <Id.VSub_Name aSOFTWARE_WHIP_NAME>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$INSTALLING_INDEX')})
                      )
                  ) <': '> 
                  (braced_var_sub
                    token: <Id.VSub_Name aSOFTWARE_WHIP_DESC>
                    bracket_op: 
                      (bracket_op.ArrayIndex
                        expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$INSTALLING_INDEX')})
                      )
                  )
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: Banner_Apt_Update
      body: 
        (command.BraceGroup
          children: [
            (C {<G_DIETPI-NOTIFY>} {<3>} {<DietPi-Software>} {(DQ <'Update & upgrade APT'>)})
            (C {<sleep>} {<1>})
          ]
        )
    )
    (command.ShFunction
      name: Banner_Reboot
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Unary
                              op_id: Id.Arith_Bang
                              child: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$DISABLE_REBOOT')}
                                )
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<G_DIETPI-NOTIFY>} {<3>} {<DietPi-Software>} {(DQ <'Installation completed'>)})
                    (C {<G_DIETPI-NOTIFY>} {<0>} 
                      {
                        (DQ <'The system will now reboot. '> <Id.Lit_Other '\\'> 
                          <'n This completes the DietPi-Software installation.'> <Id.Lit_Other '\\'> <n>
                        )
                      }
                    )
                    (C {<sleep>} {<3>})
                  ]
                  spids: [86588 86600]
                )
              ]
              else_action: [
                (C {<G_DIETPI-NOTIFY>} {<0>} {(DQ <'DietPi-Software installation completed.'>)})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Banner_Configs
      body: 
        (command.BraceGroup
          children: [
            (C {<G_DIETPI-NOTIFY>} {<3>} {<DietPi-Software>} {(DQ <'Optimize and configure software'>)})
            (C {<G_DIETPI-NOTIFY>} {<2>} 
              {
                (DQ <'Applying DietPi optimizations and configurations for '> 
                  ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') <', please wait...'> <Id.Lit_Other '\\'> <n>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: Banner_Aborted
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$G_DIETPI_INSTALL_STAGE')}
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {</DietPi/dietpi/dietpi-banner>} {<0>})
                    (C {<G_DIETPI-NOTIFY>} {<1>} 
                      {
                        (DQ <Id.Lit_Other '\\'> <'n Installation Aborted by User '> <Id.Lit_Other '\\'> 
                          <'n Installation must be completed prior to using DietPi '> <Id.Lit_Other '\\'> <'n Please run dietpi-software to restart the installation '> <Id.Lit_Other '\\'> 
                          <n>
                        )
                      }
                    )
                  ]
                  spids: [86702 86716]
                )
              ]
              else_action: [(C {</DietPi/dietpi/dietpi-banner>} {<1>})]
            )
          ]
        )
    )
    (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Initializing database, please wait...'>)})
    (C {<Software_Arrays_Init>})
    (C {<Read_InstallFileList>})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_RBracket ']'>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(C {<Input_Modes>} {(DQ ($ Id.VSub_At '$@'))})]
          spids: [86822 86835]
        )
      ]
      else_action: [
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: 
                            (arith_expr.ArithWord
                              w: {($ Id.VSub_DollarName '$G_DIETPI_INSTALL_STAGE')}
                            )
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                        )
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
              action: [(C {<FirstRun_Automation_Init>})]
              spids: [86871 86885]
            )
          ]
        )
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DAmp
                          left: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: {($ Id.VSub_DollarName '$G_DIETPI_INSTALL_STAGE')}
                                )
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                          right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$G_USER_INPUTS')})
                        )
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
              action: [
                (C {<whiptail>} {<--title>} {(DQ <'DietPi - GPLv2 License'>)} {<--msgbox>} 
                  {
                    (DQ 
                      <
'This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or any later version.'
                      > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                      <
'nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.'
                      > <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> 
                      <'nYou should have received a copy of the GNU General Public License'> <Id.Lit_Other '\\'> <'nalong with this program.  If not, see http://www.gnu.org/licenses/'>
                    )
                  } {<--backtitle>} {(DQ <'DietPi - GPLv2 Compliance'>)} {<18>} {<70>}
                )
              ]
              spids: [86901 86919]
            )
          ]
        )
        (C {<Banner_Setup>})
        (C {<Check_NTPD_Status>})
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: 
                            (arith_expr.ArithWord
                              w: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    command_list: 
                                      (command.CommandList
                                        children: [(C {<cat>} {</DietPi/dietpi/.update_stage>})]
                                      )
                                  )
                                }
                            )
                          right: 
                            (arith_expr.Unary
                              op_id: Id.Node_UnaryMinus
                              child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                            )
                        )
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
              action: [(C {<Check_Internet_Connection>}) (C {<FirstRun_DietPi_Update>})]
              spids: [86983 87002]
            )
          ]
        )
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: 
                            (arith_expr.ArithWord
                              w: {($ Id.VSub_DollarName '$G_DIETPI_INSTALL_STAGE')}
                            )
                          right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                        )
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
              action: [(C {<FirstRun_Automation_Set>})]
              spids: [87022 87036]
            )
          ]
        )
        (command.WhileUntil
          keyword: <Id.KW_While while>
          cond: [
            (command.Sentence
              child: 
                (command.DParen
                  child: 
                    (arith_expr.Binary
                      op_id: Id.Arith_Great
                      left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TARGETMENUID')})
                      right: 
                        (arith_expr.Unary
                          op_id: Id.Node_UnaryMinus
                          child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                        )
                    )
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          body: 
            (command.DoGroup
              children: [
                (C {<clear>})
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$TARGETMENUID')}
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      action: [(C {<Menu_Main>})]
                      spids: [87079 87093]
                    )
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$TARGETMENUID')}
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>})
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      action: [(C {<Menu_Dietpi_Software>})]
                      spids: [87101 87115]
                    )
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$TARGETMENUID')}
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>})
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      action: [(C {<Menu_Linux_Software>})]
                      spids: [87123 87137]
                    )
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    (arith_expr.ArithWord
                                      w: {($ Id.VSub_DollarName '$TARGETMENUID')}
                                    )
                                  right: (arith_expr.ArithWord w:{<Id.Lit_Digits 3>})
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      action: [(C {<Menu_Uninstall_Software>})]
                      spids: [87145 87159]
                    )
                  ]
                )
              ]
            )
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DParen
                  child: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$GOSTARTINSTALL')})
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (C {</DietPi/dietpi/dietpi-drive_manager>} {<2>})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_NEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_QMark '$?')})
                              right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>})
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Exit_Destroy>})]
                  spids: [87210 87224]
                )
              ]
            )
            (C {<Check_Internet_Connection>})
            (C {<Run_Installations>})
            (command.Simple
              words: [{</DietPi/dietpi/dietpi-survey>}]
              redirects: [(redir.Redir op:<Id.Redir_AndGreat '&>'> fd:-1 arg_word:{</dev/null>})]
            )
            (C {<Banner_Reboot>})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$DISABLE_REBOOT')})
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {</DietPi/dietpi/dietpi-services>} {<start>})]
                  spids: [87268 87278]
                )
              ]
              else_action: [(C {<sync>}) (C {<reboot>})]
            )
          ]
          spids: [87187 87197]
        )
      ]
    )
    (C {<Exit_Destroy>})
  ]
)