Note: Please excuse the lack of translation.