code: def GASpecificConfig(r, info):
      
  
      assert isinstance(info, DecoderSpecificInfo)
  
      r.skip(1)  # frameLengthFlag
      dependsOnCoreCoder = r.bits(1)
      if dependsOnCoreCoder:
          r.skip(14)
      extensionFlag = r.bits(1)
      if not info.channelConfiguration:
          pce = ProgramConfigElement(r)
          info.pce_channels = pce.channels
      if info.audioObjectType == 6 or info.audioObjectType == 20:
          r.skip(3)
      if extensionFlag:
          if info.audioObjectType == 22:
              r.skip(5 + 11)
          if info.audioObjectType in (17, 19, 20, 23):
              r.skip(1 + 1 + 1)
          extensionFlag3 = r.bits(1)
          if extensionFlag3 != 0:
              raise NotImplementedError("extensionFlag3 set")
docs: Reads GASpecificConfig which is needed to get the data after that
      (there is no length defined to skip it) and to read program_config_element
      which can contain channel counts.
  
      May raise BitReaderError on error or
      NotImplementedError if some reserved data was set.