(command.CommandList
  children: [
    (C {<set>} {<-e>})
    (command.ShFunction
      name: check
      body: 
        (BraceGroup
          children: [
            (C {<awk>} 
              {
                (DQ <'\n'> <'BEGIN { saw1 = 0; saw2 = 0; err = 0; }\n'> <'/.*'> ($ Id.VSub_Number '$2') 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'/ { saw1 = 1; }\n'> <'/.*'> ($ Id.VSub_Number '$3') 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'/ {\n'> <'     saw2 = 1;\n'> <'     if (!saw1)\n'> <'       {\n'> <'\t  printf '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'layout of '> ($ Id.VSub_Number '$2') <' and '> ($ Id.VSub_Number '$3') <' is not right'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <n> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <';\n'> <'\t  err = 1;\n'> 
                  <'\t  exit 1;\n'> <'       }\n'> <'    }\n'> <'END {\n'> <'      if (!saw1 && !err)\n'> <'        {\n'> <'\t  printf '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'did not see '> ($ Id.VSub_Number '$2') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                  <n> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <';\n'> <'\t  exit 1;\n'> <'\t}\n'> 
                  <'      if (!saw2 && !err)\n'> <'\t{\n'> <'\t  printf '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'did not see '> 
                  ($ Id.VSub_Number '$3') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <n> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <';\n'> <'\t  exit 1;\n'> <'\t}\n'> <'    }'>
                )
              } {($ Id.VSub_Number '$1')}
            )
          ]
        )
    )
    (command.ShFunction
      name: check_unique_segment
      body: 
        (BraceGroup
          children: [
            (C {<awk>} 
              {
                (DQ <'\n'> <'BEGIN { saw_section = 0; saw_unique = 0; }\n'> <'/'> 
                  ($ Id.VSub_Number '$2') <'/ { saw_section = 1; }\n'> <'/[ ]*0[0-9][ ]*'> ($ Id.VSub_Number '$2') <'[ ]*'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'/ { saw_unique = 1; }\n'> <'END {\n'> <'      if (!saw_section)\n'> <'\t{\n'> <'\t  printf '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'Section '> ($ Id.VSub_Number '$2') <' not seen in output'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <n> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <';\n'> <'\t  exit 1;\n'> <'\t}\n'> 
                  <'      else if (!saw_unique)\n'> <'\t{\n'> <'\t  printf '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  <'Unique segment not seen for: '> ($ Id.VSub_Number '$2') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <n> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <';\n'> <'\t  exit 1;\n'> <'\t}\n'> <'    }'>
                )
              } {($ Id.VSub_Number '$1')}
            )
          ]
        )
    )
    (C {<check>} {<plugin_final_layout.stdout>} {(DQ <_Z3foov>)} {(DQ <_Z3barv>)})
    (C {<check>} {<plugin_final_layout.stdout>} {(DQ <_Z3barv>)} {(DQ <_Z3bazv>)})
    (C {<check_unique_segment>} {<plugin_final_layout_readelf.stdout>} 
      {(DQ <.text.plugin_created_unique>)}
    )
  ]
)