ほぼ全て書き換え
バッファの端に対応できるように