{"ScriptPreparationCode":"function decode(input) {\r\n return decodeURIComponent(input.replace(/\\\u002B/g, \u0027 \u0027));\r\n}\r\n\r\nfunction querystringNotPrepared(query) {\r\n var parser = /([^=?\u0026]\u002B)=?([^\u0026]*)/g\r\n , result = {}\r\n , part;\r\n\r\n for (;\r\n part = parser.exec(query);\r\n result[decode(part[1])] = decode(part[2])\r\n );\r\n\r\n return result;\r\n}\r\n\r\nvar PARSER = /([^=?\u0026]\u002B)=?([^\u0026]*)/g;\r\n\r\nfunction querystringPrepared(query) {\r\n var result = {}\r\n , part;\r\n\r\n for (;\r\n part = PARSER.exec(query);\r\n result[decode(part[1])] = decode(part[2])\r\n );\r\n\r\n return result;\r\n}","TestCases":[{"Name":"not prepared","Code":"querystringNotPrepared( \u0027foo=bar\u0026bar=foo\u0027 );","IsDeferred":false},{"Name":"prepared","Code":"querystringPrepared( \u0027foo=bar\u0026bar=foo\u0027 );","IsDeferred":false}]}