(command.Pipeline
  children: [
    (C {<ldd>} {(DQ ($ Id.VSub_Number '$1'))})
    (C {<grep>} {(SQ <' => '>)})
    (C {<grep>} {<-v>} {<ld-linux>})
    (C {<sed>} {(SQ <'s/.* =>[[:blank:]]*//'>)})
    (C {<sed>} {(SQ <'s/ *(0x.*//'>)})
    (C {<sed>} {(SQ <'/^$/ d'>)})
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: 
        (condition.Shell
          commands: [(command.Sentence child:(C {<read>} {<lib>}) terminator:<Id.Op_Semi _>)]
        )
      body: 
        (command.DoGroup
          children: [
            (command.Pipeline
              children: [
                (C {<dpkg>} {<-S>} {(DQ ($ Id.VSub_DollarName '$lib'))})
                (C {<sed>} {(SQ <'s/: .*//'>)})
              ]
              negated: F
            )
          ]
        )
    )
    (C {<sort>})
    (C {<uniq>})
  ]
  negated: F
)