(BraceGroup
  left: <Id.Lit_LBrace '{'>
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INPUT='> name:INPUT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [71]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_EqualTilde
                          left: {($ Id.VSub_Number 1)}
                          right: 
                            {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> 
                              <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'>
                            }
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INPUT='> name:INPUT)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                  spids: [99]
                )
              ]
              redirects: []
            )
          ]
          spids: [75 95]
        )
      ]
      else_action: []
      redirects: []
    )
    (C {<.>} {<'/DietPi/dietpi/func/dietpi-globals'>})
    (C {<G_CHECK_ROOT_USER>})
    (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-CPU_info>)})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: {($ Id.VSub_DollarName G_HW_MODEL)}
                          right: {<Id.Lit_Digits 20>}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<echo>} {<-e>} 
              {
                (DQ <Id.Lit_BadBackslash '\\'> <'nNotice: CPU information is not available for VM.'> 
                  <Id.Lit_BadBackslash '\\'> <n>
                )
              }
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
          ]
          spids: [137 151]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPU_GOV_CURRENT='> name:CPU_GOV_CURRENT)
          op: assign_op.Equal
          rhs: {(SQ <Unknown>)}
          spids: [179]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aCPU_CURRENT_FREQ='> name:aCPU_CURRENT_FREQ)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [186]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aCPU_MIN_FREQ='> name:aCPU_MIN_FREQ)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [190]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aCPU_MAX_FREQ='> name:aCPU_MAX_FREQ)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [194]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'aCPU_SCALINGAVAILABLE_FREQ='>
              name: aCPU_SCALINGAVAILABLE_FREQ
            )
          op: assign_op.Equal
          rhs: {<0>}
          spids: [198]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'CPU_SCALINGSUPPORTED='>
              name: CPU_SCALINGSUPPORTED
            )
          op: assign_op.Equal
          rhs: {<1>}
          spids: [202]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'FP_CPU_SCALINGAVAILABLE_FREQ='>
              name: FP_CPU_SCALINGAVAILABLE_FREQ
            )
          op: assign_op.Equal
          rhs: {(SQ <'/tmp/dietpi-available_cpu_freqs'>)}
          spids: [206]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: Obtain_Cpu_Freq
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: ($ Id.Lit_ArithVarLike i)
                  right: {<Id.Lit_Digits 0>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: ($ Id.Lit_ArithVarLike i)
                  right: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<nproc>} {<--all>})
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:($ Id.Lit_ArithVarLike i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-f>} 
                                      {<'/sys/devices/system/cpu/cpu'> ($ Id.VSub_DollarName i) 
                                        <'/cpufreq/scaling_cur_freq'>
                                      } {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'aCPU_CURRENT_FREQ['>
                                      name: aCPU_CURRENT_FREQ
                                      index: {($ Id.VSub_DollarName i)}
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (C {<cat>} 
                                            {<'/sys/devices/system/cpu/cpu'> ($ Id.VSub_DollarName i) 
                                              <'/cpufreq/scaling_cur_freq'>
                                            }
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [263]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [246 259]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-f>} 
                                      {<'/sys/devices/system/cpu/cpu'> ($ Id.VSub_DollarName i) 
                                        <'/cpufreq/scaling_min_freq'>
                                      } {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'aCPU_MIN_FREQ['>
                                      name: aCPU_MIN_FREQ
                                      index: {($ Id.VSub_DollarName i)}
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (C {<cat>} 
                                            {<'/sys/devices/system/cpu/cpu'> ($ Id.VSub_DollarName i) 
                                              <'/cpufreq/scaling_min_freq'>
                                            }
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [299]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [282 295]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-f>} 
                                      {<'/sys/devices/system/cpu/cpu'> ($ Id.VSub_DollarName i) 
                                        <'/cpufreq/scaling_max_freq'>
                                      } {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'aCPU_MAX_FREQ['>
                                      name: aCPU_MAX_FREQ
                                      index: {($ Id.VSub_DollarName i)}
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (C {<cat>} 
                                            {<'/sys/devices/system/cpu/cpu'> ($ Id.VSub_DollarName i) 
                                              <'/cpufreq/scaling_max_freq'>
                                            }
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [335]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [318 331]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                              {
                                <
'/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies'
                                >
                              } {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: ($ Id.Lit_ArithVarLike i)
                          right: {<Id.Lit_Digits 0>}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: ($ Id.Lit_ArithVarLike i)
                          right: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: (C {<nproc>} {<--all>})
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen 'aCPU_SCALINGAVAILABLE_FREQ['>
                                      name: aCPU_SCALINGAVAILABLE_FREQ
                                      index: {($ Id.VSub_DollarName i)}
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<cat>} 
                                                {<'/sys/devices/system/cpu/cpu'> 
                                                  ($ Id.VSub_DollarName i) <'/cpufreq/scaling_available_frequencies'>
                                                }
                                              )
                                              (C {<tr>} {(SQ <' '>)} {(SQ <'\\n'>)})
                                              (C {<sed>} {<-e>} {(SQ <'s/[^0-9]//g'>)})
                                              (C {<sed>} {(SQ <'/^$/d'>)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [408]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                  ]
                  spids: [366 377]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                              {<'/sys/devices/system/cpu/cpufreq/mp-cpufreq/cpu_freq_table'>} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              left: <Id.Lit_ArrayLhsOpen 'aCPU_SCALINGAVAILABLE_FREQ['>
                              name: aCPU_SCALINGAVAILABLE_FREQ
                              index: {<Id.Lit_Digits 0>}
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<cat>} 
                                        {
                                          <
'/sys/devices/system/cpu/cpufreq/mp-cpufreq/cpu_freq_table'
                                          >
                                        }
                                      )
                                      (C {<tr>} {(SQ <' '>)} {(SQ <'\\n'>)})
                                      (C {<sed>} {<-e>} {(SQ <'s/[^0-9]//g'>)})
                                      (C {<sed>} {(SQ <'/^$/d'>)})
                                    ]
                                    negated: F
                                    stderr_indices: []
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [476]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [461 472]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'CPU_SCALINGSUPPORTED='>
                          name: CPU_SCALINGSUPPORTED
                        )
                      op: assign_op.Equal
                      rhs: {<0>}
                      spids: [523]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPU_TEMP_CURRENT='> name:CPU_TEMP_CURRENT)
          op: assign_op.Equal
          rhs: {(SQ <Unknown>)}
          spids: [536]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CPU_TEMP_PRINT='> name:CPU_TEMP_PRINT)
          op: assign_op.Equal
          rhs: {(SQ <Unknown>)}
          spids: [542]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: Obtain_Cpu_Temp
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'CPU_TEMP_CURRENT='>
                      name: CPU_TEMP_CURRENT
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<G_OBTAIN_CPU_TEMP>})
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [557]
                )
              ]
              redirects: []
            )
            (C {<local>} {<Id.Lit_VarLike 'cpu_temp_current_f='> (SQ <Unknown>)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_EqualTilde
                                  left: {($ Id.VSub_DollarName CPU_TEMP_CURRENT)}
                                  right: 
                                    {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> 
                                      <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'>
                                    }
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'cpu_temp_current_f='>
                              name: cpu_temp_current_f
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Plus
                                    left: 
                                      (arith_expr.Binary
                                        op_id: Id.Arith_Slash
                                        left: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Star
                                            left: {($ Id.VSub_DollarName CPU_TEMP_CURRENT)}
                                            right: {<Id.Lit_Digits 9>}
                                          )
                                        right: {<Id.Lit_Digits 5>}
                                      )
                                    right: {<Id.Lit_Digits 32>}
                                  )
                              )
                            }
                          spids: [596]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_GreatEqual
                                          left: {($ Id.VSub_DollarName CPU_TEMP_CURRENT)}
                                          right: {<Id.Lit_Digits 70>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CPU_TEMP_PRINT='>
                                      name: CPU_TEMP_PRINT
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <Id.Lit_BadBackslash '\\'> <'e[91mWarning: '> 
                                        ($ Id.VSub_DollarName CPU_TEMP_CURRENT) <'\'c : '> ($ Id.VSub_DollarName cpu_temp_current_f) <'\'f | Reducing the life of your device.'> 
                                        <Id.Lit_BadBackslash '\\'> <'e[0m'>
                                      )
                                    }
                                  spids: [639]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [621 635]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_GreatEqual
                                          left: {($ Id.VSub_DollarName CPU_TEMP_CURRENT)}
                                          right: {<Id.Lit_Digits 60>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CPU_TEMP_PRINT='>
                                      name: CPU_TEMP_PRINT
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <Id.Lit_BadBackslash '\\'> <'e[38;5;202m'> 
                                        ($ Id.VSub_DollarName CPU_TEMP_CURRENT) <'\'c : '> ($ Id.VSub_DollarName cpu_temp_current_f) <'\'f'> <Id.Lit_BadBackslash '\\'> 
                                        <'e[90m | Running hot, not recommended.'> <Id.Lit_BadBackslash '\\'> <'e[0m'>
                                      )
                                    }
                                  spids: [671]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [653 667]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_GreatEqual
                                          left: {($ Id.VSub_DollarName CPU_TEMP_CURRENT)}
                                          right: {<Id.Lit_Digits 50>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CPU_TEMP_PRINT='>
                                      name: CPU_TEMP_PRINT
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <Id.Lit_BadBackslash '\\'> <'e[93m'> 
                                        ($ Id.VSub_DollarName CPU_TEMP_CURRENT) <'\'c : '> ($ Id.VSub_DollarName cpu_temp_current_f) <'\'f'> <Id.Lit_BadBackslash '\\'> <'e[0m '> 
                                        <Id.Lit_BadBackslash '\\'> <'e[90m | Running warm, but safe.'> <Id.Lit_BadBackslash '\\'> <'e[0m'>
                                      )
                                    }
                                  spids: [705]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [687 701]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_GreatEqual
                                          left: {($ Id.VSub_DollarName CPU_TEMP_CURRENT)}
                                          right: {<Id.Lit_Digits 40>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CPU_TEMP_PRINT='>
                                      name: CPU_TEMP_PRINT
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <Id.Lit_BadBackslash '\\'> <'e[92m'> 
                                        ($ Id.VSub_DollarName CPU_TEMP_CURRENT) <'\'c : '> ($ Id.VSub_DollarName cpu_temp_current_f) <'\'f'> <Id.Lit_BadBackslash '\\'> <'e[0m'> 
                                        <Id.Lit_BadBackslash '\\'> <'e[90m | Optimal temperature.'> <Id.Lit_BadBackslash '\\'> <'e[0m'>
                                      )
                                    }
                                  spids: [741]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [723 737]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_GreatEqual
                                          left: {($ Id.VSub_DollarName CPU_TEMP_CURRENT)}
                                          right: {<Id.Lit_Digits 30>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'CPU_TEMP_PRINT='>
                                      name: CPU_TEMP_PRINT
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <Id.Lit_BadBackslash '\\'> <'e[96m'> 
                                        ($ Id.VSub_DollarName CPU_TEMP_CURRENT) <'\'c : '> ($ Id.VSub_DollarName cpu_temp_current_f) <'\'f'> <Id.Lit_BadBackslash '\\'> <'e[0m'> 
                                        <Id.Lit_BadBackslash '\\'> <'e[90m | Cool runnings.'> <Id.Lit_BadBackslash '\\'> <'e[0m'>
                                      )
                                    }
                                  spids: [777]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [759 773]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'CPU_TEMP_PRINT='>
                                  name: CPU_TEMP_PRINT
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ <Id.Lit_BadBackslash '\\'> <'e[96m'> 
                                    ($ Id.VSub_DollarName CPU_TEMP_CURRENT) <'\'c : '> ($ Id.VSub_DollarName cpu_temp_current_f) <'\'f '> <Id.Lit_BadBackslash '\\'> <'e[0m '> 
                                    <Id.Lit_BadBackslash '\\'> <'e[90m| Who put me in the freezer!'> <Id.Lit_BadBackslash '\\'> <'e[0m'>
                                  )
                                }
                              spids: [799]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [572 592]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'CPU_TEMP_PRINT='>
                          name: CPU_TEMP_PRINT
                        )
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> <'e[91mKERNELERR: '> 
                            ($ Id.VSub_DollarName CPU_TEMP_CURRENT) <'\'c'> <Id.Lit_BadBackslash '\\'> <'e[0m'>
                          )
                        }
                      spids: [825]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Obtain_Cpu_Gov
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                              {<'/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'>} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'CPU_GOV_CURRENT='>
                              name: CPU_GOV_CURRENT
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (C {<cat>} 
                                    {<'/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'>}
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [867]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [852 863]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Print_Stats
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<echo>} {<-e>} {(DQ )})
            (C {<echo>} {<-e>} 
              {
                (DQ <' '> <Id.Lit_BadBackslash '\\'> 
                  <
'e[38;5;154m─────────────────────────────────────────────────────'
                  > <Id.Lit_BadBackslash '\\'> <'e[0m'> <Id.Lit_BadBackslash '\\'> <'n '> <Id.Lit_BadBackslash '\\'> 
                  <'e[1mDietPi CPU Info'> <Id.Lit_BadBackslash '\\'> <'e[0m'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                  <'e[90m Use dietpi-config to change CPU / performance options'> <Id.Lit_BadBackslash '\\'> <'e[0m'> <Id.Lit_BadBackslash '\\'> <'n '> <Id.Lit_BadBackslash '\\'> 
                  <
'e[38;5;154m─────────────────────────────────────────────────────'
                  > <Id.Lit_BadBackslash '\\'> <'e[0m'>
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ <' Architecture '> <Id.Lit_BadBackslash '\\'> <'e[90m|'> <Id.Lit_BadBackslash '\\'> 
                  <'e[0m     '> (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<uname>} {<-m>}) right:<Id.Eof_RParen _>)
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ <' Temp         '> <Id.Lit_BadBackslash '\\'> <'e[90m|'> <Id.Lit_BadBackslash '\\'> 
                  <'e[0m     '> ($ Id.VSub_DollarName CPU_TEMP_PRINT)
                )
              }
            )
            (C {<echo>} {<-e>} 
              {
                (DQ <' Governor     '> <Id.Lit_BadBackslash '\\'> <'e[90m|'> <Id.Lit_BadBackslash '\\'> 
                  <'e[0m     '> ($ Id.VSub_DollarName CPU_GOV_CURRENT)
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName CPU_GOV_CURRENT))} 
                                  {<Id.Lit_Equals '='>} {(DQ <ondemand>)} {<Id.Lit_RBracket ']'>}
                                )
                                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName CPU_GOV_CURRENT))} 
                                  {<Id.Lit_Equals '='>} {(DQ <conservative>)} {<Id.Lit_RBracket ']'>}
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} {<-e>} 
                      {
                        (DQ <' Throttle up  '> <Id.Lit_BadBackslash '\\'> <'e[90m|'> 
                          <Id.Lit_BadBackslash '\\'> <'e[0m     '> 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Pipeline
                                children: [
                                  (C {<cat>} {<'/DietPi/dietpi.txt'>})
                                  (C {<grep>} {<-m1>} {(SQ <'^CONFIG_CPU_USAGE_THROTTLE_UP='>)})
                                  (C {<sed>} {(SQ <'s/.*=//'>)})
                                ]
                                negated: F
                                stderr_indices: []
                              )
                            right: <Id.Eof_RParen _>
                          ) <'% CPU usage'>
                        )
                      }
                    )
                  ]
                  spids: [992 1026]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<echo>} {<-e>} {(DQ )})
            (C {<echo>} {<-e>} 
              {
                (DQ <' '> <Id.Lit_BadBackslash '\\'> 
                  <'e[90m                Current Freq    Min Freq   Max Freq'> <Id.Lit_BadBackslash '\\'> <'e[0m'>
                )
              }
            )
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: ($ Id.Lit_ArithVarLike i)
                  right: {<Id.Lit_Digits 0>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: ($ Id.Lit_ArithVarLike i)
                  right: 
                    {
                      (braced_var_sub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name aCPU_CURRENT_FREQ>
                        var_name: aCPU_CURRENT_FREQ
                        prefix_op: <Id.VSub_Pound '#'>
                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:($ Id.Lit_ArithVarLike i))
              body: 
                (command.DoGroup
                  children: [
                    (C {<echo>} {<-e>} 
                      {
                        (DQ <' '> <Id.Lit_BadBackslash '\\'> <'e[90mCPU'> ($ Id.VSub_DollarName i) 
                          <Id.Lit_BadBackslash '\\'> <'e[0m         '> <Id.Lit_BadBackslash '\\'> <'e[90m|'> <Id.Lit_BadBackslash '\\'> <'e[0m      '> 
                          (word_part.ArithSub
                            anode: 
                              (arith_expr.Binary
                                op_id: Id.Arith_Slash
                                left: 
                                  {
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name aCPU_CURRENT_FREQ>
                                      var_name: aCPU_CURRENT_FREQ
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {($ Id.VSub_DollarName i)}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    )
                                  }
                                right: {<Id.Lit_Digits 1000>}
                              )
                          ) <' MHz      '> <Id.Lit_BadBackslash '\\'> <'e[90m'> 
                          (word_part.ArithSub
                            anode: 
                              (arith_expr.Binary
                                op_id: Id.Arith_Slash
                                left: 
                                  {
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name aCPU_MIN_FREQ>
                                      var_name: aCPU_MIN_FREQ
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {($ Id.VSub_DollarName i)}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    )
                                  }
                                right: {<Id.Lit_Digits 1000>}
                              )
                          ) <' MHz    '> 
                          (word_part.ArithSub
                            anode: 
                              (arith_expr.Binary
                                op_id: Id.Arith_Slash
                                left: 
                                  {
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name aCPU_MAX_FREQ>
                                      var_name: aCPU_MAX_FREQ
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {($ Id.VSub_DollarName i)}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    )
                                  }
                                right: {<Id.Lit_Digits 1000>}
                              )
                          ) <' MHz'> <Id.Lit_BadBackslash '\\'> <'e[0m'>
                        )
                      }
                    )
                  ]
                )
              redirects: []
            )
            (C {<echo>} {<-e>} {(DQ )})
            (C {<G_DIETPI-NOTIFY>} {<2>} 
              {
                (SQ 
                  <
'CPU current frequency, may be affected by this script, due to the processing required to run it.\\n'
                  >
                )
              }
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: {($ Id.VSub_DollarName INPUT)}
                          right: {<Id.Lit_Digits 2>}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<Obtain_Cpu_Freq>})
            (command.Simple
              words: [{<rm>} {(DQ ($ Id.VSub_DollarName FP_CPU_SCALINGAVAILABLE_FREQ))}]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: {($ Id.VSub_DollarName CPU_SCALINGSUPPORTED)}
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: ($ Id.Lit_ArithVarLike i)
                          right: {<Id.Lit_Digits 0>}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: ($ Id.Lit_ArithVarLike i)
                          right: 
                            {
                              (braced_var_sub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name aCPU_SCALINGAVAILABLE_FREQ>
                                var_name: aCPU_SCALINGAVAILABLE_FREQ
                                prefix_op: <Id.VSub_Pound '#'>
                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike i)
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Simple
                              words: [
                                {<echo>}
                                {<-e>}
                                {
                                  (DQ 
                                    (braced_var_sub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name aCPU_SCALINGAVAILABLE_FREQ>
                                      var_name: aCPU_SCALINGAVAILABLE_FREQ
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {($ Id.VSub_DollarName i)}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {(DQ ($ Id.VSub_DollarName FP_CPU_SCALINGAVAILABLE_FREQ))}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                          ]
                        )
                      redirects: []
                    )
                    (C {<sort>} {<-u>} {<-n>} {(DQ ($ Id.VSub_DollarName FP_CPU_SCALINGAVAILABLE_FREQ))} 
                      {<-o>} {(DQ ($ Id.VSub_DollarName FP_CPU_SCALINGAVAILABLE_FREQ))}
                    )
                  ]
                  spids: [1287 1297]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          spids: [1249 1263]
        )
      ]
      else_action: [
        (C {<Obtain_Cpu_Freq>})
        (C {<Obtain_Cpu_Temp>})
        (C {<Obtain_Cpu_Gov>})
        (C {<Print_Stats>})
      ]
      redirects: []
    )
    (C {<unset>} {<aCPU_CURRENT_FREQ>})
    (C {<unset>} {<aCPU_MIN_FREQ>})
    (C {<unset>} {<aCPU_MAX_FREQ>})
    (C {<unset>} {<aCPU_SCALINGAVAILABLE_FREQ>})
    (C {<unset>} {<afp_temperature>})
    (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
  ]
  redirects: []
  right: <Id.Lit_RBrace '}'>
)