| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691 | 
							- using System;
 
- using System.Collections;
 
- using System.Collections.Generic;
 
- using System.Text;
 
- namespace MediaBrowser.Model.Services
 
- {
 
-     public static class MyHttpUtility
 
-     {
 
-         // Must be sorted
 
-         static readonly long[] entities = new long[] {
 
-             (long)'A' << 56 | (long)'E' << 48 | (long)'l' << 40 | (long)'i' << 32 | (long)'g' << 24,
 
-             (long)'A' << 56 | (long)'a' << 48 | (long)'c' << 40 | (long)'u' << 32 | (long)'t' << 24 | (long)'e' << 16,
 
-             (long)'A' << 56 | (long)'c' << 48 | (long)'i' << 40 | (long)'r' << 32 | (long)'c' << 24,
 
-             (long)'A' << 56 | (long)'g' << 48 | (long)'r' << 40 | (long)'a' << 32 | (long)'v' << 24 | (long)'e' << 16,
 
-             (long)'A' << 56 | (long)'l' << 48 | (long)'p' << 40 | (long)'h' << 32 | (long)'a' << 24,
 
-             (long)'A' << 56 | (long)'r' << 48 | (long)'i' << 40 | (long)'n' << 32 | (long)'g' << 24,
 
-             (long)'A' << 56 | (long)'t' << 48 | (long)'i' << 40 | (long)'l' << 32 | (long)'d' << 24 | (long)'e' << 16,
 
-             (long)'A' << 56 | (long)'u' << 48 | (long)'m' << 40 | (long)'l' << 32,
 
-             (long)'B' << 56 | (long)'e' << 48 | (long)'t' << 40 | (long)'a' << 32,
 
-             (long)'C' << 56 | (long)'c' << 48 | (long)'e' << 40 | (long)'d' << 32 | (long)'i' << 24 | (long)'l' << 16,
 
-             (long)'C' << 56 | (long)'h' << 48 | (long)'i' << 40,
 
-             (long)'D' << 56 | (long)'a' << 48 | (long)'g' << 40 | (long)'g' << 32 | (long)'e' << 24 | (long)'r' << 16,
 
-             (long)'D' << 56 | (long)'e' << 48 | (long)'l' << 40 | (long)'t' << 32 | (long)'a' << 24,
 
-             (long)'E' << 56 | (long)'T' << 48 | (long)'H' << 40,
 
-             (long)'E' << 56 | (long)'a' << 48 | (long)'c' << 40 | (long)'u' << 32 | (long)'t' << 24 | (long)'e' << 16,
 
-             (long)'E' << 56 | (long)'c' << 48 | (long)'i' << 40 | (long)'r' << 32 | (long)'c' << 24,
 
-             (long)'E' << 56 | (long)'g' << 48 | (long)'r' << 40 | (long)'a' << 32 | (long)'v' << 24 | (long)'e' << 16,
 
-             (long)'E' << 56 | (long)'p' << 48 | (long)'s' << 40 | (long)'i' << 32 | (long)'l' << 24 | (long)'o' << 16 | (long)'n' << 8,
 
-             (long)'E' << 56 | (long)'t' << 48 | (long)'a' << 40,
 
-             (long)'E' << 56 | (long)'u' << 48 | (long)'m' << 40 | (long)'l' << 32,
 
-             (long)'G' << 56 | (long)'a' << 48 | (long)'m' << 40 | (long)'m' << 32 | (long)'a' << 24,
 
-             (long)'I' << 56 | (long)'a' << 48 | (long)'c' << 40 | (long)'u' << 32 | (long)'t' << 24 | (long)'e' << 16,
 
-             (long)'I' << 56 | (long)'c' << 48 | (long)'i' << 40 | (long)'r' << 32 | (long)'c' << 24,
 
-             (long)'I' << 56 | (long)'g' << 48 | (long)'r' << 40 | (long)'a' << 32 | (long)'v' << 24 | (long)'e' << 16,
 
-             (long)'I' << 56 | (long)'o' << 48 | (long)'t' << 40 | (long)'a' << 32,
 
-             (long)'I' << 56 | (long)'u' << 48 | (long)'m' << 40 | (long)'l' << 32,
 
-             (long)'K' << 56 | (long)'a' << 48 | (long)'p' << 40 | (long)'p' << 32 | (long)'a' << 24,
 
-             (long)'L' << 56 | (long)'a' << 48 | (long)'m' << 40 | (long)'b' << 32 | (long)'d' << 24 | (long)'a' << 16,
 
-             (long)'M' << 56 | (long)'u' << 48,
 
-             (long)'N' << 56 | (long)'t' << 48 | (long)'i' << 40 | (long)'l' << 32 | (long)'d' << 24 | (long)'e' << 16,
 
-             (long)'N' << 56 | (long)'u' << 48,
 
-             (long)'O' << 56 | (long)'E' << 48 | (long)'l' << 40 | (long)'i' << 32 | (long)'g' << 24,
 
-             (long)'O' << 56 | (long)'a' << 48 | (long)'c' << 40 | (long)'u' << 32 | (long)'t' << 24 | (long)'e' << 16,
 
-             (long)'O' << 56 | (long)'c' << 48 | (long)'i' << 40 | (long)'r' << 32 | (long)'c' << 24,
 
-             (long)'O' << 56 | (long)'g' << 48 | (long)'r' << 40 | (long)'a' << 32 | (long)'v' << 24 | (long)'e' << 16,
 
-             (long)'O' << 56 | (long)'m' << 48 | (long)'e' << 40 | (long)'g' << 32 | (long)'a' << 24,
 
-             (long)'O' << 56 | (long)'m' << 48 | (long)'i' << 40 | (long)'c' << 32 | (long)'r' << 24 | (long)'o' << 16 | (long)'n' << 8,
 
-             (long)'O' << 56 | (long)'s' << 48 | (long)'l' << 40 | (long)'a' << 32 | (long)'s' << 24 | (long)'h' << 16,
 
-             (long)'O' << 56 | (long)'t' << 48 | (long)'i' << 40 | (long)'l' << 32 | (long)'d' << 24 | (long)'e' << 16,
 
-             (long)'O' << 56 | (long)'u' << 48 | (long)'m' << 40 | (long)'l' << 32,
 
-             (long)'P' << 56 | (long)'h' << 48 | (long)'i' << 40,
 
-             (long)'P' << 56 | (long)'i' << 48,
 
-             (long)'P' << 56 | (long)'r' << 48 | (long)'i' << 40 | (long)'m' << 32 | (long)'e' << 24,
 
-             (long)'P' << 56 | (long)'s' << 48 | (long)'i' << 40,
 
-             (long)'R' << 56 | (long)'h' << 48 | (long)'o' << 40,
 
-             (long)'S' << 56 | (long)'c' << 48 | (long)'a' << 40 | (long)'r' << 32 | (long)'o' << 24 | (long)'n' << 16,
 
-             (long)'S' << 56 | (long)'i' << 48 | (long)'g' << 40 | (long)'m' << 32 | (long)'a' << 24,
 
-             (long)'T' << 56 | (long)'H' << 48 | (long)'O' << 40 | (long)'R' << 32 | (long)'N' << 24,
 
-             (long)'T' << 56 | (long)'a' << 48 | (long)'u' << 40,
 
-             (long)'T' << 56 | (long)'h' << 48 | (long)'e' << 40 | (long)'t' << 32 | (long)'a' << 24,
 
-             (long)'U' << 56 | (long)'a' << 48 | (long)'c' << 40 | (long)'u' << 32 | (long)'t' << 24 | (long)'e' << 16,
 
-             (long)'U' << 56 | (long)'c' << 48 | (long)'i' << 40 | (long)'r' << 32 | (long)'c' << 24,
 
-             (long)'U' << 56 | (long)'g' << 48 | (long)'r' << 40 | (long)'a' << 32 | (long)'v' << 24 | (long)'e' << 16,
 
-             (long)'U' << 56 | (long)'p' << 48 | (long)'s' << 40 | (long)'i' << 32 | (long)'l' << 24 | (long)'o' << 16 | (long)'n' << 8,
 
-             (long)'U' << 56 | (long)'u' << 48 | (long)'m' << 40 | (long)'l' << 32,
 
-             (long)'X' << 56 | (long)'i' << 48,
 
-             (long)'Y' << 56 | (long)'a' << 48 | (long)'c' << 40 | (long)'u' << 32 | (long)'t' << 24 | (long)'e' << 16,
 
-             (long)'Y' << 56 | (long)'u' << 48 | (long)'m' << 40 | (long)'l' << 32,
 
-             (long)'Z' << 56 | (long)'e' << 48 | (long)'t' << 40 | (long)'a' << 32,
 
-             (long)'a' << 56 | (long)'a' << 48 | (long)'c' << 40 | (long)'u' << 32 | (long)'t' << 24 | (long)'e' << 16,
 
-             (long)'a' << 56 | (long)'c' << 48 | (long)'i' << 40 | (long)'r' << 32 | (long)'c' << 24,
 
-             (long)'a' << 56 | (long)'c' << 48 | (long)'u' << 40 | (long)'t' << 32 | (long)'e' << 24,
 
-             (long)'a' << 56 | (long)'e' << 48 | (long)'l' << 40 | (long)'i' << 32 | (long)'g' << 24,
 
-             (long)'a' << 56 | (long)'g' << 48 | (long)'r' << 40 | (long)'a' << 32 | (long)'v' << 24 | (long)'e' << 16,
 
-             (long)'a' << 56 | (long)'l' << 48 | (long)'e' << 40 | (long)'f' << 32 | (long)'s' << 24 | (long)'y' << 16 | (long)'m' << 8,
 
-             (long)'a' << 56 | (long)'l' << 48 | (long)'p' << 40 | (long)'h' << 32 | (long)'a' << 24,
 
-             (long)'a' << 56 | (long)'m' << 48 | (long)'p' << 40,
 
-             (long)'a' << 56 | (long)'n' << 48 | (long)'d' << 40,
 
-             (long)'a' << 56 | (long)'n' << 48 | (long)'g' << 40,
 
-             (long)'a' << 56 | (long)'p' << 48 | (long)'o' << 40 | (long)'s' << 32,
 
-             (long)'a' << 56 | (long)'r' << 48 | (long)'i' << 40 | (long)'n' << 32 | (long)'g' << 24,
 
-             (long)'a' << 56 | (long)'s' << 48 | (long)'y' << 40 | (long)'m' << 32 | (long)'p' << 24,
 
-             (long)'a' << 56 | (long)'t' << 48 | (long)'i' << 40 | (long)'l' << 32 | (long)'d' << 24 | (long)'e' << 16,
 
-             (long)'a' << 56 | (long)'u' << 48 | (long)'m' << 40 | (long)'l' << 32,
 
-             (long)'b' << 56 | (long)'d' << 48 | (long)'q' << 40 | (long)'u' << 32 | (long)'o' << 24,
 
-             (long)'b' << 56 | (long)'e' << 48 | (long)'t' << 40 | (long)'a' << 32,
 
-             (long)'b' << 56 | (long)'r' << 48 | (long)'v' << 40 | (long)'b' << 32 | (long)'a' << 24 | (long)'r' << 16,
 
-             (long)'b' << 56 | (long)'u' << 48 | (long)'l' << 40 | (long)'l' << 32,
 
-             (long)'c' << 56 | (long)'a' << 48 | (long)'p' << 40,
 
-             (long)'c' << 56 | (long)'c' << 48 | (long)'e' << 40 | (long)'d' << 32 | (long)'i' << 24 | (long)'l' << 16,
 
-             (long)'c' << 56 | (long)'e' << 48 | (long)'d' << 40 | (long)'i' << 32 | (long)'l' << 24,
 
-             (long)'c' << 56 | (long)'e' << 48 | (long)'n' << 40 | (long)'t' << 32,
 
-             (long)'c' << 56 | (long)'h' << 48 | (long)'i' << 40,
 
-             (long)'c' << 56 | (long)'i' << 48 | (long)'r' << 40 | (long)'c' << 32,
 
-             (long)'c' << 56 | (long)'l' << 48 | (long)'u' << 40 | (long)'b' << 32 | (long)'s' << 24,
 
-             (long)'c' << 56 | (long)'o' << 48 | (long)'n' << 40 | (long)'g' << 32,
 
-             (long)'c' << 56 | (long)'o' << 48 | (long)'p' << 40 | (long)'y' << 32,
 
-             (long)'c' << 56 | (long)'r' << 48 | (long)'a' << 40 | (long)'r' << 32 | (long)'r' << 24,
 
-             (long)'c' << 56 | (long)'u' << 48 | (long)'p' << 40,
 
-             (long)'c' << 56 | (long)'u' << 48 | (long)'r' << 40 | (long)'r' << 32 | (long)'e' << 24 | (long)'n' << 16,
 
-             (long)'d' << 56 | (long)'A' << 48 | (long)'r' << 40 | (long)'r' << 32,
 
-             (long)'d' << 56 | (long)'a' << 48 | (long)'g' << 40 | (long)'g' << 32 | (long)'e' << 24 | (long)'r' << 16,
 
-             (long)'d' << 56 | (long)'a' << 48 | (long)'r' << 40 | (long)'r' << 32,
 
-             (long)'d' << 56 | (long)'e' << 48 | (long)'g' << 40,
 
-             (long)'d' << 56 | (long)'e' << 48 | (long)'l' << 40 | (long)'t' << 32 | (long)'a' << 24,
 
-             (long)'d' << 56 | (long)'i' << 48 | (long)'a' << 40 | (long)'m' << 32 | (long)'s' << 24,
 
-             (long)'d' << 56 | (long)'i' << 48 | (long)'v' << 40 | (long)'i' << 32 | (long)'d' << 24 | (long)'e' << 16,
 
-             (long)'e' << 56 | (long)'a' << 48 | (long)'c' << 40 | (long)'u' << 32 | (long)'t' << 24 | (long)'e' << 16,
 
-             (long)'e' << 56 | (long)'c' << 48 | (long)'i' << 40 | (long)'r' << 32 | (long)'c' << 24,
 
-             (long)'e' << 56 | (long)'g' << 48 | (long)'r' << 40 | (long)'a' << 32 | (long)'v' << 24 | (long)'e' << 16,
 
-             (long)'e' << 56 | (long)'m' << 48 | (long)'p' << 40 | (long)'t' << 32 | (long)'y' << 24,
 
-             (long)'e' << 56 | (long)'m' << 48 | (long)'s' << 40 | (long)'p' << 32,
 
-             (long)'e' << 56 | (long)'n' << 48 | (long)'s' << 40 | (long)'p' << 32,
 
-             (long)'e' << 56 | (long)'p' << 48 | (long)'s' << 40 | (long)'i' << 32 | (long)'l' << 24 | (long)'o' << 16 | (long)'n' << 8,
 
-             (long)'e' << 56 | (long)'q' << 48 | (long)'u' << 40 | (long)'i' << 32 | (long)'v' << 24,
 
-             (long)'e' << 56 | (long)'t' << 48 | (long)'a' << 40,
 
-             (long)'e' << 56 | (long)'t' << 48 | (long)'h' << 40,
 
-             (long)'e' << 56 | (long)'u' << 48 | (long)'m' << 40 | (long)'l' << 32,
 
-             (long)'e' << 56 | (long)'u' << 48 | (long)'r' << 40 | (long)'o' << 32,
 
-             (long)'e' << 56 | (long)'x' << 48 | (long)'i' << 40 | (long)'s' << 32 | (long)'t' << 24,
 
-             (long)'f' << 56 | (long)'n' << 48 | (long)'o' << 40 | (long)'f' << 32,
 
-             (long)'f' << 56 | (long)'o' << 48 | (long)'r' << 40 | (long)'a' << 32 | (long)'l' << 24 | (long)'l' << 16,
 
-             (long)'f' << 56 | (long)'r' << 48 | (long)'a' << 40 | (long)'c' << 32 | (long)'1' << 24 | (long)'2' << 16,
 
-             (long)'f' << 56 | (long)'r' << 48 | (long)'a' << 40 | (long)'c' << 32 | (long)'1' << 24 | (long)'4' << 16,
 
-             (long)'f' << 56 | (long)'r' << 48 | (long)'a' << 40 | (long)'c' << 32 | (long)'3' << 24 | (long)'4' << 16,
 
-             (long)'f' << 56 | (long)'r' << 48 | (long)'a' << 40 | (long)'s' << 32 | (long)'l' << 24,
 
-             (long)'g' << 56 | (long)'a' << 48 | (long)'m' << 40 | (long)'m' << 32 | (long)'a' << 24,
 
-             (long)'g' << 56 | (long)'e' << 48,
 
-             (long)'g' << 56 | (long)'t' << 48,
 
-             (long)'h' << 56 | (long)'A' << 48 | (long)'r' << 40 | (long)'r' << 32,
 
-             (long)'h' << 56 | (long)'a' << 48 | (long)'r' << 40 | (long)'r' << 32,
 
-             (long)'h' << 56 | (long)'e' << 48 | (long)'a' << 40 | (long)'r' << 32 | (long)'t' << 24 | (long)'s' << 16,
 
-             (long)'h' << 56 | (long)'e' << 48 | (long)'l' << 40 | (long)'l' << 32 | (long)'i' << 24 | (long)'p' << 16,
 
-             (long)'i' << 56 | (long)'a' << 48 | (long)'c' << 40 | (long)'u' << 32 | (long)'t' << 24 | (long)'e' << 16,
 
-             (long)'i' << 56 | (long)'c' << 48 | (long)'i' << 40 | (long)'r' << 32 | (long)'c' << 24,
 
-             (long)'i' << 56 | (long)'e' << 48 | (long)'x' << 40 | (long)'c' << 32 | (long)'l' << 24,
 
-             (long)'i' << 56 | (long)'g' << 48 | (long)'r' << 40 | (long)'a' << 32 | (long)'v' << 24 | (long)'e' << 16,
 
-             (long)'i' << 56 | (long)'m' << 48 | (long)'a' << 40 | (long)'g' << 32 | (long)'e' << 24,
 
-             (long)'i' << 56 | (long)'n' << 48 | (long)'f' << 40 | (long)'i' << 32 | (long)'n' << 24,
 
-             (long)'i' << 56 | (long)'n' << 48 | (long)'t' << 40,
 
-             (long)'i' << 56 | (long)'o' << 48 | (long)'t' << 40 | (long)'a' << 32,
 
-             (long)'i' << 56 | (long)'q' << 48 | (long)'u' << 40 | (long)'e' << 32 | (long)'s' << 24 | (long)'t' << 16,
 
-             (long)'i' << 56 | (long)'s' << 48 | (long)'i' << 40 | (long)'n' << 32,
 
-             (long)'i' << 56 | (long)'u' << 48 | (long)'m' << 40 | (long)'l' << 32,
 
-             (long)'k' << 56 | (long)'a' << 48 | (long)'p' << 40 | (long)'p' << 32 | (long)'a' << 24,
 
-             (long)'l' << 56 | (long)'A' << 48 | (long)'r' << 40 | (long)'r' << 32,
 
-             (long)'l' << 56 | (long)'a' << 48 | (long)'m' << 40 | (long)'b' << 32 | (long)'d' << 24 | (long)'a' << 16,
 
-             (long)'l' << 56 | (long)'a' << 48 | (long)'n' << 40 | (long)'g' << 32,
 
-             (long)'l' << 56 | (long)'a' << 48 | (long)'q' << 40 | (long)'u' << 32 | (long)'o' << 24,
 
-             (long)'l' << 56 | (long)'a' << 48 | (long)'r' << 40 | (long)'r' << 32,
 
-             (long)'l' << 56 | (long)'c' << 48 | (long)'e' << 40 | (long)'i' << 32 | (long)'l' << 24,
 
-             (long)'l' << 56 | (long)'d' << 48 | (long)'q' << 40 | (long)'u' << 32 | (long)'o' << 24,
 
-             (long)'l' << 56 | (long)'e' << 48,
 
-             (long)'l' << 56 | (long)'f' << 48 | (long)'l' << 40 | (long)'o' << 32 | (long)'o' << 24 | (long)'r' << 16,
 
-             (long)'l' << 56 | (long)'o' << 48 | (long)'w' << 40 | (long)'a' << 32 | (long)'s' << 24 | (long)'t' << 16,
 
-             (long)'l' << 56 | (long)'o' << 48 | (long)'z' << 40,
 
-             (long)'l' << 56 | (long)'r' << 48 | (long)'m' << 40,
 
-             (long)'l' << 56 | (long)'s' << 48 | (long)'a' << 40 | (long)'q' << 32 | (long)'u' << 24 | (long)'o' << 16,
 
-             (long)'l' << 56 | (long)'s' << 48 | (long)'q' << 40 | (long)'u' << 32 | (long)'o' << 24,
 
-             (long)'l' << 56 | (long)'t' << 48,
 
-             (long)'m' << 56 | (long)'a' << 48 | (long)'c' << 40 | (long)'r' << 32,
 
-             (long)'m' << 56 | (long)'d' << 48 | (long)'a' << 40 | (long)'s' << 32 | (long)'h' << 24,
 
-             (long)'m' << 56 | (long)'i' << 48 | (long)'c' << 40 | (long)'r' << 32 | (long)'o' << 24,
 
-             (long)'m' << 56 | (long)'i' << 48 | (long)'d' << 40 | (long)'d' << 32 | (long)'o' << 24 | (long)'t' << 16,
 
-             (long)'m' << 56 | (long)'i' << 48 | (long)'n' << 40 | (long)'u' << 32 | (long)'s' << 24,
 
-             (long)'m' << 56 | (long)'u' << 48,
 
-             (long)'n' << 56 | (long)'a' << 48 | (long)'b' << 40 | (long)'l' << 32 | (long)'a' << 24,
 
-             (long)'n' << 56 | (long)'b' << 48 | (long)'s' << 40 | (long)'p' << 32,
 
-             (long)'n' << 56 | (long)'d' << 48 | (long)'a' << 40 | (long)'s' << 32 | (long)'h' << 24,
 
-             (long)'n' << 56 | (long)'e' << 48,
 
-             (long)'n' << 56 | (long)'i' << 48,
 
-             (long)'n' << 56 | (long)'o' << 48 | (long)'t' << 40,
 
-             (long)'n' << 56 | (long)'o' << 48 | (long)'t' << 40 | (long)'i' << 32 | (long)'n' << 24,
 
-             (long)'n' << 56 | (long)'s' << 48 | (long)'u' << 40 | (long)'b' << 32,
 
-             (long)'n' << 56 | (long)'t' << 48 | (long)'i' << 40 | (long)'l' << 32 | (long)'d' << 24 | (long)'e' << 16,
 
-             (long)'n' << 56 | (long)'u' << 48,
 
-             (long)'o' << 56 | (long)'a' << 48 | (long)'c' << 40 | (long)'u' << 32 | (long)'t' << 24 | (long)'e' << 16,
 
-             (long)'o' << 56 | (long)'c' << 48 | (long)'i' << 40 | (long)'r' << 32 | (long)'c' << 24,
 
-             (long)'o' << 56 | (long)'e' << 48 | (long)'l' << 40 | (long)'i' << 32 | (long)'g' << 24,
 
-             (long)'o' << 56 | (long)'g' << 48 | (long)'r' << 40 | (long)'a' << 32 | (long)'v' << 24 | (long)'e' << 16,
 
-             (long)'o' << 56 | (long)'l' << 48 | (long)'i' << 40 | (long)'n' << 32 | (long)'e' << 24,
 
-             (long)'o' << 56 | (long)'m' << 48 | (long)'e' << 40 | (long)'g' << 32 | (long)'a' << 24,
 
-             (long)'o' << 56 | (long)'m' << 48 | (long)'i' << 40 | (long)'c' << 32 | (long)'r' << 24 | (long)'o' << 16 | (long)'n' << 8,
 
-             (long)'o' << 56 | (long)'p' << 48 | (long)'l' << 40 | (long)'u' << 32 | (long)'s' << 24,
 
-             (long)'o' << 56 | (long)'r' << 48,
 
-             (long)'o' << 56 | (long)'r' << 48 | (long)'d' << 40 | (long)'f' << 32,
 
-             (long)'o' << 56 | (long)'r' << 48 | (long)'d' << 40 | (long)'m' << 32,
 
-             (long)'o' << 56 | (long)'s' << 48 | (long)'l' << 40 | (long)'a' << 32 | (long)'s' << 24 | (long)'h' << 16,
 
-             (long)'o' << 56 | (long)'t' << 48 | (long)'i' << 40 | (long)'l' << 32 | (long)'d' << 24 | (long)'e' << 16,
 
-             (long)'o' << 56 | (long)'t' << 48 | (long)'i' << 40 | (long)'m' << 32 | (long)'e' << 24 | (long)'s' << 16,
 
-             (long)'o' << 56 | (long)'u' << 48 | (long)'m' << 40 | (long)'l' << 32,
 
-             (long)'p' << 56 | (long)'a' << 48 | (long)'r' << 40 | (long)'a' << 32,
 
-             (long)'p' << 56 | (long)'a' << 48 | (long)'r' << 40 | (long)'t' << 32,
 
-             (long)'p' << 56 | (long)'e' << 48 | (long)'r' << 40 | (long)'m' << 32 | (long)'i' << 24 | (long)'l' << 16,
 
-             (long)'p' << 56 | (long)'e' << 48 | (long)'r' << 40 | (long)'p' << 32,
 
-             (long)'p' << 56 | (long)'h' << 48 | (long)'i' << 40,
 
-             (long)'p' << 56 | (long)'i' << 48,
 
-             (long)'p' << 56 | (long)'i' << 48 | (long)'v' << 40,
 
-             (long)'p' << 56 | (long)'l' << 48 | (long)'u' << 40 | (long)'s' << 32 | (long)'m' << 24 | (long)'n' << 16,
 
-             (long)'p' << 56 | (long)'o' << 48 | (long)'u' << 40 | (long)'n' << 32 | (long)'d' << 24,
 
-             (long)'p' << 56 | (long)'r' << 48 | (long)'i' << 40 | (long)'m' << 32 | (long)'e' << 24,
 
-             (long)'p' << 56 | (long)'r' << 48 | (long)'o' << 40 | (long)'d' << 32,
 
-             (long)'p' << 56 | (long)'r' << 48 | (long)'o' << 40 | (long)'p' << 32,
 
-             (long)'p' << 56 | (long)'s' << 48 | (long)'i' << 40,
 
-             (long)'q' << 56 | (long)'u' << 48 | (long)'o' << 40 | (long)'t' << 32,
 
-             (long)'r' << 56 | (long)'A' << 48 | (long)'r' << 40 | (long)'r' << 32,
 
-             (long)'r' << 56 | (long)'a' << 48 | (long)'d' << 40 | (long)'i' << 32 | (long)'c' << 24,
 
-             (long)'r' << 56 | (long)'a' << 48 | (long)'n' << 40 | (long)'g' << 32,
 
-             (long)'r' << 56 | (long)'a' << 48 | (long)'q' << 40 | (long)'u' << 32 | (long)'o' << 24,
 
-             (long)'r' << 56 | (long)'a' << 48 | (long)'r' << 40 | (long)'r' << 32,
 
-             (long)'r' << 56 | (long)'c' << 48 | (long)'e' << 40 | (long)'i' << 32 | (long)'l' << 24,
 
-             (long)'r' << 56 | (long)'d' << 48 | (long)'q' << 40 | (long)'u' << 32 | (long)'o' << 24,
 
-             (long)'r' << 56 | (long)'e' << 48 | (long)'a' << 40 | (long)'l' << 32,
 
-             (long)'r' << 56 | (long)'e' << 48 | (long)'g' << 40,
 
-             (long)'r' << 56 | (long)'f' << 48 | (long)'l' << 40 | (long)'o' << 32 | (long)'o' << 24 | (long)'r' << 16,
 
-             (long)'r' << 56 | (long)'h' << 48 | (long)'o' << 40,
 
-             (long)'r' << 56 | (long)'l' << 48 | (long)'m' << 40,
 
-             (long)'r' << 56 | (long)'s' << 48 | (long)'a' << 40 | (long)'q' << 32 | (long)'u' << 24 | (long)'o' << 16,
 
-             (long)'r' << 56 | (long)'s' << 48 | (long)'q' << 40 | (long)'u' << 32 | (long)'o' << 24,
 
-             (long)'s' << 56 | (long)'b' << 48 | (long)'q' << 40 | (long)'u' << 32 | (long)'o' << 24,
 
-             (long)'s' << 56 | (long)'c' << 48 | (long)'a' << 40 | (long)'r' << 32 | (long)'o' << 24 | (long)'n' << 16,
 
-             (long)'s' << 56 | (long)'d' << 48 | (long)'o' << 40 | (long)'t' << 32,
 
-             (long)'s' << 56 | (long)'e' << 48 | (long)'c' << 40 | (long)'t' << 32,
 
-             (long)'s' << 56 | (long)'h' << 48 | (long)'y' << 40,
 
-             (long)'s' << 56 | (long)'i' << 48 | (long)'g' << 40 | (long)'m' << 32 | (long)'a' << 24,
 
-             (long)'s' << 56 | (long)'i' << 48 | (long)'g' << 40 | (long)'m' << 32 | (long)'a' << 24 | (long)'f' << 16,
 
-             (long)'s' << 56 | (long)'i' << 48 | (long)'m' << 40,
 
-             (long)'s' << 56 | (long)'p' << 48 | (long)'a' << 40 | (long)'d' << 32 | (long)'e' << 24 | (long)'s' << 16,
 
-             (long)'s' << 56 | (long)'u' << 48 | (long)'b' << 40,
 
-             (long)'s' << 56 | (long)'u' << 48 | (long)'b' << 40 | (long)'e' << 32,
 
-             (long)'s' << 56 | (long)'u' << 48 | (long)'m' << 40,
 
-             (long)'s' << 56 | (long)'u' << 48 | (long)'p' << 40,
 
-             (long)'s' << 56 | (long)'u' << 48 | (long)'p' << 40 | (long)'1' << 32,
 
-             (long)'s' << 56 | (long)'u' << 48 | (long)'p' << 40 | (long)'2' << 32,
 
-             (long)'s' << 56 | (long)'u' << 48 | (long)'p' << 40 | (long)'3' << 32,
 
-             (long)'s' << 56 | (long)'u' << 48 | (long)'p' << 40 | (long)'e' << 32,
 
-             (long)'s' << 56 | (long)'z' << 48 | (long)'l' << 40 | (long)'i' << 32 | (long)'g' << 24,
 
-             (long)'t' << 56 | (long)'a' << 48 | (long)'u' << 40,
 
-             (long)'t' << 56 | (long)'h' << 48 | (long)'e' << 40 | (long)'r' << 32 | (long)'e' << 24 | (long)'4' << 16,
 
-             (long)'t' << 56 | (long)'h' << 48 | (long)'e' << 40 | (long)'t' << 32 | (long)'a' << 24,
 
-             (long)'t' << 56 | (long)'h' << 48 | (long)'e' << 40 | (long)'t' << 32 | (long)'a' << 24 | (long)'s' << 16 | (long)'y' << 8 | (long)'m' << 0,
 
-             (long)'t' << 56 | (long)'h' << 48 | (long)'i' << 40 | (long)'n' << 32 | (long)'s' << 24 | (long)'p' << 16,
 
-             (long)'t' << 56 | (long)'h' << 48 | (long)'o' << 40 | (long)'r' << 32 | (long)'n' << 24,
 
-             (long)'t' << 56 | (long)'i' << 48 | (long)'l' << 40 | (long)'d' << 32 | (long)'e' << 24,
 
-             (long)'t' << 56 | (long)'i' << 48 | (long)'m' << 40 | (long)'e' << 32 | (long)'s' << 24,
 
-             (long)'t' << 56 | (long)'r' << 48 | (long)'a' << 40 | (long)'d' << 32 | (long)'e' << 24,
 
-             (long)'u' << 56 | (long)'A' << 48 | (long)'r' << 40 | (long)'r' << 32,
 
-             (long)'u' << 56 | (long)'a' << 48 | (long)'c' << 40 | (long)'u' << 32 | (long)'t' << 24 | (long)'e' << 16,
 
-             (long)'u' << 56 | (long)'a' << 48 | (long)'r' << 40 | (long)'r' << 32,
 
-             (long)'u' << 56 | (long)'c' << 48 | (long)'i' << 40 | (long)'r' << 32 | (long)'c' << 24,
 
-             (long)'u' << 56 | (long)'g' << 48 | (long)'r' << 40 | (long)'a' << 32 | (long)'v' << 24 | (long)'e' << 16,
 
-             (long)'u' << 56 | (long)'m' << 48 | (long)'l' << 40,
 
-             (long)'u' << 56 | (long)'p' << 48 | (long)'s' << 40 | (long)'i' << 32 | (long)'h' << 24,
 
-             (long)'u' << 56 | (long)'p' << 48 | (long)'s' << 40 | (long)'i' << 32 | (long)'l' << 24 | (long)'o' << 16 | (long)'n' << 8,
 
-             (long)'u' << 56 | (long)'u' << 48 | (long)'m' << 40 | (long)'l' << 32,
 
-             (long)'w' << 56 | (long)'e' << 48 | (long)'i' << 40 | (long)'e' << 32 | (long)'r' << 24 | (long)'p' << 16,
 
-             (long)'x' << 56 | (long)'i' << 48,
 
-             (long)'y' << 56 | (long)'a' << 48 | (long)'c' << 40 | (long)'u' << 32 | (long)'t' << 24 | (long)'e' << 16,
 
-             (long)'y' << 56 | (long)'e' << 48 | (long)'n' << 40,
 
-             (long)'y' << 56 | (long)'u' << 48 | (long)'m' << 40 | (long)'l' << 32,
 
-             (long)'z' << 56 | (long)'e' << 48 | (long)'t' << 40 | (long)'a' << 32,
 
-             (long)'z' << 56 | (long)'w' << 48 | (long)'j' << 40,
 
-             (long)'z' << 56 | (long)'w' << 48 | (long)'n' << 40 | (long)'j' << 32
 
-         };
 
-         static readonly char[] entities_values = new char[] {
 
-             '\u00C6', '\u00C1', '\u00C2', '\u00C0', '\u0391', '\u00C5', '\u00C3', '\u00C4', '\u0392', '\u00C7', '\u03A7',
 
-             '\u2021', '\u0394', '\u00D0', '\u00C9', '\u00CA', '\u00C8', '\u0395', '\u0397', '\u00CB', '\u0393', '\u00CD',
 
-             '\u00CE', '\u00CC', '\u0399', '\u00CF', '\u039A', '\u039B', '\u039C', '\u00D1', '\u039D', '\u0152', '\u00D3',
 
-             '\u00D4', '\u00D2', '\u03A9', '\u039F', '\u00D8', '\u00D5', '\u00D6', '\u03A6', '\u03A0', '\u2033', '\u03A8',
 
-             '\u03A1', '\u0160', '\u03A3', '\u00DE', '\u03A4', '\u0398', '\u00DA', '\u00DB', '\u00D9', '\u03A5', '\u00DC',
 
-             '\u039E', '\u00DD', '\u0178', '\u0396', '\u00E1', '\u00E2', '\u00B4', '\u00E6', '\u00E0', '\u2135', '\u03B1',
 
-             '\u0026', '\u2227', '\u2220', '\u0027', '\u00E5', '\u2248', '\u00E3', '\u00E4', '\u201E', '\u03B2', '\u00A6',
 
-             '\u2022', '\u2229', '\u00E7', '\u00B8', '\u00A2', '\u03C7', '\u02C6', '\u2663', '\u2245', '\u00A9', '\u21B5',
 
-             '\u222A', '\u00A4', '\u21D3', '\u2020', '\u2193', '\u00B0', '\u03B4', '\u2666', '\u00F7', '\u00E9', '\u00EA',
 
-             '\u00E8', '\u2205', '\u2003', '\u2002', '\u03B5', '\u2261', '\u03B7', '\u00F0', '\u00EB', '\u20AC', '\u2203',
 
-             '\u0192', '\u2200', '\u00BD', '\u00BC', '\u00BE', '\u2044', '\u03B3', '\u2265', '\u003E', '\u21D4', '\u2194',
 
-             '\u2665', '\u2026', '\u00ED', '\u00EE', '\u00A1', '\u00EC', '\u2111', '\u221E', '\u222B', '\u03B9', '\u00BF',
 
-             '\u2208', '\u00EF', '\u03BA', '\u21D0', '\u03BB', '\u2329', '\u00AB', '\u2190', '\u2308', '\u201C', '\u2264',
 
-             '\u230A', '\u2217', '\u25CA', '\u200E', '\u2039', '\u2018', '\u003C', '\u00AF', '\u2014', '\u00B5', '\u00B7',
 
-             '\u2212', '\u03BC', '\u2207', '\u00A0', '\u2013', '\u2260', '\u220B', '\u00AC', '\u2209', '\u2284', '\u00F1',
 
-             '\u03BD', '\u00F3', '\u00F4', '\u0153', '\u00F2', '\u203E', '\u03C9', '\u03BF', '\u2295', '\u2228', '\u00AA',
 
-             '\u00BA', '\u00F8', '\u00F5', '\u2297', '\u00F6', '\u00B6', '\u2202', '\u2030', '\u22A5', '\u03C6', '\u03C0',
 
-             '\u03D6', '\u00B1', '\u00A3', '\u2032', '\u220F', '\u221D', '\u03C8', '\u0022', '\u21D2', '\u221A', '\u232A',
 
-             '\u00BB', '\u2192', '\u2309', '\u201D', '\u211C', '\u00AE', '\u230B', '\u03C1', '\u200F', '\u203A', '\u2019',
 
-             '\u201A', '\u0161', '\u22C5', '\u00A7', '\u00AD', '\u03C3', '\u03C2', '\u223C', '\u2660', '\u2282', '\u2286',
 
-             '\u2211', '\u2283', '\u00B9', '\u00B2', '\u00B3', '\u2287', '\u00DF', '\u03C4', '\u2234', '\u03B8', '\u03D1',
 
-             '\u2009', '\u00FE', '\u02DC', '\u00D7', '\u2122', '\u21D1', '\u00FA', '\u2191', '\u00FB', '\u00F9', '\u00A8',
 
-             '\u03D2', '\u03C5', '\u00FC', '\u2118', '\u03BE', '\u00FD', '\u00A5', '\u00FF', '\u03B6', '\u200D', '\u200C'
 
-         };
 
-         #region Methods
 
-         static void WriteCharBytes(IList buf, char ch, Encoding e)
 
-         {
 
-             if (ch > 255)
 
-             {
 
-                 foreach (byte b in e.GetBytes(new char[] { ch }))
 
-                     buf.Add(b);
 
-             }
 
-             else
 
-                 buf.Add((byte)ch);
 
-         }
 
-         public static string UrlDecode(string s, Encoding e)
 
-         {
 
-             if (null == s)
 
-                 return null;
 
-             if (s.IndexOf('%') == -1 && s.IndexOf('+') == -1)
 
-                 return s;
 
-             if (e == null)
 
-                 e = Encoding.UTF8;
 
-             long len = s.Length;
 
-             var bytes = new List<byte>();
 
-             int xchar;
 
-             char ch;
 
-             for (int i = 0; i < len; i++)
 
-             {
 
-                 ch = s[i];
 
-                 if (ch == '%' && i + 2 < len && s[i + 1] != '%')
 
-                 {
 
-                     if (s[i + 1] == 'u' && i + 5 < len)
 
-                     {
 
-                         // unicode hex sequence
 
-                         xchar = GetChar(s, i + 2, 4);
 
-                         if (xchar != -1)
 
-                         {
 
-                             WriteCharBytes(bytes, (char)xchar, e);
 
-                             i += 5;
 
-                         }
 
-                         else
 
-                             WriteCharBytes(bytes, '%', e);
 
-                     }
 
-                     else if ((xchar = GetChar(s, i + 1, 2)) != -1)
 
-                     {
 
-                         WriteCharBytes(bytes, (char)xchar, e);
 
-                         i += 2;
 
-                     }
 
-                     else
 
-                     {
 
-                         WriteCharBytes(bytes, '%', e);
 
-                     }
 
-                     continue;
 
-                 }
 
-                 if (ch == '+')
 
-                     WriteCharBytes(bytes, ' ', e);
 
-                 else
 
-                     WriteCharBytes(bytes, ch, e);
 
-             }
 
-             byte[] buf = bytes.ToArray();
 
-             bytes = null;
 
-             return e.GetString(buf, 0, buf.Length);
 
-         }
 
-         static int GetInt(byte b)
 
-         {
 
-             char c = (char)b;
 
-             if (c >= '0' && c <= '9')
 
-                 return c - '0';
 
-             if (c >= 'a' && c <= 'f')
 
-                 return c - 'a' + 10;
 
-             if (c >= 'A' && c <= 'F')
 
-                 return c - 'A' + 10;
 
-             return -1;
 
-         }
 
-         static int GetChar(string str, int offset, int length)
 
-         {
 
-             int val = 0;
 
-             int end = length + offset;
 
-             for (int i = offset; i < end; i++)
 
-             {
 
-                 char c = str[i];
 
-                 if (c > 127)
 
-                     return -1;
 
-                 int current = GetInt((byte)c);
 
-                 if (current == -1)
 
-                     return -1;
 
-                 val = (val << 4) + current;
 
-             }
 
-             return val;
 
-         }
 
-         static bool TryConvertKeyToEntity(string key, out char value)
 
-         {
 
-             var token = CalculateKeyValue(key);
 
-             if (token == 0)
 
-             {
 
-                 value = '\0';
 
-                 return false;
 
-             }
 
-             var idx = Array.BinarySearch(entities, token);
 
-             if (idx < 0)
 
-             {
 
-                 value = '\0';
 
-                 return false;
 
-             }
 
-             value = entities_values[idx];
 
-             return true;
 
-         }
 
-         static long CalculateKeyValue(string s)
 
-         {
 
-             if (s.Length > 8)
 
-                 return 0;
 
-             long key = 0;
 
-             for (int i = 0; i < s.Length; ++i)
 
-             {
 
-                 long ch = s[i];
 
-                 if (ch > 'z' || ch < '0')
 
-                     return 0;
 
-                 key |= ch << ((7 - i) * 8);
 
-             }
 
-             return key;
 
-         }
 
-         /// <summary>
 
-         /// Decodes an HTML-encoded string and returns the decoded string.
 
-         /// </summary>
 
-         /// <param name="s">The HTML string to decode. </param>
 
-         /// <returns>The decoded text.</returns>
 
-         public static string HtmlDecode(string s)
 
-         {
 
-             if (s == null)
 
-                 throw new ArgumentNullException(nameof(s));
 
-             if (s.IndexOf('&') == -1)
 
-                 return s;
 
-             var entity = new StringBuilder();
 
-             var output = new StringBuilder();
 
-             int len = s.Length;
 
-             // 0 -> nothing,
 
-             // 1 -> right after '&'
 
-             // 2 -> between '&' and ';' but no '#'
 
-             // 3 -> '#' found after '&' and getting numbers
 
-             int state = 0;
 
-             int number = 0;
 
-             int digit_start = 0;
 
-             bool hex_number = false;
 
-             for (int i = 0; i < len; i++)
 
-             {
 
-                 char c = s[i];
 
-                 if (state == 0)
 
-                 {
 
-                     if (c == '&')
 
-                     {
 
-                         entity.Append(c);
 
-                         state = 1;
 
-                     }
 
-                     else
 
-                     {
 
-                         output.Append(c);
 
-                     }
 
-                     continue;
 
-                 }
 
-                 if (c == '&')
 
-                 {
 
-                     state = 1;
 
-                     if (digit_start > 0)
 
-                     {
 
-                         entity.Append(s, digit_start, i - digit_start);
 
-                         digit_start = 0;
 
-                     }
 
-                     output.Append(entity.ToString());
 
-                     entity.Length = 0;
 
-                     entity.Append('&');
 
-                     continue;
 
-                 }
 
-                 switch (state)
 
-                 {
 
-                     case 1:
 
-                         if (c == ';')
 
-                         {
 
-                             state = 0;
 
-                             output.Append(entity.ToString());
 
-                             output.Append(c);
 
-                             entity.Length = 0;
 
-                             break;
 
-                         }
 
-                         number = 0;
 
-                         hex_number = false;
 
-                         if (c != '#')
 
-                         {
 
-                             state = 2;
 
-                         }
 
-                         else
 
-                         {
 
-                             state = 3;
 
-                         }
 
-                         entity.Append(c);
 
-                         break;
 
-                     case 2:
 
-                         entity.Append(c);
 
-                         if (c == ';')
 
-                         {
 
-                             string key = entity.ToString();
 
-                             state = 0;
 
-                             entity.Length = 0;
 
-                             if (key.Length > 1)
 
-                             {
 
-                                 var skey = key.Substring(1, key.Length - 2);
 
-                                 if (TryConvertKeyToEntity(skey, out c))
 
-                                 {
 
-                                     output.Append(c);
 
-                                     break;
 
-                                 }
 
-                             }
 
-                             output.Append(key);
 
-                         }
 
-                         break;
 
-                     case 3:
 
-                         if (c == ';')
 
-                         {
 
-                             if (number < 0x10000)
 
-                             {
 
-                                 output.Append((char)number);
 
-                             }
 
-                             else
 
-                             {
 
-                                 output.Append((char)(0xd800 + ((number - 0x10000) >> 10)));
 
-                                 output.Append((char)(0xdc00 + ((number - 0x10000) & 0x3ff)));
 
-                             }
 
-                             state = 0;
 
-                             entity.Length = 0;
 
-                             digit_start = 0;
 
-                             break;
 
-                         }
 
-                         if (c == 'x' || c == 'X' && !hex_number)
 
-                         {
 
-                             digit_start = i;
 
-                             hex_number = true;
 
-                             break;
 
-                         }
 
-                         if (char.IsDigit(c))
 
-                         {
 
-                             if (digit_start == 0)
 
-                                 digit_start = i;
 
-                             number = number * (hex_number ? 16 : 10) + ((int)c - '0');
 
-                             break;
 
-                         }
 
-                         if (hex_number)
 
-                         {
 
-                             if (c >= 'a' && c <= 'f')
 
-                             {
 
-                                 number = number * 16 + 10 + ((int)c - 'a');
 
-                                 break;
 
-                             }
 
-                             if (c >= 'A' && c <= 'F')
 
-                             {
 
-                                 number = number * 16 + 10 + ((int)c - 'A');
 
-                                 break;
 
-                             }
 
-                         }
 
-                         state = 2;
 
-                         if (digit_start > 0)
 
-                         {
 
-                             entity.Append(s, digit_start, i - digit_start);
 
-                             digit_start = 0;
 
-                         }
 
-                         entity.Append(c);
 
-                         break;
 
-                 }
 
-             }
 
-             if (entity.Length > 0)
 
-             {
 
-                 output.Append(entity);
 
-             }
 
-             else if (digit_start > 0)
 
-             {
 
-                 output.Append(s, digit_start, s.Length - digit_start);
 
-             }
 
-             return output.ToString();
 
-         }
 
-         public static QueryParamCollection ParseQueryString(string query)
 
-         {
 
-             return ParseQueryString(query, Encoding.UTF8);
 
-         }
 
-         public static QueryParamCollection ParseQueryString(string query, Encoding encoding)
 
-         {
 
-             if (query == null)
 
-                 throw new ArgumentNullException(nameof(query));
 
-             if (encoding == null)
 
-                 throw new ArgumentNullException(nameof(encoding));
 
-             if (query.Length == 0 || (query.Length == 1 && query[0] == '?'))
 
-                 return new QueryParamCollection();
 
-             if (query[0] == '?')
 
-                 query = query.Substring(1);
 
-             var result = new QueryParamCollection();
 
-             ParseQueryString(query, encoding, result);
 
-             return result;
 
-         }
 
-         internal static void ParseQueryString(string query, Encoding encoding, QueryParamCollection result)
 
-         {
 
-             if (query.Length == 0)
 
-                 return;
 
-             string decoded = HtmlDecode(query);
 
-             int decodedLength = decoded.Length;
 
-             int namePos = 0;
 
-             bool first = true;
 
-             while (namePos <= decodedLength)
 
-             {
 
-                 int valuePos = -1, valueEnd = -1;
 
-                 for (int q = namePos; q < decodedLength; q++)
 
-                 {
 
-                     if (valuePos == -1 && decoded[q] == '=')
 
-                     {
 
-                         valuePos = q + 1;
 
-                     }
 
-                     else if (decoded[q] == '&')
 
-                     {
 
-                         valueEnd = q;
 
-                         break;
 
-                     }
 
-                 }
 
-                 if (first)
 
-                 {
 
-                     first = false;
 
-                     if (decoded[namePos] == '?')
 
-                         namePos++;
 
-                 }
 
-                 string name, value;
 
-                 if (valuePos == -1)
 
-                 {
 
-                     name = null;
 
-                     valuePos = namePos;
 
-                 }
 
-                 else
 
-                 {
 
-                     name = UrlDecode(decoded.Substring(namePos, valuePos - namePos - 1), encoding);
 
-                 }
 
-                 if (valueEnd < 0)
 
-                 {
 
-                     namePos = -1;
 
-                     valueEnd = decoded.Length;
 
-                 }
 
-                 else
 
-                 {
 
-                     namePos = valueEnd + 1;
 
-                 }
 
-                 value = UrlDecode(decoded.Substring(valuePos, valueEnd - valuePos), encoding);
 
-                 result.Add(name, value);
 
-                 if (namePos == -1)
 
-                     break;
 
-             }
 
-         }
 
-         #endregion // Methods
 
-     }
 
- }
 
 
  |