#!/usr/bin/env python3
import sys
import os.path

libdir = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'Lib')
sys.path.insert(0, libdir)

from fontTools.__main__ import main

if __name__ == '__main__':
	sys.exit(main())
