#19503 by PyChess

#19504 by zqd

#19505 by Levi