code: def compile(self, ttFont):
      if not hasattr(self, "glyphPrograms"):
          self.glyphPrograms = {}
          self.extraPrograms = {}
      data = b""
      indextable = ttFont[self.indextable]
      glyphNames = ttFont.getGlyphOrder()
  
      indices = []
      for i in range(len(glyphNames)):
          if len(data) % 2:
              data = (
                  data + b"\015"
              )  # align on 2-byte boundaries, fill with return chars. Yum.
          name = glyphNames[i]
          if name in self.glyphPrograms:
              text = tobytes(self.glyphPrograms[name], encoding="utf-8")
          else:
              text = b""
          textLength = len(text)
          if textLength >= 0x8000:
              textLength = 0x8000
          indices.append((i, textLength, len(data)))
          data = data + text
  
      extra_indices = []
      codes = sorted(self.extras.items())
      for i in range(len(codes)):
          if len(data) % 2:
              data = (
                  data + b"\015"
              )  # align on 2-byte boundaries, fill with return chars.
          code, name = codes[i]
          if name in self.extraPrograms:
              text = tobytes(self.extraPrograms[name], encoding="utf-8")
          else:
              text = b""
          textLength = len(text)
          if textLength >= 0x8000:
              textLength = 0x8000
          extra_indices.append((code, textLength, len(data)))
          data = data + text
      indextable.set(indices, extra_indices)
      return data
  
file_path: catboost/contrib/python/fonttools/fontTools/ttLib/tables/T_S_I__1.py
imports: from .None import DefaultTable
  from fontTools.misc.loggingTools import LogMixin
  from fontTools.misc.textTools import strjoin, tobytes, tostr
label_desc: Use image node_id 2 for calling the table_T_S_I__1 obj's underlying member method code with example usage: obj.compile(ttFont) and returns: data