(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:INPUT) op:Equal rhs:{(0)} spids:[70])]
      spids: [70]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_EqualTilde
                      left: {($ VSub_Number '$1')}
                      right: 
                        {(Lit_Other '^') (-) (Lit_Other '?') (Lit_Other '[') (0-9) (Lit_Other ']') 
                          (Lit_Other '+') (Lit_Other '$')
                        }
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:INPUT)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [97]
                )
              ]
              spids: [97]
            )
          ]
          spids: [16777215 94]
        )
      ]
      spids: [16777215 101]
    )
    (C {(.)} {(/DietPi/dietpi/func/dietpi-globals)})
    (C {(export)} {(Lit_VarLike 'G_PROGRAM_NAME=') (SQ <DietPi-Banner>)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DIETPI_VERSION)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [(C {(sed)} {(-n)} {(1p)} {(/DietPi/dietpi/.version)})]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [141 149]
                ) (.) 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [(C {(sed)} {(-n)} {(2p)} {(/DietPi/dietpi/.version)})]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [151 159]
                )
              )
            }
          spids: [139]
        )
      ]
      spids: [139]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:IMAGE_ADDITIONAL_CREDITS)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(sed)} {(-n)} {(8p)} {(/DietPi/dietpi/.hw_model)})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [164 172]
              )
            }
          spids: [163]
        )
      ]
      spids: [163]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:IP_ADDRESS)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(sed)} {(-n)} {(4p)} {(/DietPi/dietpi/.network)})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [177 185]
              )
            }
          spids: [176]
        )
      ]
      spids: [176]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:IP_ADAPTER)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(sed)} {(-n)} {(3p)} {(/DietPi/dietpi/.network)})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [189 197]
              )
            }
          spids: [188]
        )
      ]
      spids: [188]
    )
    (FuncDef
      name: Update_Ip_Address
      body: 
        (BraceGroup
          children: [
            (C {(/DietPi/dietpi/func/obtain_network_details)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IP_ADDRESS)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(sed)} {(-n)} {(4p)} {(/DietPi/dietpi/.network)})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [211 219]
                      )
                    }
                  spids: [210]
                )
              ]
              spids: [210]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IP_ADAPTER)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(sed)} {(-n)} {(3p)} {(/DietPi/dietpi/.network)})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [223 231]
                      )
                    }
                  spids: [222]
                )
              ]
              spids: [222]
            )
          ]
          spids: [203]
        )
      spids: [200 203]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:UPDATE_AVAILABLE) op:Equal rhs:{(0)} spids:[239])]
      spids: [239]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:UPDATE_AVAILABLE_VERSION)
          op: Equal
          rhs: {(SQ )}
          spids: [243]
        )
      ]
      spids: [243]
    )
    (FuncDef
      name: Obtain_Update_Available
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-f)} {(/DietPi/dietpi/.update_available)} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:UPDATE_AVAILABLE)
                          op: Equal
                          rhs: {(1)}
                          spids: [278]
                        )
                      ]
                      spids: [278]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:UPDATE_AVAILABLE_VERSION)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(cat)} {(/DietPi/dietpi/.update_available)})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [283 287]
                              )
                            }
                          spids: [282]
                        )
                      ]
                      spids: [282]
                    )
                  ]
                  spids: [16777215 274]
                )
              ]
              spids: [16777215 291]
            )
          ]
          spids: [255]
        )
      spids: [252 255]
    )
    (FuncDef
      name: Hardware_Model_Print
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(-e)} 
              {
                (DQ (' ') (Lit_Other '\\') ('e[39;49;1mv') ($ VSub_Name '$DIETPI_VERSION') 
                  (Lit_Other '\\') ('e[0m       ') (Lit_Other '\\') ('e[90m| ') ($ VSub_Name '$G_HW_MODEL_DESCRIPTION') (Lit_Other '\\') 
                  ('e[0m') (Lit_Other '\\') ('n ') (Lit_Other '\\') 
                  (
'e[38;5;154m\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                  ) (Lit_Other '\\') ('e[0m')
                )
              }
            )
          ]
          spids: [302]
        )
      spids: [299 302]
    )
    (FuncDef
      name: IPAddress_Print
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-n)} {(DQ ($ VSub_Name '$IP_ADDRESS'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(Update_Ip_Address)})]
                  spids: [16777215 362]
                )
              ]
              spids: [16777215 370]
            )
            (C {(echo)} {(-e)} 
              {
                (DQ (' ') (Lit_Other '\\') ('e[39;49;1mIP ') ($ VSub_Name '$IP_ADAPTER') (Lit_Other '\\') 
                  ('e[0m    ') (Lit_Other '\\') ('e[90m| ') ($ VSub_Name '$IP_ADDRESS') (Lit_Other '\\') ('e[0m') (Lit_Other '\\') ('n ') 
                  (Lit_Other '\\') 
                  (
'e[38;5;154m\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                  ) (Lit_Other '\\') ('e[0m')
                )
              }
            )
          ]
          spids: [339]
        )
      spids: [336 339]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:TEXT_TOP) op:Equal rhs:{(SQ )} spids:[416])]
      spids: [416]
    )
    (FuncDef
      name: Banner_TopText_Extras
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: (ArithWord w:{($ VSub_Name '$UPDATE_AVAILABLE')})
                          spids: [447 452]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$UPDATE_AVAILABLE_VERSION'))} 
                                  {(Lit_Other '=')} {(SQ <-1>)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:TEXT_TOP)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ (Lit_Other '\\') ('e[90m|') (Lit_Other '\\') ('e[0m ') 
                                        (Lit_Other '\\') ('e[91m') (Lit_Other '\\') ('e[33;49;1mImage available') (Lit_Other '\\') ('e[0m')
                                      )
                                    }
                                  spids: [480]
                                )
                              ]
                              spids: [480]
                            )
                          ]
                          spids: [16777215 476]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:TEXT_TOP)
                              op: Equal
                              rhs: 
                                {
                                  (DQ (Lit_Other '\\') ('e[90m|') (Lit_Other '\\') ('e[0m ') 
                                    (Lit_Other '\\') ('e[91m') (Lit_Other '\\') ('e[33;49;1mUpdate available') (Lit_Other '\\') ('e[0m')
                                  )
                                }
                              spids: [500]
                            )
                          ]
                          spids: [500]
                        )
                      ]
                      spids: [496 516]
                    )
                  ]
                  spids: [16777215 455]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:TEXT_TOP)
                      op: Equal
                      rhs: 
                        {
                          (DQ (Lit_Other '\\') ('e[90m| ') 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [(C {(date)} {(Lit_Other '+') (DQ ('%R | %a %x'))})]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [536 543]
                            ) (Lit_Other '\\') ('e[0m')
                          )
                        }
                      spids: [532]
                    )
                  ]
                  spids: [532]
                )
              ]
              spids: [524 550]
            )
          ]
          spids: [437]
        )
      spids: [434 437]
    )
    (FuncDef
      name: Banner_Dietpi
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$INPUT')})
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                          spids: [566 575]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(clear)})]
                  spids: [16777215 578]
                )
              ]
              spids: [16777215 586]
            )
            (C {(echo)} {(-e)} 
              {
                (DQ (' ') (Lit_Other '\\') 
                  (
'e[38;5;154m\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                  ) (Lit_Other '\\') ('e[0m') (Lit_Other '\\') ('n ') (Lit_Other '\\') ('e[39;49;1mDietPi    ') 
                  (Lit_Other '\\') ('e[0m ') ($ VSub_Name '$TEXT_TOP') (' ') (Lit_Other '\\') ('n ') (Lit_Other '\\') 
                  (
'e[38;5;154m\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                  ) (Lit_Other '\\') ('e[0m')
                )
              }
            )
            (C {(Hardware_Model_Print)})
            (C {(IPAddress_Print)})
          ]
          spids: [560]
        )
      spids: [557 560]
    )
    (FuncDef
      name: Credits_Print
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(-e)} {(SQ )})
            (C {(echo)} {(-e)} 
              {(DQ (Lit_Other '\\') ('e[90m Created by : Daniel Knight') (Lit_Other '\\') ('e[0m'))}
            )
            (C {(echo)} {(-e)} 
              {
                (DQ (Lit_Other '\\') ('e[90m Web        : http://DietPi.com') (Lit_Other '\\') ('e[0m'))
              }
            )
            (C {(echo)} {(-e)} 
              {
                (DQ (Lit_Other '\\') ('e[90m Twitter    : http://twitter.com/dietpi_') (Lit_Other '\\') 
                  ('e[0m')
                )
              }
            )
            (C {(echo)} {(-e)} 
              {
                (DQ (Lit_Other '\\') ('e[90m Donate     : http://goo.gl/pzISt9 ') (Lit_Other '\\') 
                  ('e[0m')
                )
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$IMAGE_ADDITIONAL_CREDITS'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(-e)} {(SQ )})
                    (C {(echo)} {(-e)} 
                      {
                        (DQ (Lit_Other '\\') ('e[90m Device image possible thanks to: ') 
                          ($ VSub_Name '$IMAGE_ADDITIONAL_CREDITS') (Lit_Other '\\') ('e[0m')
                        )
                      }
                    )
                  ]
                  spids: [16777215 704]
                )
              ]
              spids: [16777215 730]
            )
            (C {(echo)} {(-e)} 
              {
                (DQ (Lit_Other '\\') ("e[90m DietPi's web hosting is powered by: MyVirtualServer.com") 
                  (Lit_Other '\\') ('e[0m')
                )
              }
            )
            (C {(echo)} {(-e)} {(SQ )})
            (C {(echo)} {(-e)} 
              {
                (DQ (Lit_Other '\\') ('e[1m dietpi-launcher') (Lit_Other '\\') 
                  ('e[0m  = All the DietPi programs in one place.')
                )
              }
            )
            (C {(echo)} {(-e)} 
              {
                (DQ (Lit_Other '\\') ('e[1m dietpi-config') (Lit_Other '\\') 
                  ('e[0m    = Feature rich configuration tool for your device.')
                )
              }
            )
            (C {(echo)} {(-e)} 
              {
                (DQ (Lit_Other '\\') ('e[1m dietpi-software') (Lit_Other '\\') 
                  ('e[0m  = Select optimized software for installation.')
                )
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: (ArithWord w:{($ VSub_Name '$UPDATE_AVAILABLE')})
                          spids: [797 802]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$UPDATE_AVAILABLE_VERSION'))} 
                                  {(Lit_Other '=')} {(SQ <-1>)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(echo)} {(-e)} 
                              {
                                (DQ (Lit_Other '\\') (n) (Lit_Other '\\') 
                                  ('e[91m An updated DietPi image is available, please goto:') (Lit_Other '\\') ('e[0m') (Lit_Other '\\') ('n http://dietpi.com/download') (Lit_Other '\\') (n)
                                )
                              }
                            )
                          ]
                          spids: [16777215 826]
                        )
                      ]
                      else_action: [
                        (C {(echo)} {(-e)} 
                          {
                            (DQ (Lit_Other '\\') ('e[1m dietpi-update') (Lit_Other '\\') ('e[0m    = ') 
                              (Lit_Other '\\') ('e[91mRun now to update DietPi (from v') ($ VSub_Name '$DIETPI_VERSION') (' to v') 
                              ($ VSub_Name '$UPDATE_AVAILABLE_VERSION') (').') (Lit_Other '\\') ('e[0m')
                            )
                          }
                        )
                      ]
                      spids: [849 874]
                    )
                  ]
                  spids: [16777215 805]
                )
              ]
              spids: [16777215 878]
            )
            (C {(echo)} {(-e)} 
              {
                (DQ (Lit_Other '\\') ('e[1m htop') (Lit_Other '\\') 
                  ('e[0m             = Resource monitor.')
                )
              }
            )
            (C {(echo)} {(-e)} 
              {
                (DQ (Lit_Other '\\') ('e[1m cpu') (Lit_Other '\\') 
                  ('e[0m              = Shows CPU information and stats.')
                )
              }
            )
            (C {(echo)} {(-e)} {(SQ )})
          ]
          spids: [630]
        )
      spids: [627 630]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$INPUT')})
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                  spids: [933 942]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(Obtain_Update_Available)}) (C {(Banner_TopText_Extras)}) (C {(Banner_Dietpi)})]
          spids: [16777215 945]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$INPUT')})
                      right: (ArithWord w:{(Lit_Digits 1)})
                    )
                  spids: [961 970]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(Obtain_Update_Available)})
            (C {(Banner_TopText_Extras)})
            (C {(Banner_Dietpi)})
            (C {(Credits_Print)})
          ]
          spids: [959 973]
        )
      ]
      spids: [16777215 990]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
)