py3 port: 12/288