(CommandList
  children: [
    (C {(set)} {(-e)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DOCKER_ISSUE_URL)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name DOCKER_ISSUE_URL>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_ColonHyphen
                    arg_word: {(DQ ('https://github.com/docker/docker/issues/new'))}
                  )
                spids: [17 23]
              )
            }
          spids: [16]
        )
      ]
      spids: [16]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DOCKER_ISSUE_NAME_PREFIX)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name DOCKER_ISSUE_NAME_PREFIX>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ ('Report: '))})
                spids: [26 32]
              )
            }
          spids: [25]
        )
      ]
      spids: [25]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DOCKER)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name DOCKER>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ (docker))})
                spids: [35 41]
              )
            }
          spids: [34]
        )
      ]
      spids: [34]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DOCKER_COMMAND)
          op: Equal
          rhs: {(DQ (${ VSub_Name DOCKER))}
          spids: [43]
        )
      ]
      spids: [43]
    )
    (C {(export)} {(DOCKER_COMMAND)})
    (FuncDef
      name: urlencode
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:length)
                  op: Equal
                  rhs: {(DQ (BracedVarSub token:<VSub_Number 1> prefix_op:VSub_Pound spids:[76 79]))}
                  spids: [74]
                )
              ]
              spids: [72]
            )
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
              cond: 
                (ArithBinary
                  op_id: Arith_Less
                  left: (ArithVarRef name:i)
                  right: (ArithVarRef name:length)
                )
              update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:c)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Number 1>
                                  suffix_op: 
                                    (Slice
                                      begin: (ArithVarRef name:i)
                                      length: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                  spids: [115 121]
                                )
                              )
                            }
                          spids: [113]
                        )
                      ]
                      spids: [111]
                    )
                    (Case
                      to_match: {($ VSub_Name '$c')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(Lit_Other '[') (a-zA-Z0-9.) (Lit_Tilde '~') (_-) (Lit_Other ']')}
                          ]
                          action: [(C {(printf)} {(DQ ($ VSub_Name '$c'))})]
                          spids: [132 137 145 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [(C {(printf)} {(SQ <'%%%02X'>)} {(DQ ("'") ($ VSub_Name '$c'))})]
                          spids: [148 149 16777215 163]
                        )
                      ]
                      spids: [125 129 163]
                    )
                  ]
                  spids: [108 166]
                )
            )
          ]
          spids: [64]
        )
      spids: [58 63]
    )
    (FuncDef
      name: template
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLessDash
                  fd: 16777215
                  body: 
                    {
                      (DQ ('Description of problem:\n') ('\n') ('\n') 
                        (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) ('docker version') (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) (':\n') 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(${ VSub_Name DOCKER_COMMAND)} {(-D)} {(version)})]
                            )
                          left_token: <Left_Backtick '`'>
                          spids: [196 204]
                        ) ('\n') ('\n') ('\n') (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) ('docker info') 
                        (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) (':\n') 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(${ VSub_Name DOCKER_COMMAND)} {(-D)} {(info)})]
                            )
                          left_token: <Left_Backtick '`'>
                          spids: [212 220]
                        ) ('\n') ('\n') ('\n') (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) ('uname -a') 
                        (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) (':\n') 
                        (CommandSubPart
                          command_list: (CommandList children:[(C {(uname)} {(-a)})])
                          left_token: <Left_Backtick '`'>
                          spids: [228 232]
                        ) ('\n') ('\n') ('\n') ('Environment details (AWS, VirtualBox, physical, etc.):\n') ('\n') ('\n') 
                        ('How reproducible:\n') ('\n') ('\n') ('Steps to Reproduce:\n') ('1.\n') ('2.\n') ('3.\n') ('\n') ('\n') ('Actual Results:\n') ('\n') 
                        ('\n') ('Expected Results:\n') ('\n') ('\n') ('Additional info:\n') ('\n') ('\n')
                      )
                    }
                  do_expansion: True
                  here_end: EOM
                  was_filled: True
                  spids: [185]
                )
              ]
            )
          ]
          spids: [177]
        )
      spids: [171 176]
    )
    (FuncDef
      name: format_issue_url
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {(BracedVarSub token:<VSub_At '@'> prefix_op:VSub_Pound spids:[274 277])} {(-ne)} {(2)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})]
                  spids: [16777215 287]
                )
              ]
              spids: [16777215 295]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:issue_name)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(urlencode)} 
                                {(DQ (${ VSub_Name DOCKER_ISSUE_NAME_PREFIX) (${ VSub_Number 1))}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [301 312]
                      )
                    }
                  spids: [300]
                )
              ]
              spids: [298]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:issue_body)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(urlencode)} {(DQ (${ VSub_Number 2))})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [318 326]
                      )
                    }
                  spids: [317]
                )
              ]
              spids: [315]
            )
            (C {(echo)} 
              {
                (DQ (${ VSub_Name DOCKER_ISSUE_URL) ('?title=') (${ VSub_Name issue_name) ('&body=') 
                  (${ VSub_Name issue_body)
                )
              }
            )
          ]
          spids: [267]
        )
      spids: [261 266]
    )
    (C {(echo)} {(-ne)} 
      {
        (DQ ('Do you use ') (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) (sudo) 
          (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) (' to call docker? [y|N]: ')
        )
      }
    )
    (C {(read)} {(-r)} {(-n)} {(1)} {(use_sudo)})
    (C {(echo)} {(DQ )})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ (x) (${ VSub_Name use_sudo))} {(Lit_Other '=')} {(DQ (xy))} 
                  {(-o)} {(DQ (x) (${ VSub_Name use_sudo))} {(Lit_Other '=')} {(DQ (xY))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(export)} {(Lit_VarLike 'DOCKER_COMMAND=') (DQ ('sudo ') (${ VSub_Name DOCKER))})]
          spids: [16777215 412]
        )
      ]
      spids: [16777215 425]
    )
    (C {(echo)} {(-ne)} {(DQ ('Title of new issue?: '))})
    (C {(read)} {(-r)} {(issue_title)})
    (C {(echo)} {(DQ )})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:issue_url)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(format_issue_url)} {(DQ (${ VSub_Name issue_title))} 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: (CommandList children:[(C {(template)})])
                              left_token: <Left_CommandSub '$('>
                              spids: [459 461]
                            )
                          )
                        }
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [449 463]
              )
            }
          spids: [448]
        )
      ]
      spids: [448]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(which)} {(xdg-open)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 2
                      arg_word: {(/dev/null)}
                      spids: [472]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [475]
                    )
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(-ne)} {(DQ ('Would like to launch this report in your browser? [Y|n]: '))})
            (C {(read)} {(-r)} {(-n)} {(1)} {(launch_now)})
            (C {(echo)} {(DQ )})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ (${ VSub_Name launch_now))} 
                          {(KW_Bang '!') (Lit_Other '=')} {(DQ (n))} {(-a)} {(DQ (${ VSub_Name launch_now))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (N))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(xdg-open)} {(DQ (${ VSub_Name issue_url))})]
                  spids: [16777215 545]
                )
              ]
              spids: [16777215 557]
            )
          ]
          spids: [16777215 480]
        )
      ]
      spids: [16777215 559]
    )
    (C {(echo)} 
      {
        (DQ ('If you would like to manually open the url, you can open this link if your browser: ') 
          (${ VSub_Name issue_url)
        )
      }
    )
  ]
)