code: def match_fn(match_values_and_abi, data):
      
      abi_types, all_match_values = zip(*match_values_and_abi)
      decoded_values = decode_abi(abi_types, HexBytes(data))
      for data_value, match_values, abi_type in zip(decoded_values, all_match_values, abi_types):
          if match_values is None:
              continue
          normalized_data = normalize_data_values(abi_type, data_value)
          for value in match_values:
              if not is_encodable(abi_type, value):
                  raise ValueError(
                      "Value {0} is of the wrong abi type. "
                      "Expected {1} typed value.".format(value, abi_type))
              if value == normalized_data:
                  break
          else:
              return False
  
      return True
docs: Match function used for filtering non-indexed event arguments.
  
      Values provided through the match_values_and_abi parameter are
      compared to the abi decoded log data.