Sub

機能拡張をしました。
ネストが深いので、適宜別のメソッドとして切り出してください