色々試行錯誤していたらひとつの関数が57行になっちゃった(;_;)