そうまでコードをわけわかめにしてまで
二つのバージョンに対応する価値はあるのだろうか