(command.CommandList
  children: [
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<errexit>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<nounset>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<pipefail>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'KUBE_HOST='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'KUBE_HOST='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KUBE_HOST='> name:KUBE_HOST)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name KUBE_HOST>
                var_name: KUBE_HOST
                suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<localhost>})
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'KUBELET_KUBECONFIG='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'KUBELET_KUBECONFIG='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KUBELET_KUBECONFIG='> name:KUBELET_KUBECONFIG)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name KUBELET_KUBECONFIG>
                var_name: KUBELET_KUBECONFIG
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VTest_ColonHyphen _>
                    arg_word: {(DQ <'/var/run/kubernetes/kubelet.kubeconfig'>)}
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <declare>
      more_env: []
      words: [{<declare>} {<-r>} {<Id.Lit_VarLike 'RED='> (DQ <Id.Lit_BadBackslash '\\'> <'033[0;31m'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <declare>
      more_env: []
      words: [
        {<declare>}
        {<-r>}
        {<Id.Lit_VarLike 'GREEN='> (DQ <Id.Lit_BadBackslash '\\'> <'033[0;32m'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <declare>
      more_env: []
      words: [
        {<declare>}
        {<-r>}
        {<Id.Lit_VarLike 'YELLOW='> (DQ <Id.Lit_BadBackslash '\\'> <'033[0;33m'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <echo_green>
      name: echo_green
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {<-e>} {(DQ (${ Id.VSub_Name GREEN) ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <tput>
              more_env: []
              words: [{<tput>} {<sgr0>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <echo_red>
      name: echo_red
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {<-e>} {(DQ (${ Id.VSub_Name RED) ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <tput>
              more_env: []
              words: [{<tput>} {<sgr0>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <echo_yellow>
      name: echo_yellow
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {<-e>} {(DQ (${ Id.VSub_Name YELLOW) ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <tput>
              more_env: []
              words: [{<tput>} {<sgr0>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <run>
      name: run
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {<Id.Lit_Other '+'> <o>} {<errexit>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'output='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'output='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <Id.VSub_Number '$1'>
                            more_env: []
                            words: [{($ Id.VSub_Number 1)}]
                            redirects: [
                              (Redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<1>}
                              )
                            ]
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'exit_code='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'exit_code='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exit_code='> name:exit_code)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {<-o>} {<errexit>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {($ Id.VSub_DollarName exit_code)}
                                {<-eq>}
                                {<0>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo_green>
                      more_env: []
                      words: [{<echo_green>} {(DQ <SUCCESS>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [234 247]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo_red>
                  more_env: []
                  words: [{<echo_red>} {(DQ <FAILED>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {($ Id.VSub_DollarName output)}]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <create-kubelet-kubeconfig>
      name: create-kubelet-kubeconfig
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'destination='> (DQ (${ Id.VSub_Number 2))}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {(DQ (${ Id.VSub_Name destination))}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'Must provide destination path to create Kubelet kubeconfig file!'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [310 325]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Creating Kubelet kubeconfig file'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'dest_dir='> 
                  (DQ 
                    (CommandSub
                      left_token: <Id.Left_DollarParen '$('>
                      child: 
                        (command.Simple
                          blame_tok: <dirname>
                          more_env: []
                          words: [{<dirname>} {(DQ (${ Id.VSub_Name destination))}]
                          redirects: []
                          do_fork: T
                        )
                      right: <Id.Eof_RParen _>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <mkdir>
                  more_env: []
                  words: [{<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name dest_dir))}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_AndGreat '&>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <sudo>
                  more_env: []
                  words: [{<sudo>} {<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name dest_dir))}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sudo='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sudo='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sudo='> name:sudo)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.AndOr
                            children: [
                              (command.Simple
                                blame_tok: <test>
                                more_env: []
                                words: [{<test>} {<-w>} {(DQ (${ Id.VSub_Name dest_dir))}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <echo>
                                more_env: []
                                words: [{<echo>} {(DQ <'sudo -E'>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_DPipe _>]
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <cat>
                  more_env: []
                  words: [{<cat>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_DLess '<<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.HereDoc
                          here_begin: {<EOF>}
                          here_end_tok: <Id.Undefined_Tok ''>
                          stdin_parts: [
                            <'apiVersion: v1\n'>
                            <'kind: Config\n'>
                            <'clusters:\n'>
                            <'  - cluster:\n'>
                            <'      server: http://localhost:8080\n'>
                            <'    name: local\n'>
                            <'contexts:\n'>
                            <'  - context:\n'>
                            <'      cluster: local\n'>
                            <'    name: local\n'>
                            <'current-context: local\n'>
                          ]
                        )
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.Left_DollarBrace '${'>
                  more_env: []
                  words: [{(${ Id.VSub_Name sudo)} {<tee>} {(DQ (${ Id.VSub_Name destination))}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <create_cluster>
      name: create_cluster
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Creating a local cluster:'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<-e>} {<-n>} {(DQ <Id.Lit_BadBackslash '\\'> <'tStarting kubelet...'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <create-kubelet-kubeconfig>
              more_env: []
              words: [{<create-kubelet-kubeconfig>} {(DQ (${ Id.VSub_Name KUBELET_KUBECONFIG))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <run>
              more_env: []
              words: [
                {<run>}
                {
                  (DQ <'docker run '> <'  --volume=/:/rootfs:ro '> <'  --volume=/sys:/sys:ro '> 
                    <'  --volume=/var/lib/docker/:/var/lib/docker:rw '> <'  --volume=/var/lib/kubelet/:/var/lib/kubelet:rw '> <'  --volume=/var/run:/var/run:rw '> 
                    <'  --volume=/run/xtables.lock:/run/xtables.lock:rw '> <'  --net=host '> <'  --pid=host '> <'  --privileged=true '> <'  -d '> 
                    <'  gcr.io/google_containers/hyperkube-'> (${ Id.VSub_Name arch) <':'> (${ Id.VSub_Name release) <' '> <'    /hyperkube kubelet '> 
                    <'      --containerized '> <'      --hostname-override='>
                  ) <127.0.0.1> (DQ <' '> <'      --address='>) <0.0.0.0> 
                  (DQ <' '> <'      --kubeconfig='> (${ Id.VSub_Name KUBELET_KUBECONFIG) 
                    <'/kubelet.kubeconfig '> <'      --pod-manifest-path=/etc/kubernetes/manifests '> <'      --allow-privileged=true '> 
                    <'      --cluster-dns=10.0.0.10 '> <'      --cluster-domain=cluster.local '> <'      --v=2'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {<-e>}
                {<-n>}
                {(DQ <Id.Lit_BadBackslash '\\'> <'tWaiting for master components to start...'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <true>
                          more_env: []
                          words: [{<true>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <local>
                      more_env: []
                      words: [
                        {<local>}
                        {<Id.Lit_VarLike 'running_count='> 
                          (CommandSub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <kubectl>
                                    more_env: []
                                    words: [
                                      {<kubectl>}
                                      {<-s> <Id.Lit_Equals '='> <http> <Id.Lit_Colon ':'> <'//'> 
                                        (${ Id.VSub_Name KUBE_HOST) <Id.Lit_Colon ':'> <8080>
                                      }
                                      {<get>}
                                      {<pods>}
                                      {<--no-headers>}
                                      {<--namespace> <Id.Lit_Equals '='> <kube-system>}
                                    ]
                                    redirects: [
                                      (Redir
                                        op: <Id.Redir_Great '2>'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<'/dev/null'>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <grep>
                                    more_env: []
                                    words: [{<grep>} {(DQ <Running>)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <wc>
                                    more_env: []
                                    words: [{<wc>} {<-l>}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                              )
                            right: <Id.Eof_RParen _>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {(DQ ($ Id.VSub_DollarName running_count))}
                                        {<-ge>}
                                        {<3>}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                          spids: [631 646]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {<-n>} {(DQ <.>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <sleep>
                      more_env: []
                      words: [{<sleep>} {<1>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <echo_green>
              more_env: []
              words: [{<echo_green>} {(DQ <SUCCESS>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo_green>
              more_env: []
              words: [{<echo_green>} {(DQ <'Cluster created!'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ )}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <kubectl>
              more_env: []
              words: [
                {<kubectl>}
                {<-s>}
                {<http> <Id.Lit_Colon ':'> <'//'> (${ Id.VSub_Name KUBE_HOST) <Id.Lit_Colon ':'> <8080>}
                {<clusterinfo>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <get_latest_version_number>
      name: get_latest_version_number
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<-r>}
                {<Id.Lit_VarLike 'latest_url='> 
                  (DQ <'https://storage.googleapis.com/kubernetes-release/release/stable.txt'>)
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.WordTest
                                  w: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            blame_tok: <which>
                                            more_env: []
                                            words: [{<which>} {<wget>}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <wget>
                      more_env: []
                      words: [{<wget>} {<-qO->} {(${ Id.VSub_Name latest_url)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [727 740]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.WordTest
                                  w: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            blame_tok: <which>
                                            more_env: []
                                            words: [{<which>} {<curl>}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <curl>
                      more_env: []
                      words: [{<curl>} {<-Ss>} {(${ Id.VSub_Name latest_url)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [752 765]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo_red>
                  more_env: []
                  words: [{<echo_red>} {(DQ <'Couldn\'t find curl or wget.  Bailing out.'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<4>})
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'latest_release='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'latest_release='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'latest_release='> name:latest_release)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <get_latest_version_number>
                    more_env: []
                    words: [{<get_latest_version_number>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'release='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'release='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'release='> name:release)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name KUBE_VERSION>
                var_name: KUBE_VERSION
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VTest_ColonHyphen _>
                    arg_word: {(${ Id.VSub_Name latest_release)}
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'uname='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'uname='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'uname='> name:uname)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <uname>
                    more_env: []
                    words: [{<uname>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_GlobDEqual
                          left: {(DQ (${ Id.VSub_Name uname))}
                          right: {(DQ <Darwin>)}
                        )
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'platform='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'platform='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'platform='> name:platform)
                  op: assign_op.Equal
                  rhs: {(DQ <darwin>)}
                )
              ]
              redirects: []
            )
          ]
          spids: [817 836]
        )
        (IfArm
          keyword: <Id.KW_Elif elif>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_GlobDEqual
                          left: {(DQ (${ Id.VSub_Name uname))}
                          right: {(DQ <Linux>)}
                        )
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'platform='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'platform='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'platform='> name:platform)
                  op: assign_op.Equal
                  rhs: {(DQ <linux>)}
                )
              ]
              redirects: []
            )
          ]
          spids: [844 863]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.Simple
          blame_tok: <echo_red>
          more_env: []
          words: [
            {<echo_red>}
            {(DQ <'Unknown, unsupported platform: ('> (${ Id.VSub_Name uname) <').'>)}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <echo_red>
          more_env: []
          words: [{<echo_red>} {(DQ <'Supported platforms: Linux, Darwin.'>)}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <echo_red>
          more_env: []
          words: [{<echo_red>} {(DQ <'Bailing out.'>)}]
          redirects: []
          do_fork: T
        )
        (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<2>})
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'machine='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'machine='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'machine='> name:machine)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <uname>
                    more_env: []
                    words: [{<uname>} {<-m>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_GlobDEqual
                          left: {(DQ (${ Id.VSub_Name machine))}
                          right: {(DQ <x86_64>)}
                        )
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'arch='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'arch='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arch='> name:arch)
                  op: assign_op.Equal
                  rhs: {(DQ <amd64>)}
                )
              ]
              redirects: []
            )
          ]
          spids: [913 932]
        )
        (IfArm
          keyword: <Id.KW_Elif elif>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_GlobDEqual
                          left: {(DQ (${ Id.VSub_Name machine))}
                          right: {(DQ <i686>)}
                        )
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'arch='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'arch='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arch='> name:arch)
                  op: assign_op.Equal
                  rhs: {(DQ <386>)}
                )
              ]
              redirects: []
            )
          ]
          spids: [940 959]
        )
        (IfArm
          keyword: <Id.KW_Elif elif>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_GlobDEqual
                          left: {(DQ (${ Id.VSub_Name machine))}
                          right: {(DQ <'arm*'>)}
                        )
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'arch='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'arch='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arch='> name:arch)
                  op: assign_op.Equal
                  rhs: {(DQ <arm>)}
                )
              ]
              redirects: []
            )
          ]
          spids: [967 986]
        )
        (IfArm
          keyword: <Id.KW_Elif elif>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_GlobDEqual
                          left: {(DQ (${ Id.VSub_Name machine))}
                          right: {(DQ <'s390x*'>)}
                        )
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'arch='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'arch='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arch='> name:arch)
                  op: assign_op.Equal
                  rhs: {(DQ <s390x>)}
                )
              ]
              redirects: []
            )
          ]
          spids: [994 1013]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.Simple
          blame_tok: <echo_red>
          more_env: []
          words: [
            {<echo_red>}
            {(DQ <'Unknown, unsupported architecture ('> (${ Id.VSub_Name machine) <').'>)}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <echo_red>
          more_env: []
          words: [{<echo_red>} {(DQ <'Supported architectures x86_64, i686, arm, s390x.'>)}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <echo_red>
          more_env: []
          words: [{<echo_red>} {(DQ <'Bailing out.'>)}]
          redirects: []
          do_fork: T
        )
        (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<3>})
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'kubectl_url='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'kubectl_url='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kubectl_url='> name:kubectl_url)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'https://storage.googleapis.com/kubernetes-release/release/'> 
                (${ Id.VSub_Name release) <'/bin/'> (${ Id.VSub_Name platform) <'/'> (${ Id.VSub_Name arch) <'/kubectl'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_lt
                          left: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <ls>
                                        more_env: []
                                        words: [{<ls>} {<.>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <grep>
                                        more_env: []
                                        words: [
                                          {<grep>}
                                          {<Id.Lit_Other '^'> <kubectl> <Id.Lit_Dollar '$'>}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <wc>
                                        more_env: []
                                        words: [{<wc>} {<-l>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          right: {<1>}
                        )
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<-n>} {(DQ <'Downloading kubectl binary...'>)}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.WordTest
                                  w: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            blame_tok: <which>
                                            more_env: []
                                            words: [{<which>} {<wget>}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <run>
                      more_env: []
                      words: [{<run>} {(DQ <'wget '> (${ Id.VSub_Name kubectl_url))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1117 1130]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.WordTest
                                  w: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            blame_tok: <which>
                                            more_env: []
                                            words: [{<which>} {<curl>}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <run>
                      more_env: []
                      words: [{<run>} {(DQ <'curl -OL '> (${ Id.VSub_Name kubectl_url))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1143 1156]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo_red>
                  more_env: []
                  words: [{<echo_red>} {(DQ <'Couldn\'t find curl or wget.  Bailing out.'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <chmod>
              more_env: []
              words: [{<chmod>} {<a> <Id.Lit_Other '+'> <x>} {<kubectl>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ )}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [1074 1105]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {(DQ <'Detected existing kubectl binary. Skipping download.'>)}]
          redirects: []
          do_fork: T
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <create_cluster>
      more_env: []
      words: [{<create_cluster>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<echo> more_env:[] words:[{<echo>} {(DQ )}] redirects:[] do_fork:T)
    (command.Simple blame_tok:<echo> more_env:[] words:[{<echo>} {(DQ )}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(DQ <'To list the nodes in your cluster run'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo_yellow>
      more_env: []
      words: [
        {<echo_yellow>}
        {
          (DQ <Id.Lit_BadBackslash '\\'> <'tkubectl -s=http://'> (${ Id.VSub_Name KUBE_HOST) 
            <':8080 get nodes'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<echo> more_env:[] words:[{<echo>} {(DQ )}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(DQ <'To run your first pod run'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo_yellow>
      more_env: []
      words: [
        {<echo_yellow>}
        {
          (DQ <Id.Lit_BadBackslash '\\'> <'tkubectl -s http://'> (${ Id.VSub_Name KUBE_HOST) 
            <':8080 run nginx --image=nginx --port=80'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
  ]
)