def com_google_fonts_check_smart_dropout(ttFont):
  """Font enables smart dropout control in "prep" table instructions?

  B8 01 FF    PUSHW 0x01FF
  85          SCANCTRL (unconditinally turn on
                        dropout control mode)
  B0 04       PUSHB 0x04
  8D          SCANTYPE (enable smart dropout control)

  Smart dropout control means activating rules 1, 2 and 5:
  Rule 1: If a pixel's center falls within the glyph outline,
          that pixel is turned on.
  Rule 2: If a contour falls exactly on a pixel's center,
          that pixel is turned on.
  Rule 5: If a scan line between two adjacent pixel centers
          (either vertical or horizontal) is intersected
          by both an on-Transition contour and an off-Transition
          contour and neither of the pixels was already turned on
          by rules 1 and 2, turn on the pixel which is closer to
          the midpoint between the on-Transition contour and
          off-Transition contour. This is "Smart" dropout control.
  """
  INSTRUCTIONS = b"\xb8\x01\xff\x85\xb0\x04\x8d"

  if ("prep" in ttFont and
      INSTRUCTIONS in ttFont["prep"].program.getBytecode()):
    yield PASS, ("'prep' table contains instructions"
                  " enabling smart dropout control.")
  else:
    yield FAIL, ("'prep' table does not contain TrueType "
                  " instructions enabling smart dropout control."
                  " To fix, export the font with autohinting enabled,"
                  " or run ttfautohint on the font, or run the "
                  " `gftools fix-nonhinting` script.")
Font enables smart dropout control in "prep" table instructions?

  B8 01 FF    PUSHW 0x01FF
  85          SCANCTRL (unconditinally turn on
                        dropout control mode)
  B0 04       PUSHB 0x04
  8D          SCANTYPE (enable smart dropout control)

  Smart dropout control means activating rules 1, 2 and 5:
  Rule 1: If a pixel's center falls within the glyph outline,
          that pixel is turned on.
  Rule 2: If a contour falls exactly on a pixel's center,
          that pixel is turned on.
  Rule 5: If a scan line between two adjacent pixel centers
          (either vertical or horizontal) is intersected
          by both an on-Transition contour and an off-Transition
          contour and neither of the pixels was already turned on
          by rules 1 and 2, turn on the pixel which is closer to
          the midpoint between the on-Transition contour and
          off-Transition contour. This is "Smart" dropout control.