Because a property should equal given value: a%26b%3Dc%3F (or a&b=c? decoded). You shouldn't be decoding the string until you're assigning its value, that's why encoding is there to begin with, so there's no conflicts with charaters = or & when used as values. (I know you solved it already, this is for anyone else who gets confused)
I can't understand, how those weight adjustments are supposed to work. While description says "adjusting it by 5%", test results do not match with what i was expecting. For example: test with totalWeight: 77.5, barWeight: 15.5 and availablePlates: [38.25,38,32.25,14.25,8.5,4.75] expects [null] even thought using 1 plate of 32.25 on each side gives you total weight of 80, which is ~3% adjustment. Another example is totalWeight: 86.5, barWeight: 17.75, and availablePlates: [36.75,35,32.75,24,17.75,15,13,12.5,5.5], that expects [32.75] (total weight of 83.25, ~3.7% adjustment) instead of  (87.75 total, ~1.4% adjustment).
This comment is hidden because it contains spoiler information about the solution
nope, Uun is a perfectly valid chemical element: it's one of those that are at the extreme end of the table (often not even written in it)