code: def per_callback_query_chat_id(types='all'):
      
      def f(msg):
          if (flavor(msg) == 'callback_query' and 'message' in msg
              and (types == 'all' or msg['message']['chat']['type'] in types)):
              return msg['message']['chat']['id']
          else:
              return None
      return f
docs: :param types:
          ``all`` or a list of chat types (``private``, ``group``, ``channel``)
  
      :return:
          a seeder function that returns a callback query's originating chat id
          if the chat type is in ``types``.