(command.CommandList
  children: [
    (C {(sudo)} {(apt-get)} {(update)})
    (C {(sudo)} {(apt-get)} {(-y)} {(-q)} {(upgrade)})
    (C {(sudo)} {(apt-get)} {(install)} {(-y)} {(-q)} {(libboost-all-dev)} {(libusb-1.0.0-dev)} 
      {(libssl-dev)} {(cmake)} {(libprotobuf-dev)} {(protobuf-c-compiler)} {(protobuf-compiler)} {(git)}
    )
    (C {(sudo)} {(apt-get)} {(-y)} {(-q)} {(install)} {(build-essential)} {(libfontconfig1-dev)} 
      {(libdbus-1-dev)} {(libfreetype6-dev)} {(libicu-dev)} {(libsqlite3-dev)} {(libssl-dev)} {(libjpeg9-dev)} {(libglib2.0-dev)} 
      {(bluez)} {(libbluetooth-dev)} {(libasound2-dev)} {(libgstreamer0.10-dev)} {(libgstreamer-plugins-base1.0-dev)} 
      {(libxkbcommon-dev)} {(libwayland-dev)} {(libasound2-dev)} {(libgstreamer0.10-dev)} {(libgstreamer-plugins-base0.10-dev)} 
      {(build-essential)} {(libfontconfig1-dev)} {(libdbus-1-dev)} {(libfreetype6-dev)} {(libicu-dev)} {(libinput-dev)} 
      {(libxkbcommon-dev)} {(libsqlite3-dev)} {(libglib2.0-dev)} {(libraspberrypi-dev)} {(libxcb1-dev)} {(libfontconfig1-dev)} 
      {(libfreetype6-dev)} {(libx11-dev)} {(libxext-dev)} {(libxfixes-dev)} {(libxi-dev)} {(libxrender-dev)} {(libxcb1-dev)} 
      {(libx11-xcb-dev)} {(libxcb-glx0-dev)} {(libts-dev)} {(pulseaudio)} {(libpulse-dev)} {(librtaudio5a)} {(librtaudio-dev)} 
      {(libraspberrypi-bin)} {(libraspberrypi-dev)}
    )
    (C {(sudo)} {(apt-get)} {(-y)} {(-q)} {(install)} {(rpi-update)})
    (C {(sudo)} {(apt-get)} {(remove)} {(--purge)} {(-y)} {(-q)} {(libqt5multimedia5)} 
      {(libqt5multimedia5-plugins)} {(libqt5multimediawidgets5)} {(qtmultimedia5-dev)} {(libqt5bluetooth5)} {(libqt5bluetooth5-bin)} 
      {(qtconnectivity5-dev)}
    )
    (C {(sudo)} {(apt-get)} {(install)} {(-y)} {(-q)} {(pulseaudio)} {(librtaudio-dev)} {(librtaudio5a)})
    (C {(sudo)} {(apt-get)} {(-y)} {(-q)} {(install)} {(pv)} {(unzip)} {(kpartx)} {(zerofree)} 
      {(qemu-user-static)} {(binfmt-support)}
    )
    (C {(sudo)} {(apt-get)} {(clean)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:updatecheck)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_Backtick val:'`' span_id:267)
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Pipeline
                        children: [
                          (C {(sudo)} {(Id.Lit_VarLike 'JUST_CHECK=') (1)} {(rpi-update)})
                          (C {(grep)} {(commit)})
                        ]
                        negated: F
                      )
                    ]
                  )
              )
            }
          spids: [266]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$updatecheck')} 
                  {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ )} {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:297)
            )
          ]
          action: [
            (C {(sudo)} {(rpi-update)})
            (C {(echo)} 
              {(DQ ('############################################################################'))}
            )
            (C {(echo)} {(DQ )})
            (C {(echo)} {(DQ ('Firmware was updated - please reboot now!'))})
            (C {(echo)} {(DQ ('You can run next step after reboot.'))})
            (C {(echo)} {(DQ )})
            (C {(echo)} 
              {(DQ ('############################################################################'))}
            )
          ]
          spids: [284 299]
        )
      ]
      else_action: [
        (C {(echo)} 
          {(DQ ('############################################################################'))}
        )
        (C {(echo)} {(DQ )})
        (C {(echo)} {(DQ ('System ready - you can run next step now.'))})
        (C {(echo)} {(DQ )})
        (C {(echo)} 
          {(DQ ('############################################################################'))}
        )
      ]
    )
  ]
)