It produces identical hashes to the original code, except in the case of array-valued parameters, in which case it now produces the correct output:

**Normal Params**
  * _Old_ — `a=1&c=2&b=3` :arrow_right: `[1, 2, 3]`
  * _New_ — `a=1&c=2&b=3` :arrow_right: `[1, 2, 3]`

**Array Params**
  * _Old_ — `a=1&a=2&b=3` :arrow_right: `[2, 3]`
  * _New_ — `a=1&a=2&b=3` :arrow_right: `[1, 2, 3]`