mobile-broadband-provider-info 20090309
=======================================	
 * Andres Mujica added Tele2, Lithuania
 * Updated Italian information
 * Andres Mujica and Andreas Kostyrka added FONIC, Germany
 * Andres Mujica added Wataniya, Kuwait
 * Andres Mujica and Chris Jones added user/pass to Orange (contact), UK
 * Felix Danso-Quayson added Zain, Ghana
 * Savvas Radevic provided multiple fixes gathered from ubuntu bug tracker
 * Timothy Kyalo added Econet, Kenya
 * Andrei Bordei added Eventis, Republic of Moldova
 * Edison Mera added Jazztel, Spain
 * Stefan Andersen added Fullrate Denmark
 * Val Zak added provider Unitel, Angola
 * Dominic Evans added Vodafone (TopUp and Go) UK
 * Carlos Arenas added authentication credentials for Comcel Colombia
 * Pramod Dematagoda added Sri Lankan provider Airtel
 * 3 UK: Separate APNs for dedicated mobile broadband devices and handsets.
 * Andrés Mauricio Mujica Zalamea added Orange Internet Everywhere 3G in France
 * Thomas Lee added Three Prepaid in Australia
 * Serge de Souza added Movinet Angola
 * Jacob Nielsen added Danish provider Oister.dk
 * Mykhailo Korbakov added Ukrainian provider Utel
 * Sunatomo Masuda added some Japanese CDMA providers
 * Johannes Hessellund added Danish provider BiBoB
 * Manuel Gomez added Colombian providers Tigo and Movistar, and removed
   redundant user/pass from Comcel
 * Rodrigo Linfati added Claro Chile - Prepago
 * Andreas Kostyrka added Austrian provider Yesss
 * Paul Sisnett added Digicel Barbados
 * Steven Lizarazo added Colombian provider Comcel
 * Rodrigo Linfati updated Chilean service providers

mobile-broadband-provider-info 20081124
=======================================
 * Bjørn Lie added NetworkNorway and a bunch of other operatorusing the same
   network
 * Matheus Pacheco de Andrade added Brazilian provider Vivo
 * Anton Blanchard added Australian provider Exetel
 * Joseph Price fixed the APN of 3 UK
 * Konstantinos Togias fixed the APN of Vodafone Greece
 * Martin Pitt and Alejandro Romero Herrera provided WebSessions
 * Aldo Bassanini added Ecuadorian provider Porta 3G
 * Gabor Kelemen updated Hungarian providers
 * Florian Eberle updated APN of Orange Switzerland

mobile-broadband-provider-info 20081029
=======================================
 * Removed German Quam as suggested by Julius Bloch
 * Piotr Makowski added Polish operator Play Online
 * Daniel Wiberg added operator 3 for Denmark and fixed some
   settings for 3 Sweden
 * Alejandro Romero Herrera added Mexican Iusacell
 * Kenneth Mokkelbost added Norwegian TDC
 * Update OneNet -> Orange for Austria (Wolfgang Silbermayr)
 * Dan Williams updated US CDMA providers
 * Ævar Arnfjörð Bjarmason added Icelandic provider Nova
 * Fanen Ahua updated Nigerian provider information
 * Gilbert Mendoza added Sprint CDMA for US
 * Gilbert Mendoza added Verizon EV-DO for US

mobile-broadband-provider-info 20081015
=======================================
 * Andreas Schildbach pointed out that o2 is spelled o2 (small
   letter) or (capital letter, subscript digit), but never O2
   (capital letter, plain digit)
 * Chris Jones fixed APN of UK o2
 * Stefano Rivera updated Vodacom South Africa
 * Stefan Andersen removed Danish service provider Orange as it has
   been merged with Telia
 * Carlos Perelló Marín sdded Simyo and Orange to the Spanish list. 
 * Martijn van de Streek added Dutch service provider xs4all
 * Pramod Dematagoda updated Sri Lankan provider information
 * Fanen Ahua updated Nigerian provider information
 * Raphael Finke provided information for Irish provider Three
 * Vitja Makarov added xml:lang=ru names for Russian providers and
 * provided information for service provider Skylink (Moscow)
 * Carlos Santiago updated Portuguese provider information
 * Istvan Szollosi provided information for Romanian service
   provider Zapp
 * Daniel Nylander updated Swedish provider information and provided
   information for Scandinavian operator ice.net

mobile-broadband-provider-info 20080822
=======================================
 * Dan Williams updated the United States provider information
 * Onkar Shinde updated Indian provider information
 * Arne Goetje updated Taiwanese provider information

mobile-broadband-provider-info 20080814
=======================================
 * first release
