Update from vfleaking/uoj upstream, commit aa8a85c - 9f1302c. Because of this repo's modify, also with the adaption of community version.