diff --git a/.codeclimate.yml b/.codeclimate.yml new file mode 100644 index 0000000..e1367c3 --- /dev/null +++ b/.codeclimate.yml @@ -0,0 +1,18 @@ +--- +engines: + duplication: + enabled: true + config: + languages: + - ruby + fixme: + enabled: false + rubocop: + enabled: true + brakeman: + enabled: false +ratings: + paths: + - "**.rb" +exclude_paths: +- spec/ diff --git a/.gitignore b/.gitignore index 4d0a136..6f087a8 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,11 @@ pkg # Ignore Bundler config /.bundle +/vendor/bundle/ # Ignore built gems /*.gem + +# YARD doc stuff +/.yardoc +/doc/ diff --git a/.rspec b/.rspec new file mode 100644 index 0000000..83e16f8 --- /dev/null +++ b/.rspec @@ -0,0 +1,2 @@ +--color +--require spec_helper diff --git a/.rubocop.yml b/.rubocop.yml new file mode 100644 index 0000000..80cbe6c --- /dev/null +++ b/.rubocop.yml @@ -0,0 +1,20 @@ +AllCops: + TargetRubyVersion: 2.4 + +Style/StringLiterals: + EnforcedStyle: double_quotes + Enabled: true + +Style/StringLiteralsInInterpolation: + EnforcedStyle: double_quotes + Enabled: true + +Style/Documentation: + Enabled: false + +Metrics/LineLength: + Max: 100 + +Metrics/BlockLength: + Exclude: + - spec/**/*.rb diff --git a/.travis.yml b/.travis.yml index 4309da5..533452f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,21 @@ language: ruby cache: bundler +dist: trusty rvm: - ruby-2.0 - ruby-2.1 - ruby-2.2 - - ruby-2.3.0 - - rbx + - ruby-2.3 + - ruby-2.4 + - ruby-2.5 + - rbx-3.84 - jruby before_install: + - gem update --system - gem update bundler +before_script: + - bundle exec rubocop -D +notifications: + email: + on_success: change + on_failure: change diff --git a/.yardopts b/.yardopts new file mode 100644 index 0000000..5ccbf0e --- /dev/null +++ b/.yardopts @@ -0,0 +1 @@ +lib/addic7ed/models/**/*.rb diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..6c6ef27 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,49 @@ +# Contributor Code of Conduct + +As contributors and maintainers of this project, and in the interest of +fostering an open and welcoming community, we pledge to respect all people who +contribute through reporting issues, posting feature requests, updating +documentation, submitting pull requests or patches, and other activities. + +We are committed to making participation in this project a harassment-free +experience for everyone, regardless of level of experience, gender, gender +identity and expression, sexual orientation, disability, personal appearance, +body size, race, ethnicity, age, religion, or nationality. + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery +* Personal attacks +* Trolling or insulting/derogatory comments +* Public or private harassment +* Publishing other's private information, such as physical or electronic + addresses, without explicit permission +* Other unethical or unprofessional conduct + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +By adopting this Code of Conduct, project maintainers commit themselves to +fairly and consistently applying these principles to every aspect of managing +this project. Project maintainers who do not follow or enforce the Code of +Conduct may be permanently removed from the project team. + +This code of conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting a project maintainer at michael.baudino@alpine-lab.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. Maintainers are +obligated to maintain confidentiality with regard to the reporter of an +incident. + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 1.3.0, available at +[http://contributor-covenant.org/version/1/3/0/][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/3/0/ diff --git a/Gemfile b/Gemfile index 12dae51..abe0374 100644 --- a/Gemfile +++ b/Gemfile @@ -1,15 +1,17 @@ -source 'https://rubygems.org' +# frozen_string_literal: true + +source "https://rubygems.org" # The gem's dependencies will be specified in addic7ed.gemspec gemspec group :test do - gem 'coveralls', require: false + gem "coveralls", require: false end platforms :rbx do - gem 'json' - gem 'racc' - gem 'rubysl' - gem 'psych' - gem 'iconv' + gem "iconv", "~> 1.0" + gem "json", "~> 2.1" + gem "psych", "~> 2.2" + gem "racc", "~> 1.4" + gem "rubysl", "~> 2.2" end diff --git a/README.md b/README.md index fab7ac0..87cb9f6 100644 --- a/README.md +++ b/README.md @@ -1,109 +1,201 @@ -> ## :information_source: Upcoming Design Breaking Changes -> -> I'm [currently working on a full rewrite](https://github.com/michaelbaudino/addic7ed-ruby/pull/30) which will introduce some heavily breaking changes, including: -> -> * a complete API refactor (almost a full rewrite) to enforce code quality, maintainability and single responsability principle -> * documentation! -> * the removal of any CLI feature (they will be moved to a separate `addic7ed-ruby-cli` gem) -> -> I'll publish some beta versions of the gem before merging the PR into `master` and releasing a final version (remember that the gem will no longer include a CLI tool). I'd love to receive some feedback about it, so feel free to [send me an email](mailto:michael.baudino@alpine-lab.com). - # addic7ed-ruby -[![Build Status](https://api.travis-ci.org/michaelbaudino/addic7ed-ruby.svg?branch=master)](https://travis-ci.org/michaelbaudino/addic7ed-ruby) +[![Build Status](https://api.travis-ci.org/michaelbaudino/addic7ed-ruby.svg?branch=full-rewrite)](https://travis-ci.org/michaelbaudino/addic7ed-ruby) [![Dependency Status](https://gemnasium.com/michaelbaudino/addic7ed-ruby.svg?travis)](https://gemnasium.com/michaelbaudino/addic7ed-ruby) [![Code Climate](https://codeclimate.com/github/michaelbaudino/addic7ed-ruby.svg)](https://codeclimate.com/github/michaelbaudino/addic7ed-ruby) [![Coverage Status](https://coveralls.io/repos/michaelbaudino/addic7ed-ruby/badge.svg?branch=master)](https://coveralls.io/r/michaelbaudino/addic7ed-ruby) [![Gem Version](https://badge.fury.io/rb/addic7ed.svg)](http://badge.fury.io/rb/addic7ed) [![security](https://hakiri.io/github/michaelbaudino/addic7ed-ruby/master.svg)](https://hakiri.io/github/michaelbaudino/addic7ed-ruby/master) +[![Inline docs](http://inch-ci.org/github/michaelbaudino/addic7ed-ruby.svg?branch=full-rewrite)](http://inch-ci.org/github/michaelbaudino/addic7ed-ruby?branch=full-rewrite) + +A Ruby API for [Addic7ed](http://www.addic7ed.com), the best TV subtitles community in the world. + +> ℹ️ This is a Ruby wrapper only: if you're looking for the CLI tool, please see [addic7ed-cli](michaelbaudino/addic7ed-cli). + +## Installation + +Add this line to your application's `Gemfile`: + +```ruby +gem "addic7ed" +``` + +Then execute: + +```shell +$ bundle +``` + +## Usage + +> 📚 Check out the [API reference](http://www.rubydoc.info/github/michaelbaudino/addic7ed-ruby) for full documentation. + +### `Addic7ed::Episode` + +An `Episode` object represents an episode with a show name, season number and episode number: + +```ruby +episode = Addic7ed::Episode.new(show: "Game of Thrones", season: 6, number: 9) +#=> # +``` + +It provides a `subtitles` instance method that returns all available subtitles for this episode: + +```ruby +episode.subtitles +#=> #, +# #, +# # +# ] +``` + +It also provides a `page_url` instance method that returns the URL of the page listing all subtitles (or all those for a given `language`, if passed as argument) on Addic7ed: + +```ruby +episode.page_url #=> "http://www.addic7ed.com/serie/Game_of_Thrones/6/9/0" +episode.page_url(:fr) #=> "http://www.addic7ed.com/serie/Game_of_Thrones/6/9/8" +``` + +> ℹ️ This is used internally to list available subtitles (see `subtitles` method above) but is also useful when later downloading a subtitle file because it can be used as a referrer (which is a required HTTP header to download subtitle files). +> 💥 It raises `Addic7ed::LanguageNotSupported` if an unknown language code is passed to `page_url`. -Ruby command-line script to fetch subtitles on Addic7ed +### `Addic7ed::SubtitlesCollection` -### Is it working ? +A `SubtitlesCollection` is an enumerable class that provides several filtering methods: -Until next time Addic7ed break their HTML/CSS structure, yes :smile: +* `compatible_with(group)` which returns only subtitles compatible with the given `group` releases +* `completed` which returns only completed subtitles +* `for_language(language)` which returns only subtitles in the given `language` +* `most_popular` which returns the most downloaded subtitle -### How to use it ? +Those methods are chainable, which lets you, for example: -1. Install it: +* select subtitles completed and compatible with a given release group: - ```bash - $ gem install addic7ed + ```ruby + good_subtitles = episode.subtitles.completed.compatible_with("KILLERS") ``` -2. Use it (e.g. to download a French subtitle for a "Californication" episode): - ```bash - $ addic7ed -l fr /path/to/Californication.S06E07.720p.HDTV.x264-2HD.mkv +* find the most popular subtitle among those: + + ```ruby + best_subtitle = good_subtitles.most_popular ``` -3. A wild `Californication.S06E07.720p.HDTV.x264-2HD.fr.srt` file appears -4. Enjoy your show :tv: - -### Are there any options ? - -Sure ! - -```bash -$ addic7ed -h -Usage: addic7ed [options] [, , ...] - -l, --language [LANGUAGE] Language code to look subtitles for (default: French) - --no-hi Only download subtitles without Hearing Impaired lines - -a, --all-subtitles Display all available subtitles - -n, --do-not-download Do not download the subtitle - -f, --force Overwrite existing subtitle - -u, --untagged Do not include language code in subtitle filename - -v, --[no-]verbose Run verbosely - -q, --quiet Run without output (cron-mode) - -d, --debug Debug mode [do not use] - -h, --help Show this message - -L, --list-languages List all available languages - -V, --version Show version number + +> 💥 It raises `LanguageNotSupported` when `for_language` is called with an unknown/unsupported language code. + +> 💡 A `SubtitlesCollection` instance can be filtered using any method from `Enumerable` (including your well-known friends `each`, `map`, `select`, `reject`, `find`, `group_by`, `any?`, `count`, `inject`, `sort`, `reduce`, ...). + +### `Addic7ed::Subtitle` + +A `Subtitle` object represents a subtitle file available on Addic7ed. It has several attributes: + +```ruby +subtitle = Addic7ed::Subtitle.new( + version: "Version KILLERS, 720p AVS, 0.00 MBs", + language: "French", + status: "Completed", + source: "http://sous-titres.eu", + downloads: 10335, + comment: "works with 1080p.BATV", + corrected: true, + hi: false, + url: "http://www.addic7ed.com/original/113643/4" +) + +subtitle.version #=> "Version KILLERS, 720p AVS, 0.00 MBs" +subtitle.language #=> "French" +subtitle.status #=> "Completed" +subtitle.source #=> "http://sous-titres.eu" +subtitle.downloads #=> 10335 +subtitle.comment #=> "works with 1080p.BATV" +subtitle.corrected #=> true +subtitle.hi #=> false +subtitle.url #=> "http://www.addic7ed.com/original/113643/4" ``` -### How to contribute ? +It also has a special `completed?` instance method that returns a boolean (`true` if `status` is `"Completed"`, `false` otherwise): -Feel free to submit a Pull Request, I'd be glad to review/merge it. +```ruby +subtitle.completed? #=> true +``` -Also, if you like the awesome work done by the Addic7ed team, please consider [donating to them](http://www.addic7ed.com) ! +### `Addic7ed::VideoFile` -### Notes +The `VideoFile` class lets you extract and guess relevant information from a video file name, then provides them as instance methods: -Addic7ed restricts the number of subtitle download to 15 per 24h (30 per 24h for registered users, and 55 for VIP users). +```ruby +video = Addic7ed::VideoFile.new("~/Downloads/Game.of.Thrones.S06E09.720p.HDTV.x264-AVS[eztv].mkv") -Don't get mad, they have to pay for their servers, you know. +video.showname #=> "Game.Of.Thrones" +video.season #=> 6 +video.episode #=> 9 +video.tags #=> ["720P", "HDTV", "X264"] +video.group #=> "AVS" +video.distribution #=> "EZTV" +video.basename #=> "Game.of.Thrones.S06E09.720p.HDTV.x264-AVS[eztv].mkv" +``` -Ho, and by the way, please, **please**: do not hammer their servers, play fair ! +> 💥 It raises `InvalidFilename` when it fails to infer any information from the file name 😢 -### Roadmap +## Fair use -There's some work remaining: -- Support registered users -- Support directory parsing -- Support "hearing impaired" versions -- Document code -- Test cli behaviour -- Colorize output -- Write doc for cron usage -- Write doc for iwatch usage +Addic7ed restricts the number of subtitles downloads to 15 per 24h (30 per 24h for registered users, and 55 for VIP users). Don't get mad, they have to pay for their servers, you know. Ho, and by the way, please, **please**: do not hammer their servers, play fair! -### Supported Ruby versions +## Supported Ruby versions -This projet supports the following Ruby versions/implementations: +This project [supports](https://github.com/michaelbaudino/addic7ed-ruby/blob/full-rewrite/.travis.yml) the following Ruby versions/implementations: * Ruby 2.0 (MRI) * Ruby 2.1 (MRI) * Ruby 2.2 (MRI) * Ruby 2.3 (MRI) +* Ruby 2.4 (MRI) +* Ruby 2.5 (MRI) * Rubinius * JRuby -:warning: Rubinius users may have to manually install [RubySL](https://github.com/RubySL) before they can use `addic7ed-ruby`: +⚠️ Rubinius users may have to manually install [RubySL](https://github.com/RubySL) before they can use `addic7ed-ruby`: ```shell $ gem install rubysl ``` -### License +## Contributing + +[Bug reports](michaelbaudino/addic7ed-ruby/issues) and [pull requests](michaelbaudino/addic7ed-ruby/pulls) are welcome on GitHub. + +This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct (see `CODE_OF_CONDUCT.md` file) 🤗 + +Also, if you like the awesome work done by the Addic7ed team, please consider [donating to them](http://www.addic7ed.com) 💰 + +### Local development + +When developing locally, we provide a handy REPL console with all the code already loaded: + +```shell +bin/console +``` + +There's even a mode where you don't rely on Addic7ed to be reachable (all network connections are blocked, and a page is mocked to work on): + +```shell +bin/console --mock +``` + +### Documentation + +The API reference can be generated locally using Yard: + +```shell +bundle exec yard +``` + +It is then available as static HTML files in the `doc` directory of this codebase (point your browser to `doc/index.html`). + +## License -This project is released under the terms of the MIT license. -See `LICENSE.md` file for details. +This gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT) (see `LICENSE.md` file). diff --git a/Rakefile b/Rakefile index 03c2e28..7f8613f 100644 --- a/Rakefile +++ b/Rakefile @@ -1,8 +1,10 @@ -require 'rspec/core/rake_task' +# frozen_string_literal: true + +require "rspec/core/rake_task" RSpec::Core::RakeTask.new(:spec) -task :default => :spec +task default: :spec -require 'bundler' +require "bundler" Bundler::GemHelper.install_tasks diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..b489e0e --- /dev/null +++ b/TODO.md @@ -0,0 +1,44 @@ +# TODO + +Here is a list of future features I'd like to implement. + +> :innocent: It's also an interesting list of tasks to pickup if you'd like to contribute. + +## For 4.0 (the full-rewrite) + +* [x] move download logic to a service object +* [x] add a new `Search` model +* [x] move compatibility logic to a `CheckCompatibility` service object +* [x] create a `SubtitlesCollection` class to hold and filter subtitles +* [x] move best subtitle logic to `SubtitlesCollection` +* [x] rename `Subtitle#via` to `Subtitle#source` +* [x] refactor how `Episode` holds `Subtitle`s +* [x] rename `ShowList` and make it a service object +* [x] write code documentation +* [x] configure GitHub hook for [RubyDoc](http://www.rubydoc.info) +* [x] add `bin/console` +* [x] remove `bin/addic7ed` +* [x] use symbols rather than strings for languages +* [x] add Rubocop +* [x] move user agents and languages to a config file +* [x] add a Bundler post-install message to notify users that this gem is no longer providing a CLI +* [x] switch to using the language-neutral page +* [x] update README to include only API stuff +* [x] remove `SHOWS_URL` and `EPISODES_URL` +* [x] mention documentation generation in `README` +* [x] add support for MRI 2.5 +* [x] remove `DownloadSubtitle` +* [x] remove all `to_s` and `to_inspect` methods +* [x] add tools to develop offline (at least, without relying on Addic7ed website) +* [ ] add a `download` instance method to `Subtitle` +* [ ] clean up `spec/responses` +* [ ] update links/badges to the `full-rewrite` branch in `README.md` to use `master` +* [ ] release `4.0` :champagne: + +## More features + +* [ ] refactor errors (to match Ruby errors hierarchy and maybe allow both bang-erroring and not-erroring versions of public API methods) +* [x] refactor how HI works (allow both "no HI", "force HI" and "don't care") +* [ ] add specs for HTML parsing +* [ ] support registered users (to avoid download throttle) +* [ ] use https://github.com/p0deje/yard-doctest to enforce documentation maintainance diff --git a/addic7ed.gemspec b/addic7ed.gemspec index edfc43b..b657a81 100644 --- a/addic7ed.gemspec +++ b/addic7ed.gemspec @@ -1,29 +1,38 @@ -$:.push File.expand_path("../lib", __FILE__) +# frozen_string_literal: true + +$LOAD_PATH.push File.expand_path("../lib", __FILE__) require "addic7ed/version" Gem::Specification.new do |s| - s.name = "addic7ed" - s.version = Addic7ed::VERSION - s.platform = Gem::Platform::RUBY - s.summary = "Addic7ed auto-downloader" - s.description = "Ruby script (cli) to fetch subtitles on Addic7ed" - s.authors = ["Michael Baudino"] - s.email = "michael.baudino@alpine-lab.com" - s.homepage = "https://github.com/michaelbaudino/addic7ed-ruby" + s.name = "addic7ed" + s.version = Addic7ed::VERSION + s.platform = Gem::Platform::RUBY + s.summary = "Addic7ed auto-downloader" + s.description = "Ruby script (cli) to fetch subtitles on Addic7ed" + s.authors = ["Michael Baudino"] + s.email = "michael.baudino@alpine-lab.com" + s.homepage = "https://github.com/michaelbaudino/addic7ed-ruby" + s.files = `git ls-files -z lib LICENSE.md`.split("\x0") + s.require_paths = ["lib"] + s.license = "MIT" + s.post_install_message = <<-POST_INSTALL_MESSAGE - s.add_development_dependency("rspec") + Important update if you're upgrading from 3.x to 4.x: + + This gem is not providing a CLI tool anymore. + If you're using it as a Ruby API for Addic7ed, you're all good, ignore this message. + If you're expecting the `addic7ed` binary, we've moved it to the `addic7ed-cli` gem. + + POST_INSTALL_MESSAGE + + s.add_development_dependency("inch") + s.add_development_dependency("pry") s.add_development_dependency("rake") + s.add_development_dependency("rspec") + s.add_development_dependency("rubocop") s.add_development_dependency("webmock") - s.add_development_dependency("pry") - - s.add_runtime_dependency("oga", "~> 2.7") - s.add_runtime_dependency("json", "~> 1.8.3") + s.add_development_dependency("yard") - s.executables = ["addic7ed"] - s.files = `git ls-files -- lib/* LICENSE.md`.split("\n") - s.test_files = `git ls-files -- spec/*`.split("\n") - s.require_paths = ["lib"] - s.has_rdoc = false - s.license = "MIT" + s.add_runtime_dependency("oga", "~> 2.7") end diff --git a/bin/addic7ed b/bin/addic7ed deleted file mode 100755 index f0318cd..0000000 --- a/bin/addic7ed +++ /dev/null @@ -1,144 +0,0 @@ -#!/usr/bin/env ruby - -def require_dependencies - require 'optparse' - require 'oga' - require 'addic7ed' -end - -begin - require_dependencies # People don't all use rubygems, you know... -rescue LoadError - require 'rubygems' # But most do :-) - require_dependencies -end - -options = {} -OptionParser.new do |opts| - opts.banner = "Usage: addic7ed [options] [, , ...]" - - opts.on("-l [LANGUAGE]", "--language [LANGUAGE]", "Language code to look subtitles for (default: French)") do |l| - options[:language] = l - end - - opts.on("--no-hi", "Only download subtitles without Hearing Impaired lines") do |hi| - options[:no_hi] = !hi - end - - opts.on("-a", "--all-subtitles", "Display all available subtitles") do |a| - options[:all] = a - end - - opts.on("-n", "--do-not-download", "Do not download the subtitle") do |n| - options[:nodownload] = n - end - - opts.on("-f", "--force", "Overwrite existing subtitle") do |f| - options[:force] = f - end - - opts.on("-u", "--untagged", "Do not include language code in subtitle filename") do |u| - options[:untagged] = u - end - - opts.on("-v", "--[no-]verbose", "Run verbosely") do |v| - options[:verbose] = v - end - - opts.on("-q", "--quiet", "Run without output (cron-mode)") do |q| - options[:quiet] = q - end - - opts.on("-d", "--debug", "Debug mode [do not use]") do |d| - options[:debug] = d - end - - opts.on_tail("-h", "--help", "Show this message") do - puts opts - exit - end - - opts.on_tail("-L", "--list-languages", "List all available languages") do - puts "All available languages (with their corresponding ISO code):" - Addic7ed::LANGUAGES.each do |lang, infos| - puts "#{lang}:\t#{infos[:name]}" - end - exit - end - - opts.on_tail("-V", "--version", "Show version number") do - puts "This is addic7ed-ruby version #{Addic7ed::VERSION} by Michael Baudino (https://github.com/michaelbaudino)" - puts "Licensed under the terms of the MIT License" - exit - end -end.parse! - -options[:filenames] = ARGV -options[:language] ||= 'fr' - -# Main loop over mandatory arguments (e.g. filenames) - -options[:filenames].each do |filename| - unless File.file? filename or options[:debug] - puts "Warning: #{filename} does not exist or is not a regular file. Skipping.".gsub(/^/, options[:verbose] ? ' ' : '') unless options[:quiet] - next - end - - begin - ep = Addic7ed::Episode.new(filename, options[:untagged]) - puts "Searching subtitles for #{ep.video_file.basename}" if options[:verbose] - if File.file?(filename.gsub(/\.\w{3}$/, '.srt')) and not options[:force] - puts "A subtitle already exists (#{filename.gsub(/\.\w{3}$/, '.srt')}). Skipping.".gsub(/^/, options[:verbose] ? ' ' : '') unless options[:quiet] - next - end - puts ep.video_file.inspect.gsub(/^/, ' ') if options[:verbose] - ep.subtitles(options[:language]) - if options[:all] or options[:verbose] - puts 'Available subtitles:'.gsub(/^/, options[:verbose] ? ' ' : '') - ep.subtitles(options[:language]).each do |sub| - puts "#{sub}".gsub(/^/, options[:verbose] ? ' ' : ' ') - end - next if options[:all] - end - ep.best_subtitle(options[:language], options[:no_hi]) - if options[:verbose] - puts ' Best subtitle:' - puts " #{ep.best_subtitle(options[:language])}" - end - unless options[:nodownload] - ep.download_best_subtitle!(options[:language], options[:no_hi]) - puts "New subtitle downloaded for #{filename}.\nEnjoy your show :-)".gsub(/^/, options[:verbose] ? ' ' : '') unless options[:quiet] - end - rescue Addic7ed::InvalidFilename - puts "#{filename} does not seem to be a valid TV show filename. Skipping.".gsub(/^/, options[:verbose] ? ' ' : '') unless options[:quiet] - next - rescue Addic7ed::ShowNotFound - puts "Show not found on Addic7ed : #{ep.video_file.filename}. Skipping.".gsub(/^/, options[:verbose] ? ' ' : '') unless options[:quiet] - next - rescue Addic7ed::EpisodeNotFound - puts "Episode not found on Addic7ed : #{ep.video_file.filename}. Skipping.".gsub(/^/, options[:verbose] ? ' ' : '') unless options[:quiet] - next - rescue Addic7ed::LanguageNotSupported - puts "Addic7ed does not support language '#{options[:language]}'. Exiting.".gsub(/^/, options[:verbose] ? ' ' : '') unless options[:quiet] - break - rescue Addic7ed::ParsingError - puts "HTML parsing failed. Either you've found a bug (please submit an issue) or Addic7ed website has been updated and cannot be crawled anymore (in this case, please wait for an update or submit a pull request). Skipping.".gsub(/^/, options[:verbose] ? ' ' : '') unless options[:quiet] - next - rescue Addic7ed::NoSubtitleFound - puts "No (acceptable) subtitle has been found on Addic7ed for #{filename}. Maybe try again later.".gsub(/^/, options[:verbose] ? ' ' : '') unless options[:quiet] - next - rescue Addic7ed::DownloadError - puts "The subtitle could not be downloaded. Skipping.".gsub(/^/, options[:verbose] ? ' ' : '') unless options[:quiet] - next - rescue Addic7ed::DownloadLimitReached - puts "You exceeded your daily download count. Exiting.".gsub(/^/, options[:verbose] ? ' ' : '') unless options[:quiet] - break - rescue Addic7ed::SubtitleCannotBeSaved - puts "The downloaded subtitle could not be saved as #{filename.gsub(/\.\w{3}$/, '.srt')}. Skipping.".gsub(/^/, options[:verbose] ? ' ' : '') unless options[:quiet] - next - rescue Addic7ed::HTTPError => e - puts "Network error: #{e.message}".gsub(/^/, options[:verbose] ? ' ' : '') unless options[:quiet] - next - end - -end diff --git a/bin/console b/bin/console new file mode 100755 index 0000000..180457b --- /dev/null +++ b/bin/console @@ -0,0 +1,17 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +require "bundler/setup" +Bundler.require(:default, ENV["RACK_ENV"] || :development) + +APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), "..")) + +$LOAD_PATH.unshift File.expand_path("lib", APP_ROOT) + +require "addic7ed" + +if ARGV.delete "--mock" + Dir[File.join(__dir__, "..", "mocks", "mocks.rb")].each { |file| require file } +end + +Pry.start diff --git a/lib/addic7ed.rb b/lib/addic7ed.rb index 5418194..b194976 100644 --- a/lib/addic7ed.rb +++ b/lib/addic7ed.rb @@ -1,10 +1,7 @@ -require 'addic7ed/version' -require 'addic7ed/common' -require 'addic7ed/services/addic7ed_version_normalizer' -require 'addic7ed/services/addic7ed_comment_normalizer' -require 'addic7ed/errors' -require 'addic7ed/show_list' -require 'addic7ed/video_file' -require 'addic7ed/episode' -require 'addic7ed/subtitle' -require 'addic7ed/parser' +# frozen_string_literal: true + +Dir[ + File.join(File.dirname(__FILE__), "addic7ed/*.rb"), + File.join(File.dirname(__FILE__), "addic7ed/services/**/*.rb"), + File.join(File.dirname(__FILE__), "addic7ed/models/**/*.rb") +].each { |file| require file } diff --git a/lib/addic7ed/common.rb b/lib/addic7ed/common.rb index 7bddf71..2b18bad 100644 --- a/lib/addic7ed/common.rb +++ b/lib/addic7ed/common.rb @@ -1,1289 +1,17 @@ -# encoding: UTF-8 +# frozen_string_literal: true -module Addic7ed +require "json" - SHOWS_URL = 'http://www.addic7ed.com/ajax_getShows.php' - EPISODES_URL = 'http://www.addic7ed.com/ajax_getEpisodes.php' - EPISODE_REDIRECT_URL = 'http://www.addic7ed.com/re_episode.php' +module Addic7ed + CONFIG_FILE = File.join(File.dirname(__FILE__), "config.json").freeze + CONFIG = JSON.parse(File.read(CONFIG_FILE), symbolize_names: true).freeze + LANGUAGES = CONFIG[:languages].freeze + USER_AGENTS = CONFIG[:user_agents].freeze COMPATIBILITY_720P = { - 'LOL' => 'DIMENSION', - 'SYS' => 'DIMENSION', - 'XII' => 'IMMERSE', - 'ASAP' => 'IMMERSE' - } - - LANGUAGES = { - 'ar' => {name: 'Arabic', id: 38}, - 'az' => {name: 'Azerbaijani', id: 48}, - 'bn' => {name: 'Bengali', id: 47}, - 'bs' => {name: 'Bosnian', id: 44}, - 'bg' => {name: 'Bulgarian', id: 35}, - 'ca' => {name: 'Català', id: 12}, - 'cn' => {name: 'Chinese (Simplified)', id: 41}, - 'zh' => {name: 'Chinese (Traditional)', id: 24}, - 'hr' => {name: 'Croatian', id: 31}, - 'cs' => {name: 'Czech', id: 14}, - 'da' => {name: 'Danish', id: 30}, - 'nl' => {name: 'Dutch', id: 17}, - 'en' => {name: 'English', id: 1}, - 'eu' => {name: 'Euskera', id: 13}, - 'fi' => {name: 'Finnish', id: 28}, - 'fr' => {name: 'French', id: 8}, - 'gl' => {name: 'Galego', id: 15}, - 'de' => {name: 'German', id: 11}, - 'el' => {name: 'Greek', id: 27}, - 'he' => {name: 'Hebrew', id: 23}, - 'hu' => {name: 'Hungarian', id: 20}, - 'id' => {name: 'Indonesian', id: 37}, - 'it' => {name: 'Italian', id: 7}, - 'ja' => {name: 'Japanese', id: 32}, - 'ko' => {name: 'Korean', id: 42}, - 'mk' => {name: 'Macedonian', id: 49}, - 'ms' => {name: 'Malay', id: 40}, - 'no' => {name: 'Norwegian', id: 29}, - 'fa' => {name: 'Persian', id: 43}, - 'pl' => {name: 'Polish', id: 21}, - 'pt' => {name: 'Portuguese', id: 9}, - 'pt-br' => {name: 'Portuguese (Brazilian)', id: 10}, - 'ro' => {name: 'Romanian', id: 26}, - 'ru' => {name: 'Russian', id: 19}, - 'sr' => {name: 'Serbian (Cyrillic)', id: 39}, - 'sr-la' => {name: 'Serbian (Latin)', id: 36}, - 'sk' => {name: 'Slovak', id: 25}, - 'sl' => {name: 'Slovenian', id: 22}, - 'es' => {name: 'Spanish', id: 4}, - 'es-la' => {name: 'Spanish (Latin America)', id: 6}, - 'es-es' => {name: 'Spanish (Spain)', id: 5}, - 'sv' => {name: 'Swedish', id: 18}, - 'th' => {name: 'Thai', id: 46}, - 'tr' => {name: 'Turkish', id: 16}, - 'vi' => {name: 'Vietnamese', id: 45} - } - - USER_AGENTS = [ - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0a2) Gecko/20111101 Firefox/9.0a2", - "Mozilla/5.0 (Windows NT 6.2; rv:9.0.1) Gecko/20100101 Firefox/9.0.1", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0", - "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0a2) Gecko/20110613 Firefox/6.0a2", - "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0a2) Gecko/20110612 Firefox/6.0a2", - "Mozilla/5.0 (X11; Linux i686; rv:6.0) Gecko/20100101 Firefox/6.0", - "Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0", - "Mozilla/5.0 (Windows NT 5.1; rv:6.0) Gecko/20100101 Firefox/6.0 FirePHP/0.6", - "Mozilla/5.0 (Windows NT 5.0; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0", - "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:5.0a2) Gecko/20110524 Firefox/5.0a2", - "Mozilla/5.0 (Windows NT 6.1; U; ru; rv:5.0.1.6) Gecko/20110501 Firefox/5.0.1 Firefox/5.0.1", - "Mozilla/3.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/5.0.1", - "Mozilla/5.0 (X11; U; Linux i586; de; rv:5.0) Gecko/20100101 Firefox/5.0", - "Mozilla/5.0 (X11; U; Linux amd64; rv:5.0) Gecko/20100101 Firefox/5.0 (Debian)", - "Mozilla/5.0 (X11; U; Linux amd64; en-US; rv:5.0) Gecko/20110619 Firefox/5.0", - "Mozilla/5.0 (X11; Linux) Gecko Firefox/5.0", - "Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0 FirePHP/0.5", - "Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0 Firefox/5.0", - "Mozilla/5.0 (X11; Linux x86_64) Gecko Firefox/5.0", - "Mozilla/5.0 (X11; Linux ppc; rv:5.0) Gecko/20100101 Firefox/5.0", - "Mozilla/5.0 (X11; Linux AMD64) Gecko Firefox/5.0", - "Mozilla/5.0 (X11; FreeBSD amd64; rv:5.0) Gecko/20100101 Firefox/5.0", - "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0", - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:5.0) Gecko/20110619 Firefox/5.0", - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:5.0) Gecko/20100101 Firefox/5.0", - "Mozilla/5.0 (Windows NT 6.1.1; rv:5.0) Gecko/20100101 Firefox/5.0", - "Mozilla/5.0 (Windows NT 5.2; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0", - "Mozilla/5.0 (Windows NT 5.1; U; rv:5.0) Gecko/20100101 Firefox/5.0", - "Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/5.0", - "Mozilla/5.0 (Windows NT 5.0; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0", - "Mozilla/5.0 (Windows NT 5.0; rv:5.0) Gecko/20100101 Firefox/5.0", - "Mozilla/5.0 (U; Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0", - "Mozilla/5.0 (X11; Linux x86_64; rv:2.2a1pre) Gecko/20110324 Firefox/4.2a1pre", - "Mozilla/5.0 (X11; Linux x86_64; rv:2.2a1pre) Gecko/20100101 Firefox/4.2a1pre", - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.2a1pre) Gecko/20110324 Firefox/4.2a1pre", - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.2a1pre) Gecko/20110323 Firefox/4.2a1pre", - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.2a1pre) Gecko/20110208 Firefox/4.2a1pre", - "Mozilla/5.0 (X11; Linux x86_64; rv:2.0b9pre) Gecko/20110111 Firefox/4.0b9pre", - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b9pre) Gecko/20101228 Firefox/4.0b9pre", - "Mozilla/5.0 (Windows NT 5.1; rv:2.0b9pre) Gecko/20110105 Firefox/4.0b9pre", - "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b8pre) Gecko/20101114 Firefox/4.0b8pre", - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b8pre) Gecko/20101213 Firefox/4.0b8pre", - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b8pre) Gecko/20101128 Firefox/4.0b8pre", - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b8pre) Gecko/20101114 Firefox/4.0b8pre", - "Mozilla/5.0 (Windows NT 5.1; rv:2.0b8pre) Gecko/20101127 Firefox/4.0b8pre", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0b8) Gecko/20100101 Firefox/4.0b8", - "Mozilla/4.0 (compatible; Intel Mac OS X 10.6; rv:2.0b8) Gecko/20100101 Firefox/4.0b8)", - "Mozilla/5.0 (Windows NT 6.1; rv:2.0b7pre) Gecko/20100921 Firefox/4.0b7pre", - "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b7) Gecko/20101111 Firefox/4.0b7", - "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b7) Gecko/20100101 Firefox/4.0b7", - "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b6pre) Gecko/20100903 Firefox/4.0b6pre", - "Mozilla/5.0 (Windows NT 6.1; rv:2.0b6pre) Gecko/20100903 Firefox/4.0b6pre Firefox/4.0b6pre", - "Mozilla/5.0 (X11; Linux x86_64; rv:2.0b4) Gecko/20100818 Firefox/4.0b4", - "Mozilla/5.0 (X11; Linux i686; rv:2.0b3pre) Gecko/20100731 Firefox/4.0b3pre", - "Mozilla/5.0 (Windows NT 5.2; rv:2.0b13pre) Gecko/20110304 Firefox/4.0b13pre", - "Mozilla/5.0 (Windows NT 5.1; rv:2.0b13pre) Gecko/20110223 Firefox/4.0b13pre", - "Mozilla/5.0 (X11; Linux i686; rv:2.0b12pre) Gecko/20110204 Firefox/4.0b12pre", - "Mozilla/5.0 (X11; Linux i686; rv:2.0b12pre) Gecko/20100101 Firefox/4.0b12pre", - "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b11pre) Gecko/20110128 Firefox/4.0b11pre", - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b11pre) Gecko/20110131 Firefox/4.0b11pre", - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b11pre) Gecko/20110129 Firefox/4.0b11pre", - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b11pre) Gecko/20110128 Firefox/4.0b11pre", - "Mozilla/5.0 (Windows NT 6.1; rv:2.0b11pre) Gecko/20110126 Firefox/4.0b11pre", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0b11pre) Gecko/20110126 Firefox/4.0b11pre", - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b10pre) Gecko/20110118 Firefox/4.0b10pre", - "Mozilla/5.0 (Windows NT 6.1; rv:2.0b10pre) Gecko/20110113 Firefox/4.0b10pre", - "Mozilla/5.0 (X11; Linux i686; rv:2.0b10) Gecko/20100101 Firefox/4.0b10", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:2.0b10) Gecko/20110126 Firefox/4.0b10", - "Mozilla/5.0 (Windows NT 6.1; rv:2.0b10) Gecko/20110126 Firefox/4.0b10", - "Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/20110506 Firefox/4.0.1", - "Mozilla/5.0 (X11; Linux i686; rv:2.0.1) Gecko/20110518 Firefox/4.0.1", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:2.0.1) Gecko/20110606 Firefox/4.0.1", - "Mozilla/5.0 (X11; U; Linux x86_64; pl-PL; rv:2.0) Gecko/20110307 Firefox/4.0", - "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:2.0) Gecko/20110404 Fedora/16-dev Firefox/4.0", - "Mozilla/5.0 (X11; Arch Linux i686; rv:2.0) Gecko/20110321 Firefox/4.0", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20110319 Firefox/4.0", - "Mozilla/5.0 (Windows NT 6.1; rv:1.9) Gecko/20100101 Firefox/4.0", - "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.2) Gecko/20121223 Ubuntu/9.25 (jaunty) Firefox/3.8", - "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.2) Gecko/2008092313 Ubuntu/9.25 (jaunty) Firefox/3.8", - "Mozilla/5.0 (X11; U; Linux i686; it-IT; rv:1.9.0.2) Gecko/2008092313 Ubuntu/9.25 (jaunty) Firefox/3.8", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Mozilla/5.0 (X11; U; Linux i686; it-IT; rv:1.9.0.2) Gecko/2008092313 Ubuntu/9.25 (jaunty) Firefox/3.8", - "Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.3a5pre) Gecko/20100526 Firefox/3.7a5pre", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2b5) Gecko/20091204 Firefox/3.6b5", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2b5) Gecko/20091204 Firefox/3.6b5", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.2b5) Gecko/20091204 Firefox/3.6b5", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.2b4) Gecko/20091124 Firefox/3.6b4 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2b4) Gecko/20091124 Firefox/3.6b4", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2b1) Gecko/20091014 Firefox/3.6b1 GTB5", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2a1pre) Gecko/20090428 Firefox/3.6a1pre", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2a1pre) Gecko/20090405 Firefox/3.6a1pre", - "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2a1pre) Gecko/20090405 Ubuntu/9.04 (jaunty) Firefox/3.6a1pre", - "Mozilla/5.0 (Windows; Windows NT 5.1; es-ES; rv:1.9.2a1pre) Gecko/20090402 Firefox/3.6a1pre", - "Mozilla/5.0 (Windows; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20090402 Firefox/3.6a1pre", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2a1pre) Gecko/20090402 Firefox/3.6a1pre (.NET CLR 3.5.30729)", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20100915 Gentoo Firefox/3.6.9", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.9) Gecko/20100827 Red Hat/3.6.9-2.el6 Firefox/3.6.9", - "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.9.2.9) Gecko/20100913 Firefox/3.6.9", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9 ( .NET CLR 3.5.30729; .NET CLR 4.0.20506)", - "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-GB; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6;en-US; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9", - "Mozilla/5.0 (X11; U; OpenBSD i386; en-US; rv:1.9.2.8) Gecko/20101230 Firefox/3.6.8", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100804 Gentoo Firefox/3.6.8", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100723 SUSE/3.6.8-0.1.1 Firefox/3.6.8", - "Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.2.8) Gecko/20100722 Ubuntu/10.04 (lucid) Firefox/3.6.8", - "Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8", - "Mozilla/5.0 (X11; U; Linux i686; fi-FI; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.8) Gecko/20100727 Firefox/3.6.8", - "Mozilla/5.0 (X11; U; Linux i686; de-DE; rv:1.9.2.8) Gecko/20100725 Gentoo Firefox/3.6.8", - "Mozilla/5.0 (X11; U; FreeBSD i386; de-CH; rv:1.9.2.8) Gecko/20100729 Firefox/3.6.8", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; pt-BR; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; it; rv:1.9.2.8) Gecko/20100722 AskTbADAP/3.9.1.14019 Firefox/3.6.8", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; he; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2.8) Gecko/20100722 Firefox 3.6.8 GTB7.1", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729; .NET4.0C)", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.8) Gecko/20100722 Firefox 3.6.8", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.3) Gecko/20121221 Firefox/3.6.8", - "Mozilla/5.0 (Windows; U; Windows NT 5.2; zh-TW; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; tr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729; .NET4.0E)", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.7) Gecko/20100809 Fedora/3.6.7-1.fc14 Firefox/3.6.7", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.7) Gecko/20100723 Fedora/3.6.7-1.fc13 Firefox/3.6.7", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.7) Gecko/20100726 CentOS/3.6-3.el5.centos Firefox/3.6.7", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; hu; rv:1.9.2.7) Gecko/20100713 Firefox/3.6.7 GTB7.1", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.7 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-PT; rv:1.9.2.7) Gecko/20100713 Firefox/3.6.7 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.6) Gecko/20100628 Ubuntu/10.04 (lucid) Firefox/3.6.6 GTB7.1", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.6) Gecko/20100628 Ubuntu/10.04 (lucid) Firefox/3.6.6 GTB7.0", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.6) Gecko/20100628 Ubuntu/10.04 (lucid) Firefox/3.6.6 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.6) Gecko/20100628 Ubuntu/10.04 (lucid) Firefox/3.6.6", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; pt-PT; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; it; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-CN; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 GTB7.1", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; nl; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 ( .NET CLR 3.5.30729; .NET4.0E)", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; de-AT; rv:1.9.1.8) Gecko/20100625 Firefox/3.6.6", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.4) Gecko/20100614 Ubuntu/10.04 (lucid) Firefox/3.6.4", - "Mozilla/5.0 (X11; U; Linux i686; fa; rv:1.8.1.4) Gecko/20100527 Firefox/3.6.4", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.4) Gecko/20100625 Gentoo Firefox/3.6.4", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-TW; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.4) Gecko/20100513 Firefox/3.6.4", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4 GTB7.1", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; cs; rv:1.9.2.4) Gecko/20100513 Firefox/3.6.4 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-CN; rv:1.9.2.4) Gecko/20100513 Firefox/3.6.4", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.9.2.4) Gecko/20100513 Firefox/3.6.4 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.2.4) Gecko/20100523 Firefox/3.6.4 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.4) Gecko/20100527 Firefox/3.6.4 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.4) Gecko/20100527 Firefox/3.6.4", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.4) Gecko/20100523 Firefox/3.6.4 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.4) Gecko/20100513 Firefox/3.6.4 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-CA; rv:1.9.2.4) Gecko/20100523 Firefox/3.6.4", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4 GTB7.0 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.4) Gecko/20100513 Firefox/3.6.4 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.4) Gecko/20100503 Firefox/3.6.4 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; nb-NO; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; ko; rv:1.9.2.4) Gecko/20100523 Firefox/3.6.4", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3pre) Gecko/20100405 Firefox/3.6.3plugin1 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; he; rv:1.9.1b4pre) Gecko/20100405 Firefox/3.6.3plugin1", - "Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.2.3) Gecko/20100403 Fedora/3.6.3-4.fc13 Firefox/3.6.3", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.3) Gecko/20100403 Firefox/3.6.3", - "Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2.3) Gecko/20100401 SUSE/3.6.3-1.1 Firefox/3.6.3", - "Mozilla/5.0 (X11; U; Linux i686; ko-KR; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100404 Ubuntu/10.04 (lucid) Firefox/3.6.3", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB7.1", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.3", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3", - "Mozilla/5.0 (X11; U; Linux AMD64; en-US; rv:1.9.2.3) Gecko/20100403 Ubuntu/10.10 (maverick) Firefox/3.6.3", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; it; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; hu; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB7.1", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB7.1", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB7.0 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; cs; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; ca; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.25) Gecko/20111212 Firefox/3.6.25 ( .NET CLR 3.5.30729; .NET4.0C)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.2.24) Gecko/20111103 Firefox/3.6.24", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.24) Gecko/20111103 Firefox/3.6.24", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; fr; rv:1.9.2.23) Gecko/20110920 Firefox/3.6.23", - "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en-US; rv:1.9.2.22) Gecko/20110902 Firefox/3.6.22", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.21) Gecko/20110830 Ubuntu/10.10 (maverick) Firefox/3.6.21", - "Mozilla/5.0 (X11; U; OpenBSD i386; en-US; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20", - "Mozilla/5.0 (X11; U; Linux x86_64; it; rv:1.9.2.20) Gecko/20110805 Ubuntu/10.04 (lucid) Firefox/3.6.20", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.20) Gecko/20110804 Red Hat/3.6-2.el5 Firefox/3.6.20", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; hu; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20", - "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20 ( .NET CLR 3.5.30729; .NET4.0E)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; hu; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.20) Gecko/20110803 AskTbFWV5/3.13.0.17701 Firefox/3.6.20 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; cs; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20", - "Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 GTB7.0", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.2) Gecko/20100316 AskTbSPC2/3.9.1.14019 Firefox/3.6.2", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 GTB6 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 ( .NET CLR 3.0.04506.648)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 ( .NET CLR 3.0.04506.30)", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.7; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.10pre) Gecko/20100902 Ubuntu/9.10 (karmic) Firefox/3.6.1pre", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.19", - "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en-GB; rv:1.9.2.19) Gecko/20110707 Firefox/3.6.19", - "Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.10 (maverick) Firefox/3.6.18", - "Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18 ( .NET CLR 3.5.30729; .NET4.0E)", - "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.10 (maverick) Firefox/3.6.18", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.10 (maverick) Firefox/3.6.18", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.18) Gecko/20110615 Ubuntu/10.10 (maverick) Firefox/3.6.18", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; pt-BR; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; ar; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; pt-BR; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18 ( .NET CLR 3.5.30729; .NET4.0E)", - "Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-GB; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17", - "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:5.0) Gecko/20100101 Firefox/3.6.17 Firefox/3.6.17", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; tr; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; sl; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17 ( .NET CLR 3.5.30729; .NET4.0E)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; hu; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17 ( .NET CLR 3.5.30729; .NET4.0E)", - "Mozilla/5.0 (X11; U; Linux x86_64; ja-JP; rv:1.9.2.16) Gecko/20110323 Ubuntu/10.10 (maverick) Firefox/3.6.16", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.16) Gecko/20110323 Ubuntu/9.10 (karmic) Firefox/3.6.16 FirePHP/0.5", - "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; ko; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16 ( .NET CLR 3.5.30729; .NET4.0E)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en; rv:1.9.1.13) Gecko/20100914 Firefox/3.6.16", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.16) Gecko/20110319 AskTbUTR/3.11.3.15590 Firefox/3.6.16", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.16pre) Gecko/20110304 Ubuntu/10.10 (maverick) Firefox/3.6.15pre", - "Mozilla/5.0 (X11; U; Linux i686; nl; rv:1.9.2.15) Gecko/20110303 Ubuntu/8.04 (hardy) Firefox/3.6.15", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.15) Gecko/20110303 Ubuntu/10.04 (lucid) Firefox/3.6.15 FirePHP/0.5", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.15) Gecko/20110330 CentOS/3.6-1.el5.centos Firefox/3.6.15", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15 ( .NET CLR 3.5.30729; .NET4.0C) FirePHP/0.5", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.2.15) Gecko/20110303 AskTbBT4/3.11.3.15590 Firefox/3.6.15 ( .NET CLR 3.5.30729; .NET4.0C)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14pre) Gecko/20110105 Firefox/3.6.14pre", - "Mozilla/5.0 (X11; U; Linux armv7l; en-US; rv:1.9.2.14) Gecko/20110224 Firefox/3.6.14 MB860/Version.0.43.3.MB860.AmericaMovil.en.MX", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.14) Gecko/20110218 Firefox/3.6.14", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-AU; rv:1.9.2.14) Gecko/20110218 Firefox/3.6.14", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.14) Gecko/20110218 Firefox/3.6.14 GTB7.1 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.13) Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux x86_64; pl-PL; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.04 (lucid) Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux x86_64; nb-NO; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.04 (lucid) Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux x86_64; it; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.04 (lucid) Firefox/3.6.13 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.2.13) Gecko/20110103 Fedora/3.6.13-1.fc14 Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101223 Gentoo Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101219 Gentoo Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101206 Red Hat/3.6-3.el4 Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101206 Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux x86_64; en-NZ; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.9.2.13) Gecko/20101206 Ubuntu/9.10 (karmic) Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.9.2.13) Gecko/20101206 Red Hat/3.6-2.el5 Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux x86_64; da-DK; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux MIPS32 1074Kf CPS QuadCore; en-US; rv:1.9.2.13) Gecko/20110103 Fedora/3.6.13-1.fc14 Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.2.13) Gecko/20101209 Fedora/3.6.13-1.fc13 Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.9.2.13) Gecko/20101206 Ubuntu/9.10 (karmic) Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.13) Gecko/20101209 CentOS/3.6-2.el5.centos Firefox/3.6.13", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13", - "Mozilla/5.0 (X11; U; NetBSD i386; en-US; rv:1.9.2.12) Gecko/20101030 Firefox/3.6.12", - "Mozilla/5.0 (X11; U; Linux x86_64; es-MX; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.04 (lucid) Firefox/3.6.12", - "Mozilla/5.0 (X11; U; Linux x86_64; es-ES; rv:1.9.2.12) Gecko/20101027 Fedora/3.6.12-1.fc13 Firefox/3.6.12", - "Mozilla/5.0 (X11; U; Linux x86_64; es-ES; rv:1.9.2.12) Gecko/20101026 SUSE/3.6.12-0.7.1 Firefox/3.6.12", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.12) Gecko/20101102 Gentoo Firefox/3.6.12", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.12) Gecko/20101102 Firefox/3.6.12", - "Mozilla/5.0 (X11; U; Linux ppc; fr; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.10 (maverick) Firefox/3.6.12", - "Mozilla/5.0 (X11; U; Linux i686; ko-KR; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.10 (maverick) Firefox/3.6.12", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.12) Gecko/20101114 Gentoo Firefox/3.6.12", - "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.10 (maverick) Firefox/3.6.12 GTB7.1", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.12) Gecko/20101027 Fedora/3.6.12-1.fc13 Firefox/3.6.12", - "Mozilla/5.0 (X11; FreeBSD x86_64; rv:2.0) Gecko/20100101 Firefox/3.6.12", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 ( .NET CLR 3.5.30729; .NET4.0E)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; .NET CLR 3.5.21022)", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB5", - "Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.2.11) Gecko/20101028 CentOS/3.6-2.el5.centos Firefox/3.6.11", - "Mozilla/5.0 (X11; U; Linux armv7l; en-GB; rv:1.9.2.3pre) Gecko/20100723 Firefox/3.6.11", - "Mozilla/5.0 (Windows; U; Windows NT 5.2; ru; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10", - "Mozilla/5.0 (X11; U; Linux x86_64; pt-BR; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10", - "Mozilla/5.0 (X11; U; Linux x86_64; pl-PL; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10 GTB7.1", - "Mozilla/5.0 (X11; U; Linux x86_64; el-GR; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10", - "Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10 GTB7.1", - "Mozilla/5.0 (X11; U; Linux x86_64; cs-CZ; rv:1.9.2.10) Gecko/20100915 Ubuntu/10.04 (lucid) Firefox/3.6.10", - "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.10) Gecko/20100915 Ubuntu/10.04 (lucid) Firefox/3.6.10", - "Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10", - "Mozilla/5.0 (X11; U; Linux i686; es-AR; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.10) Gecko/20100915 Ubuntu/9.04 (jaunty) Firefox/3.6.10", - "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.2.11) Gecko/20101013 Ubuntu/10.10 (maverick) Firefox/3.6.10", - "Mozilla/5.0 (X11; U; Linux i686; en-CA; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.10) Gecko/20100915 Ubuntu/9.10 (karmic) Firefox/3.6.10", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.10) Gecko/20100915 Ubuntu/10.04 (lucid) Firefox/3.6.10", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.10) Gecko/20100914 SUSE/3.6.10-0.3.1 Firefox/3.6.10", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; ro; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; nl; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.1) Gecko/20100122 firefox/3.6.1", - "Mozilla/5.0(Windows; U; Windows NT 7.0; rv:1.9.2) Gecko/20100101 Firefox/3.6", - "Mozilla/5.0(Windows; U; Windows NT 5.2; rv:1.9.2) Gecko/20100101 Firefox/3.6", - "Mozilla/5.0 (X11; U; x86_64 Linux; en_GB, en_US; rv:1.9.2) Gecko/20100115 Firefox/3.6", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2) Gecko/20100222 Ubuntu/10.04 (lucid) Firefox/3.6", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2) Gecko/20100130 Gentoo Firefox/3.6", - "Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2) Gecko/20100308 Ubuntu/10.04 (lucid) Firefox/3.6", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.2pre) Gecko/20100312 Ubuntu/9.04 (jaunty) Firefox/3.6", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2) Gecko/20100128 Gentoo Firefox/3.6", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2) Gecko/20100115 Ubuntu/10.04 (lucid) Firefox/3.6", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 FirePHP/0.4", - "Mozilla/5.0 (X11; Linux i686; rv:2.0) Gecko/20100101 Firefox/3.6", - "Mozilla/5.0 (X11; FreeBSD i686) Firefox/3.6", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru-RU; rv:1.9.2) Gecko/20100105 MRA 5.6 (build 03278) Firefox/3.6 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; lt; rv:1.9.2) Gecko/20100115 Firefox/3.6", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.3a3pre) Gecko/20100306 Firefox3.6 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.8) Gecko/20100806 Firefox/3.6", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.17) Gecko/20110420 Firefox/3.6", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.3) Gecko/20100401 Firefox/3.6;MEGAUPLOAD 1.0", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; ar; rv:1.9.2) Gecko/20100115 Firefox/3.6", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2) Gecko/20100115 Firefox/3.6", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b5pre) Gecko/20090517 Firefox/3.5b4pre (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b4pre) Gecko/20090409 Firefox/3.5b4pre", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b4pre) Gecko/20090401 Firefox/3.5b4pre", - "Mozilla/5.0 (X11; U; Linux i686; nl-NL; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4 GTB5 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; fr; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4 GTB5", - "Mozilla/5.0 (X11; U; Linux x86_64; it; rv:1.9.1.9) Gecko/20100402 Ubuntu/9.10 (karmic) Firefox/3.5.9 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (X11; U; Linux x86_64; it; rv:1.9.1.9) Gecko/20100330 Fedora/3.5.9-2.fc12 Firefox/3.5.9", - "Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.1.9) Gecko/20100317 SUSE/3.5.9-0.1.1 Firefox/3.5.9 GTB7.0", - "Mozilla/5.0 (X11; U; Linux x86_64; es-CL; rv:1.9.1.9) Gecko/20100402 Ubuntu/9.10 (karmic) Firefox/3.5.9", - "Mozilla/5.0 (X11; U; Linux x86_64; cs-CZ; rv:1.9.1.9) Gecko/20100317 SUSE/3.5.9-0.1.1 Firefox/3.5.9", - "Mozilla/5.0 (X11; U; Linux i686; nl; rv:1.9.1.9) Gecko/20100401 Ubuntu/9.10 (karmic) Firefox/3.5.9", - "Mozilla/5.0 (X11; U; Linux i686; hu-HU; rv:1.9.1.9) Gecko/20100330 Fedora/3.5.9-1.fc12 Firefox/3.5.9", - "Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.9.1.9) Gecko/20100317 SUSE/3.5.9-0.1 Firefox/3.5.9", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.9) Gecko/20100401 Ubuntu/9.10 (karmic) Firefox/3.5.9 GTB7.1", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.9) Gecko/20100315 Ubuntu/9.10 (karmic) Firefox/3.5.9", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.4) Gecko/20091028 Ubuntu/9.10 (karmic) Firefox/3.5.9", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; tr; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9 GTB7.1", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; hu; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; et; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; nl; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; es-ES; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9 GTB5 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2.13) Gecko/20101203 Firefox/3.5.9 (de)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9 GTB7.0 (.NET CLR 3.0.30618)", - "Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.1.8) Gecko/20100216 Fedora/3.5.8-1.fc12 Firefox/3.5.8", - "Mozilla/5.0 (X11; U; Linux x86_64; es-ES; rv:1.9.1.8) Gecko/20100216 Fedora/3.5.8-1.fc11 Firefox/3.5.8", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.8) Gecko/20100318 Gentoo Firefox/3.5.8", - "Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.1.8) Gecko/20100216 Fedora/3.5.8-1.fc12 Firefox/3.5.8", - "Mozilla/5.0 (X11; U; Linux i686; ja-JP; rv:1.9.1.8) Gecko/20100216 Fedora/3.5.8-1.fc12 Firefox/3.5.8", - "Mozilla/5.0 (X11; U; Linux i686; es-AR; rv:1.9.1.8) Gecko/20100214 Ubuntu/9.10 (karmic) Firefox/3.5.8", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.8) Gecko/20100214 Ubuntu/9.10 (karmic) Firefox/3.5.8", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8", - "Mozilla/5.0 (X11; U; FreeBSD i386; ja-JP; rv:1.9.1.8) Gecko/20100305 Firefox/3.5.8", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; sl; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8 (.NET CLR 3.5.30729) FirePHP/0.4", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8 GTB6", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8 GTB7.0 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2) Gecko/20100305 Gentoo Firefox/3.5.7", - "Mozilla/5.0 (X11; U; Linux x86_64; cs-CZ; rv:1.9.1.7) Gecko/20100106 Ubuntu/9.10 (karmic) Firefox/3.5.7", - "Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.9.1.7) Gecko/20091222 SUSE/3.5.7-1.1.1 Firefox/3.5.7", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 GTB6", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.2; fr; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.0.04506.648)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; fa; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.7) Gecko/20091221 MRA 5.5 (build 02842) Firefox/3.5.7 (.NET CLR 3.5.30729)", - " Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.1.6) Gecko/20091215 Ubuntu/9.10 (karmic) Firefox/3.5.6", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.6) Gecko/20100117 Gentoo Firefox/3.5.6", - "Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.1.6) Gecko/20091216 Fedora/3.5.6-1.fc11 Firefox/3.5.6 GTB6", - "Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.9.1.6) Gecko/20091201 SUSE/3.5.6-1.1.1 Firefox/3.5.6 GTB6", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.6) Gecko/20100118 Gentoo Firefox/3.5.6", - "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.1.6) Gecko/20091215 Ubuntu/9.10 (karmic) Firefox/3.5.6 GTB6", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.6) Gecko/20091215 Ubuntu/9.10 (karmic) Firefox/3.5.6 GTB7.0", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.6) Gecko/20091215 Ubuntu/9.10 (karmic) Firefox/3.5.6", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.6) Gecko/20091201 SUSE/3.5.6-1.1.1 Firefox/3.5.6", - "Mozilla/5.0 (X11; U; Linux i686; cs-CZ; rv:1.9.1.6) Gecko/20100107 Fedora/3.5.6-1.fc12 Firefox/3.5.6", - "Mozilla/5.0 (X11; U; Linux i686; ca; rv:1.9.1.6) Gecko/20091215 Ubuntu/9.10 (karmic) Firefox/3.5.6", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; it; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; id; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.6) Gecko/20091201 MRA 5.4 (build 02647) Firefox/3.5.6 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6) Gecko/20091201 MRA 5.5 (build 02842) Firefox/3.5.6 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6) Gecko/20091201 MRA 5.5 (build 02842) Firefox/3.5.6", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 GTB6 (.NET CLR 3.5.30729) FBSMTWB", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729) FBSMTWB", - "Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.1.5) Gecko/20091109 Ubuntu/9.10 (karmic) Firefox/3.5.5", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.8pre) Gecko/20091227 Ubuntu/9.10 (karmic) Firefox/3.5.5", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091114 Gentoo Firefox/3.5.5", - "Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; uk; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 MRA 5.5 (build 02842) Firefox/3.5.5", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.1.5) Gecko/20091102 MRA 5.5 (build 02842) Firefox/3.5.5", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.2; zh-CN; rv:1.9.1.5) Gecko/Firefox/3.5.5", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 MRA 5.5 (build 02842) Firefox/3.5.5 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 MRA 5.5 (build 02842) Firefox/3.5.5", - "Mozilla/5.0 (Windows NT 5.1; U; zh-cn; rv:1.8.1) Gecko/20091102 Firefox/3.5.5", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; pl; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 FBSMTWB", - "Mozilla/5.0 (X11; U; Linux x86_64; ja; rv:1.9.1.4) Gecko/20091016 SUSE/3.5.4-1.1.2 Firefox/3.5.4", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4 (.NET CLR 3.5.30729) FBSMTWB", - "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.4) Gecko/20091007 Firefox/3.5.4", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4 ( .NET CLR 3.5.30729; .NET4.0E)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.4) Gecko/20091007 Firefox/3.5.4", - "Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.1.5) Gecko/20091109 Ubuntu/9.10 (karmic) Firefox/3.5.3pre", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090914 Slackware/13.0_stable Firefox/3.5.3", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3", - "Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.1.3) Gecko/20091020 Ubuntu/9.10 (karmic) Firefox/3.5.3", - "Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.3) Gecko/20090919 Firefox/3.5.3", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.3) Gecko/20090912 Gentoo Firefox/3.5.3 FirePHP/0.3", - "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 GTB5", - "Mozilla/5.0 (X11; U; FreeBSD i386; ru-RU; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.5.3;MEGAUPLOAD 1.0 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; de-DE; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; ko; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; fi; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 2.0.50727; .NET CLR 3.0.30618; .NET CLR 3.5.21022; .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; bg; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; ko; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (X11; U; Linux x86_64; pl; rv:1.9.1.2) Gecko/20090911 Slackware Firefox/3.5.2", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.2) Gecko/20090803 Slackware Firefox/3.5.2", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.2) Gecko/20090803 Firefox/3.5.2 Slackware", - "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.1.2) Gecko/20090804 Firefox/3.5.2", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2) Gecko/20090729 Slackware/13.0 Firefox/3.5.2", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2", - "Mozilla/5.0 (X11; U; Linux i686 (x86_64); fr; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB7.1 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; es-MX; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; uk; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.16) Gecko/20101130 Firefox/3.5.16 FirePHP/0.4", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.16) Gecko/20101130 AskTbMYC/3.9.1.14019 Firefox/3.5.16", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; it; rv:1.9.1.16) Gecko/20101130 Firefox/3.5.16 GTB7.1 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.16) Gecko/20101130 MRA 5.4 (build 02647) Firefox/3.5.16 ( .NET CLR 3.5.30729; .NET4.0C)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.16) Gecko/20101130 Firefox/3.5.16 GTB7.1", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.16) Gecko/20101130 AskTbPLTV5/3.8.0.12304 Firefox/3.5.16 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.1.16) Gecko/20101130 Firefox/3.5.16 GTB7.1 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.1.16) Gecko/20101130 Firefox/3.5.16 GTB7.1", - "Mozilla/5.0 (X11; U; Linux x86_64; it; rv:1.9.1.15) Gecko/20101027 Fedora/3.5.15-1.fc12 Firefox/3.5.15", - "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.1.15) Gecko/20101027 Fedora/3.5.15-1.fc12 Firefox/3.5.15", - "Mozilla/5.0 (Windows; U; Windows NT 5.0; ru; rv:1.9.1.13) Gecko/20100914 Firefox/3.5.13", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.12) Gecko/2009070611 Firefox/3.5.12", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.12) Gecko/20100824 MRA 5.7 (build 03755) Firefox/3.5.12", - "Mozilla/5.0 (X11; U; Linux; en-US; rv:1.9.1.11) Gecko/20100720 Firefox/3.5.11", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.11) Gecko/20100701 Firefox/3.5.11 ( .NET CLR 3.5.30729; .NET4.0C)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.9.1.11) Gecko/20100701 Firefox/3.5.11 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; hu; rv:1.9.1.11) Gecko/20100701 Firefox/3.5.11", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.10) Gecko/20100504 Firefox/3.5.11 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.1.10) Gecko/20100506 SUSE/3.5.10-0.1.1 Firefox/3.5.10", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.1.10) Gecko/20100504 Firefox/3.5.10 GTB7.0 ( .NET CLR 3.5.30729)", - "Mozilla/5.0 (X11; U; Linux x86_64; rv:1.9.1.1) Gecko/20090716 Linux Firefox/3.5.1", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.3) Gecko/20100524 Firefox/3.5.1", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.1) Gecko/20090716 Linux Mint/7 (Gloria) Firefox/3.5.1", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.1) Gecko/20090716 Firefox/3.5.1", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.1) Gecko/20090714 SUSE/3.5.1-1.1 Firefox/3.5.1", - "Mozilla/5.0 (X11; U; Linux x86; rv:1.9.1.1) Gecko/20090716 Linux Firefox/3.5.1", - "Mozilla/5.0 (X11; U; Linux i686; nl; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1", - "Mozilla/5.0 (X11; U; Linux i686; nl-NL; rv:1.9.0.19) Gecko/20090720 Firefox/3.5.1", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2pre) Gecko/20090729 Ubuntu/9.04 (jaunty) Firefox/3.5.1", - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1 GTB5", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.1) Gecko/20090722 Gentoo Firefox/3.5.1", - "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.1) Gecko/20090714 SUSE/3.5.1-1.1 Firefox/3.5.1", - "Mozilla/5.0 (X11; U; DragonFly i386; de; rv:1.9.1) Gecko/20090720 Firefox/3.5.1", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.1) Gecko/20090718 Firefox/3.5.1", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; tr; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1 (.NET CLR 3.5.30729)", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1 (.NET CLR 3.5.30729)", - "Opera/9.80 (Windows NT 6.1; U; es-ES) Presto/2.9.181 Version/12.00", - "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52", - "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; de) Presto/2.9.168 Version/11.52", - "Opera/9.80 (Windows NT 5.1; U; en) Presto/2.9.168 Version/11.51", - "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; de) Opera 11.51", - "Opera/9.80 (X11; Linux x86_64; U; fr) Presto/2.9.168 Version/11.50", - "Opera/9.80 (X11; Linux i686; U; hu) Presto/2.9.168 Version/11.50", - "Opera/9.80 (X11; Linux i686; U; ru) Presto/2.8.131 Version/11.11", - "Opera/9.80 (X11; Linux i686; U; es-ES) Presto/2.8.131 Version/11.11", - "Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/5.0 Opera 11.11", - "Opera/9.80 (X11; Linux x86_64; U; bg) Presto/2.8.131 Version/11.10", - "Opera/9.80 (Windows NT 6.0; U; en) Presto/2.8.99 Version/11.10", - "Opera/9.80 (Windows NT 5.1; U; zh-tw) Presto/2.8.131 Version/11.10", - "Opera/9.80 (Windows NT 6.1; Opera Tablet/15165; U; en) Presto/2.8.149 Version/11.1", - "Opera/9.80 (X11; Linux x86_64; U; Ubuntu/10.10 (maverick); pl) Presto/2.7.62 Version/11.01", - "Opera/9.80 (X11; Linux i686; U; ja) Presto/2.7.62 Version/11.01", - "Opera/9.80 (X11; Linux i686; U; fr) Presto/2.7.62 Version/11.01", - "Opera/9.80 (Windows NT 6.1; U; zh-tw) Presto/2.7.62 Version/11.01", - "Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.7.62 Version/11.01", - "Opera/9.80 (Windows NT 6.1; U; sv) Presto/2.7.62 Version/11.01", - "Opera/9.80 (Windows NT 6.1; U; en-US) Presto/2.7.62 Version/11.01", - "Opera/9.80 (Windows NT 6.1; U; cs) Presto/2.7.62 Version/11.01", - "Opera/9.80 (Windows NT 6.0; U; pl) Presto/2.7.62 Version/11.01", - "Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.7.62 Version/11.01", - "Opera/9.80 (Windows NT 5.1; U;) Presto/2.7.62 Version/11.01", - "Opera/9.80 (Windows NT 5.1; U; cs) Presto/2.7.62 Version/11.01", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101213 Opera/9.80 (Windows NT 6.1; U; zh-tw) Presto/2.7.62 Version/11.01", - "Mozilla/5.0 (Windows NT 6.1; U; nl; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 11.01", - "Mozilla/5.0 (Windows NT 6.1; U; de; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 11.01", - "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; de) Opera 11.01", - "Opera/9.80 (X11; Linux x86_64; U; pl) Presto/2.7.62 Version/11.00", - "Opera/9.80 (X11; Linux i686; U; it) Presto/2.7.62 Version/11.00", - "Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.6.37 Version/11.00", - "Opera/9.80 (Windows NT 6.1; U; pl) Presto/2.7.62 Version/11.00", - "Opera/9.80 (Windows NT 6.1; U; ko) Presto/2.7.62 Version/11.00", - "Opera/9.80 (Windows NT 6.1; U; fi) Presto/2.7.62 Version/11.00", - "Opera/9.80 (Windows NT 6.1; U; en-GB) Presto/2.7.62 Version/11.00", - "Opera/9.80 (Windows NT 6.1 x64; U; en) Presto/2.7.62 Version/11.00", - "Opera/9.80 (Windows NT 6.0; U; en) Presto/2.7.39 Version/11.00", - "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.39 Version/11.00", - "Opera/9.80 (Windows NT 5.1; U; MRA 5.5 (build 02842); ru) Presto/2.7.62 Version/11.00", - "Opera/9.80 (Windows NT 5.1; U; it) Presto/2.7.62 Version/11.00", - "Mozilla/5.0 (Windows NT 6.0; U; ja; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 11.00", - "Mozilla/5.0 (Windows NT 5.1; U; pl; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 11.00", - "Mozilla/5.0 (Windows NT 5.1; U; de; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 11.00", - "Mozilla/4.0 (compatible; MSIE 8.0; X11; Linux x86_64; pl) Opera 11.00", - "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; fr) Opera 11.00", - "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; ja) Opera 11.00", - "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; en) Opera 11.00", - "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; pl) Opera 11.00", - "Opera/9.80 (Windows NT 6.1; U; pl) Presto/2.6.31 Version/10.70", - "Mozilla/5.0 (Windows NT 5.2; U; ru; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.70", - "Mozilla/5.0 (Windows NT 5.1; U; zh-cn; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.70", - "Opera/9.80 (Windows NT 5.2; U; zh-cn) Presto/2.6.30 Version/10.63", - "Opera/9.80 (Windows NT 5.2; U; en) Presto/2.6.30 Version/10.63", - "Opera/9.80 (Windows NT 5.1; U; MRA 5.6 (build 03278); ru) Presto/2.6.30 Version/10.63", - "Opera/9.80 (Windows NT 5.1; U; pl) Presto/2.6.30 Version/10.62", - "Mozilla/5.0 (X11; Linux x86_64; U; de; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.62", - "Mozilla/4.0 (compatible; MSIE 8.0; X11; Linux x86_64; de) Opera 10.62", - "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; en) Opera 10.62", - "Opera/9.80 (X11; Linux i686; U; pl) Presto/2.6.30 Version/10.61", - "Opera/9.80 (X11; Linux i686; U; es-ES) Presto/2.6.30 Version/10.61", - "Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.6.30 Version/10.61", - "Opera/9.80 (Windows NT 6.1; U; en) Presto/2.6.30 Version/10.61", - "Opera/9.80 (Windows NT 6.0; U; it) Presto/2.6.30 Version/10.61", - "Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.6.30 Version/10.61", - "Opera/9.80 (Windows 98; U; de) Presto/2.6.30 Version/10.61", - "Opera/9.80 (Macintosh; Intel Mac OS X; U; nl) Presto/2.6.30 Version/10.61", - "Opera/9.80 (X11; Linux i686; U; en) Presto/2.5.27 Version/10.60", - "Opera/9.80 (Windows NT 6.0; U; nl) Presto/2.6.30 Version/10.60", - "Opera/10.60 (Windows NT 5.1; U; zh-cn) Presto/2.6.30 Version/10.60", - "Opera/10.60 (Windows NT 5.1; U; en-US) Presto/2.6.30 Version/10.60", - "Opera/9.80 (X11; Linux i686; U; it) Presto/2.5.24 Version/10.54", - "Opera/9.80 (X11; Linux i686; U; en-GB) Presto/2.5.24 Version/10.53", - "Mozilla/5.0 (Windows NT 5.1; U; zh-cn; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.53", - "Mozilla/5.0 (Windows NT 5.1; U; Firefox/5.0; en; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.53", - "Mozilla/5.0 (Windows NT 5.1; U; Firefox/4.5; en; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.53", - "Mozilla/5.0 (Windows NT 5.1; U; Firefox/3.5; en; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.53", - "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; ko) Opera 10.53", - "Opera/9.80 (Windows NT 6.1; U; fr) Presto/2.5.24 Version/10.52", - "Opera/9.80 (Windows NT 6.1; U; en) Presto/2.5.22 Version/10.51", - "Opera/9.80 (Windows NT 6.0; U; cs) Presto/2.5.22 Version/10.51", - "Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.5.22 Version/10.51", - "Opera/9.80 (Linux i686; U; en) Presto/2.5.22 Version/10.51", - "Mozilla/5.0 (Windows NT 6.1; U; en-GB; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.51", - "Mozilla/5.0 (Linux i686; U; en; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.51", - "Mozilla/4.0 (compatible; MSIE 8.0; Linux i686; en) Opera 10.51", - "Opera/9.80 (Windows NT 6.1; U; zh-tw) Presto/2.5.22 Version/10.50", - "Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.5.22 Version/10.50", - "Opera/9.80 (Windows NT 6.1; U; sk) Presto/2.6.22 Version/10.50", - "Opera/9.80 (Windows NT 6.1; U; ja) Presto/2.5.22 Version/10.50", - "Opera/9.80 (Windows NT 6.0; U; zh-cn) Presto/2.5.22 Version/10.50", - "Opera/9.80 (Windows NT 5.1; U; sk) Presto/2.5.22 Version/10.50", - "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.5.22 Version/10.50", - "Opera/10.50 (Windows NT 6.1; U; en-GB) Presto/2.2.2", - "Opera/9.80 (S60; SymbOS; Opera Tablet/9174; U; en) Presto/2.7.81 Version/10.5", - "Opera/9.80 (X11; U; Linux i686; en-US; rv:1.9.2.3) Presto/2.2.15 Version/10.10", - "Opera/9.80 (X11; Linux x86_64; U; it) Presto/2.2.15 Version/10.10", - "Opera/9.80 (Windows NT 6.1; U; de) Presto/2.2.15 Version/10.10", - "Opera/9.80 (Windows NT 6.0; U; Gecko/20100115; pl) Presto/2.2.15 Version/10.10", - "Opera/9.80 (Windows NT 6.0; U; en) Presto/2.2.15 Version/10.10", - "Opera/9.80 (Windows NT 5.1; U; de) Presto/2.2.15 Version/10.10", - "Opera/9.80 (Windows NT 5.1; U; cs) Presto/2.2.15 Version/10.10", - "Mozilla/5.0 (Windows NT 6.0; U; tr; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 10.10", - "Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686; de) Opera 10.10", - "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 6.0; tr) Opera 10.10", - "Opera/9.80 (X11; Linux x86_64; U; en-GB) Presto/2.2.15 Version/10.01", - "Opera/9.80 (X11; Linux x86_64; U; en) Presto/2.2.15 Version/10.00", - "Opera/9.80 (X11; Linux x86_64; U; de) Presto/2.2.15 Version/10.00", - "Opera/9.80 (X11; Linux i686; U; ru) Presto/2.2.15 Version/10.00", - "Opera/9.80 (X11; Linux i686; U; pt-BR) Presto/2.2.15 Version/10.00", - "Opera/9.80 (X11; Linux i686; U; pl) Presto/2.2.15 Version/10.00", - "Opera/9.80 (X11; Linux i686; U; nb) Presto/2.2.15 Version/10.00", - "Opera/9.80 (X11; Linux i686; U; en-GB) Presto/2.2.15 Version/10.00", - "Opera/9.80 (X11; Linux i686; U; en) Presto/2.2.15 Version/10.00", - "Opera/9.80 (X11; Linux i686; U; Debian; pl) Presto/2.2.15 Version/10.00", - "Opera/9.80 (X11; Linux i686; U; de) Presto/2.2.15 Version/10.00", - "Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.2.15 Version/10.00", - "Opera/9.80 (Windows NT 6.1; U; fi) Presto/2.2.15 Version/10.00", - "Opera/9.80 (Windows NT 6.1; U; en) Presto/2.2.15 Version/10.00", - "Opera/9.80 (Windows NT 6.1; U; de) Presto/2.2.15 Version/10.00", - "Opera/9.80 (Windows NT 6.1; U; cs) Presto/2.2.15 Version/10.00", - "Opera/9.80 (Windows NT 6.0; U; en) Presto/2.2.15 Version/10.00", - "Opera/9.80 (Windows NT 6.0; U; de) Presto/2.2.15 Version/10.00", - "Opera/9.80 (Windows NT 5.2; U; en) Presto/2.2.15 Version/10.00", - "Opera/9.80 (Windows NT 5.1; U; zh-cn) Presto/2.2.15 Version/10.00", - "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.00", - "Opera/9.99 (X11; U; sk)", - "Opera/9.99 (Windows NT 5.1; U; pl) Presto/9.9.9", - "Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Windows; U; Windows NT 5.1; en) AppleWebKit/886; U; en) Presto/2.4.15", - "Opera/9.70 (Linux ppc64 ; U; en) Presto/2.2.1", - "Opera/9.70 (Linux i686 ; U; zh-cn) Presto/2.2.0", - "Opera/9.70 (Linux i686 ; U; en-us) Presto/2.2.0", - "Opera/9.70 (Linux i686 ; U; en) Presto/2.2.1", - "Opera/9.70 (Linux i686 ; U; en) Presto/2.2.0", - "Opera/9.70 (Linux i686 ; U; ; en) Presto/2.2.1", - "Opera/9.70 (Linux i686 ; U; ; en) Presto/2.2.1", - "Mozilla/5.0 (Linux i686 ; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.70", - "Mozilla/4.0 (compatible; MSIE 6.0; Linux i686 ; en) Opera 9.70", - "Opera/9.64(Windows NT 5.1; U; en) Presto/2.1.1", - "Opera/9.64 (X11; Linux x86_64; U; pl) Presto/2.1.1", - "Opera/9.64 (X11; Linux x86_64; U; hr) Presto/2.1.1", - "Opera/9.64 (X11; Linux x86_64; U; en-GB) Presto/2.1.1", - "Opera/9.64 (X11; Linux x86_64; U; en) Presto/2.1.1", - "Opera/9.64 (X11; Linux x86_64; U; de) Presto/2.1.1", - "Opera/9.64 (X11; Linux x86_64; U; cs) Presto/2.1.1", - "Opera/9.64 (X11; Linux i686; U; tr) Presto/2.1.1", - "Opera/9.64 (X11; Linux i686; U; sv) Presto/2.1.1", - "Opera/9.64 (X11; Linux i686; U; pl) Presto/2.1.1", - "Opera/9.64 (X11; Linux i686; U; nb) Presto/2.1.1", - "Opera/9.64 (X11; Linux i686; U; Linux Mint; nb) Presto/2.1.1", - "Opera/9.64 (X11; Linux i686; U; Linux Mint; it) Presto/2.1.1", - "Opera/9.64 (X11; Linux i686; U; en) Presto/2.1.1", - "Opera/9.64 (X11; Linux i686; U; de) Presto/2.1.1", - "Opera/9.64 (X11; Linux i686; U; da) Presto/2.1.1", - "Opera/9.64 (Windows NT 6.1; U; MRA 5.5 (build 02842); ru) Presto/2.1.1", - "Opera/9.64 (Windows NT 6.1; U; de) Presto/2.1.1", - "Opera/9.64 (Windows NT 6.0; U; zh-cn) Presto/2.1.1", - "Opera/9.64 (Windows NT 6.0; U; pl) Presto/2.1.1", - "Opera/9.63 (X11; Linux x86_64; U; ru) Presto/2.1.1", - "Opera/9.63 (X11; Linux x86_64; U; cs) Presto/2.1.1", - "Opera/9.63 (X11; Linux i686; U; ru) Presto/2.1.1", - "Opera/9.63 (X11; Linux i686; U; ru)", - "Opera/9.63 (X11; Linux i686; U; nb) Presto/2.1.1", - "Opera/9.63 (X11; Linux i686; U; en)", - "Opera/9.63 (X11; Linux i686; U; de) Presto/2.1.1", - "Opera/9.63 (X11; Linux i686)", - "Opera/9.63 (X11; FreeBSD 7.1-RELEASE i386; U; en) Presto/2.1.1", - "Opera/9.63 (Windows NT 6.1; U; hu) Presto/2.1.1", - "Opera/9.63 (Windows NT 6.1; U; en) Presto/2.1.1", - "Opera/9.63 (Windows NT 6.1; U; de) Presto/2.1.1", - "Opera/9.63 (Windows NT 6.0; U; pl) Presto/2.1.1", - "Opera/9.63 (Windows NT 6.0; U; nb) Presto/2.1.1", - "Opera/9.63 (Windows NT 6.0; U; fr) Presto/2.1.1", - "Opera/9.63 (Windows NT 6.0; U; en) Presto/2.1.1", - "Opera/9.63 (Windows NT 6.0; U; cs) Presto/2.1.1", - "Opera/9.63 (Windows NT 5.2; U; en) Presto/2.1.1", - "Opera/9.63 (Windows NT 5.2; U; de) Presto/2.1.1", - "Opera/9.63 (Windows NT 5.1; U; pt-BR) Presto/2.1.1", - "Opera/9.62 (X11; Linux x86_64; U; ru) Presto/2.1.1", - "Opera/9.62 (X11; Linux x86_64; U; en_GB, en_US) Presto/2.1.1", - "Opera/9.62 (X11; Linux i686; U; pt-BR) Presto/2.1.1", - "Opera/9.62 (X11; Linux i686; U; Linux Mint; en) Presto/2.1.1", - "Opera/9.62 (X11; Linux i686; U; it) Presto/2.1.1", - "Opera/9.62 (X11; Linux i686; U; fi) Presto/2.1.1", - "Opera/9.62 (X11; Linux i686; U; en) Presto/2.1.1", - "Opera/9.62 (Windows NT 6.1; U; en) Presto/2.1.1", - "Opera/9.62 (Windows NT 6.1; U; de) Presto/2.1.1", - "Opera/9.62 (Windows NT 6.0; U; pl) Presto/2.1.1", - "Opera/9.62 (Windows NT 6.0; U; nb) Presto/2.1.1", - "Opera/9.62 (Windows NT 6.0; U; en-GB) Presto/2.1.1", - "Opera/9.62 (Windows NT 6.0; U; en) Presto/2.1.1", - "Opera/9.62 (Windows NT 6.0; U; de) Presto/2.1.1", - "Opera/9.62 (Windows NT 5.2; U; en) Presto/2.1.1", - "Opera/9.62 (Windows NT 5.1; U; zh-tw) Presto/2.1.1", - "Opera/9.62 (Windows NT 5.1; U; zh-cn) Presto/2.1.1", - "Opera/9.62 (Windows NT 5.1; U; tr) Presto/2.1.1", - "Opera/9.62 (Windows NT 5.1; U; ru) Presto/2.1.1", - "Opera/9.62 (Windows NT 5.1; U; pt-BR) Presto/2.1.1", - "Opera/9.61 (X11; Linux x86_64; U; fr) Presto/2.1.1", - "Opera/9.61 (X11; Linux i686; U; ru) Presto/2.1.1", - "Opera/9.61 (X11; Linux i686; U; pl) Presto/2.1.1", - "Opera/9.61 (X11; Linux i686; U; en) Presto/2.1.1", - "Opera/9.61 (X11; Linux i686; U; de) Presto/2.1.1", - "Opera/9.61 (Windows NT 6.0; U; ru) Presto/2.1.1", - "Opera/9.61 (Windows NT 6.0; U; pt-BR) Presto/2.1.1", - "Opera/9.61 (Windows NT 6.0; U; http://lucideer.com; en-GB) Presto/2.1.1", - "Opera/9.61 (Windows NT 6.0; U; en) Presto/2.1.1", - "Opera/9.61 (Windows NT 5.2; U; en) Presto/2.1.1", - "Opera/9.61 (Windows NT 5.1; U; zh-tw) Presto/2.1.1", - "Opera/9.61 (Windows NT 5.1; U; zh-cn) Presto/2.1.1", - "Opera/9.61 (Windows NT 5.1; U; ru) Presto/2.1.1", - "Opera/9.61 (Windows NT 5.1; U; fr) Presto/2.1.1", - "Opera/9.61 (Windows NT 5.1; U; en-GB) Presto/2.1.1", - "Opera/9.61 (Windows NT 5.1; U; en) Presto/2.1.1", - "Opera/9.61 (Windows NT 5.1; U; de) Presto/2.1.1", - "Opera/9.61 (Windows NT 5.1; U; cs) Presto/2.1.1", - "Opera/9.61 (Macintosh; Intel Mac OS X; U; de) Presto/2.1.1", - "Mozilla/5.0 (Windows NT 5.1; U; en-GB; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.61", - "Opera/9.60 (X11; Linux x86_64; U)", - "Opera/9.60 (X11; Linux i686; U; ru) Presto/2.1.1", - "Opera/9.60 (X11; Linux i686; U; en-GB) Presto/2.1.1", - "Opera/9.60 (Windows NT 6.0; U; uk) Presto/2.1.1", - "Opera/9.60 (Windows NT 6.0; U; ru) Presto/2.1.1", - "Opera/9.60 (Windows NT 6.0; U; pl) Presto/2.1.1", - "Opera/9.60 (Windows NT 6.0; U; de) Presto/2.1.1", - "Opera/9.60 (Windows NT 6.0; U; bg) Presto/2.1.1", - "Opera/9.60 (Windows NT 5.1; U; tr) Presto/2.1.1", - "Opera/9.60 (Windows NT 5.1; U; sv) Presto/2.1.1", - "Opera/9.60 (Windows NT 5.1; U; es-ES) Presto/2.1.1", - "Opera/9.60 (Windows NT 5.1; U; en-GB) Presto/2.1.1", - "Opera/9.60 (Windows NT 5.0; U; en) Presto/2.1.1", - "Mozilla/5.0 (X11; Linux x86_64; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.60", - "Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux x86_64; en) Opera 9.60", - "Opera/9.52 (X11; Linux x86_64; U; ru)", - "Opera/9.52 (X11; Linux x86_64; U; en)", - "Opera/9.52 (X11; Linux x86_64; U)", - "Opera/9.52 (X11; Linux ppc; U; de)", - "Opera/9.52 (X11; Linux i686; U; fr)", - "Opera/9.52 (X11; Linux i686; U; en)", - "Opera/9.52 (X11; Linux i686; U; cs)", - "Opera/9.52 (Windows NT 6.0; U; Opera/9.52 (X11; Linux x86_64; U); en)", - "Opera/9.52 (Windows NT 6.0; U; fr)", - "Opera/9.52 (Windows NT 6.0; U; en)", - "Opera/9.52 (Windows NT 6.0; U; de)", - "Opera/9.52 (Windows NT 5.2; U; ru)", - "Opera/9.52 (Windows NT 5.0; U; en)", - "Opera/9.52 (Macintosh; PPC Mac OS X; U; ja)", - "Opera/9.52 (Macintosh; PPC Mac OS X; U; fr)", - "Opera/9.52 (Macintosh; Intel Mac OS X; U; pt-BR)", - "Opera/9.52 (Macintosh; Intel Mac OS X; U; pt)", - "Mozilla/5.0 (Windows NT 5.1; U; de; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.52", - "Mozilla/5.0 (Windows NT 5.1; U; ; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.52", - "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 9.52", - "Opera/9.51 (X11; Linux i686; U; Linux Mint; en)", - "Opera/9.51 (X11; Linux i686; U; fr)", - "Opera/9.51 (X11; Linux i686; U; de)", - "Opera/9.51 (Windows NT 6.0; U; sv)", - "Opera/9.51 (Windows NT 6.0; U; es)", - "Opera/9.51 (Windows NT 6.0; U; en)", - "Opera/9.51 (Windows NT 5.2; U; en)", - "Opera/9.51 (Windows NT 5.1; U; nn)", - "Opera/9.51 (Windows NT 5.1; U; fr)", - "Opera/9.51 (Windows NT 5.1; U; es-LA)", - "Opera/9.51 (Windows NT 5.1; U; es-AR)", - "Opera/9.51 (Windows NT 5.1; U; en-GB)", - "Opera/9.51 (Windows NT 5.1; U; en)", - "Opera/9.51 (Windows NT 5.1; U; da)", - "Opera/9.51 (Macintosh; Intel Mac OS X; U; en)", - "Mozilla/5.0 (X11; Linux i686; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51", - "Mozilla/5.0 (Windows NT 6.0; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51", - "Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51", - "Mozilla/5.0 (Windows NT 5.1; U; en-GB; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51", - "Mozilla/5.0 (Windows NT 5.1; U; de; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51", - "Opera/9.50 (X11; Linux x86_64; U; pl)", - "Opera/9.50 (X11; Linux x86_64; U; nb)", - "Opera/9.50 (X11; Linux ppc; U; en)", - "Opera/9.50 (X11; Linux i686; U; es-ES)", - "Opera/9.50 (Windows NT 5.2; U; it)", - "Opera/9.50 (Windows NT 5.1; U; ru)", - "Opera/9.50 (Windows NT 5.1; U; nn)", - "Opera/9.50 (Windows NT 5.1; U; nl)", - "Opera/9.50 (Windows NT 5.1; U; it)", - "Opera/9.50 (Windows NT 5.1; U; es-ES)", - "Opera/9.50 (Macintosh; Intel Mac OS X; U; en)", - "Opera/9.50 (Macintosh; Intel Mac OS X; U; de)", - "Mozilla/5.0 (Windows NT 5.1; U; zh-cn; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50", - "Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux x86_64; en) Opera 9.50", - "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 6.0; en) Opera 9.50", - "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; en) Opera 9.50", - "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; de) Opera 9.50", - "Opera/9.5 (Windows NT 6.0; U; en)", - "Opera/9.5 (Windows NT 5.1; U; fr)", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9b3) Gecko/2008020514 Opera 9.5", - "Opera 9.4 (Windows NT 6.1; U; en)", - "Opera 9.4 (Windows NT 5.3; U; en)", - "Opera/9.30 (Nintendo Wii; U; ; 2071; Wii Shop Channel/1.0; en)", - "Opera/9.30 (Nintendo Wii; U; ; 2047-7;pt-br)", - "Opera/9.30 (Nintendo Wii; U; ; 2047-7;es)", - "Opera/9.30 (Nintendo Wii; U; ; 2047-7;en)", - "Opera/9.30 (Nintendo Wii; U; ; 2047-7; fr)", - "Opera/9.30 (Nintendo Wii; U; ; 2047-7; de)", - "Opera/9.27 (X11; Linux i686; U; fr)", - "Opera/9.27 (X11; Linux i686; U; en)", - "Opera/9.27 (Windows NT 5.2; U; en)", - "Opera/9.27 (Windows NT 5.1; U; ja)", - "Opera/9.27 (Macintosh; Intel Mac OS X; U; sv)", - "Mozilla/5.0 (Windows NT 5.2; U; en; rv:1.8.0) Gecko/20060728 Firefox/1.5.0 Opera 9.27", - "Mozilla/5.0 (Windows NT 5.1; U; es-la; rv:1.8.0) Gecko/20060728 Firefox/1.5.0 Opera 9.27", - "Mozilla/5.0 (Macintosh; Intel Mac OS X; U; en; rv:1.8.0) Gecko/20060728 Firefox/1.5.0 Opera 9.27", - "Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686; en) Opera 9.27", - "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; en) Opera 9.27", - "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; es-la) Opera 9.27", - "Opera/9.26 (Windows; U; pl)", - "Opera/9.26 (Windows NT 5.1; U; zh-cn)", - "Opera/9.26 (Windows NT 5.1; U; pl)", - "Opera/9.26 (Windows NT 5.1; U; nl)", - "Opera/9.26 (Windows NT 5.1; U; MEGAUPLOAD 2.0; en)", - "Opera/9.26 (Windows NT 5.1; U; de)", - "Opera/9.26 (Macintosh; PPC Mac OS X; U; en)", - "Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.0) Gecko/20060728 Firefox/1.5.0 Opera 9.26", - "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 6.0; en) Opera 9.26", - "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.26", - "Opera/9.25 (X11; Linux i686; U; fr-ca)", - "Opera/9.25 (X11; Linux i686; U; fr)", - "Opera/9.25 (X11; Linux i686; U; en)", - "Opera/9.25 (Windows NT 6.0; U; SV1; MEGAUPLOAD 2.0; ru)", - "Opera/9.25 (Windows NT 6.0; U; sv)", - "Opera/9.25 (Windows NT 6.0; U; ru)", - "Opera/9.25 (Windows NT 6.0; U; MEGAUPLOAD 1.0; ru)", - "Opera/9.25 (Windows NT 6.0; U; en-US)", - "Opera/9.25 (Windows NT 5.2; U; en)", - "Opera/9.25 (Windows NT 5.1; U; zh-cn)", - "Opera/9.25 (Windows NT 5.1; U; ru)", - "Opera/9.25 (Windows NT 5.1; U; MEGAUPLOAD 1.0; pt-br)", - "Opera/9.25 (Windows NT 5.1; U; lt)", - "Opera/9.25 (Windows NT 5.1; U; de)", - "Opera/9.25 (Windows NT 5.0; U; en)", - "Opera/9.25 (Windows NT 5.0; U; cs)", - "Opera/9.25 (Windows NT 4.0; U; en)", - "Opera/9.25 (OpenSolaris; U; en)", - "Opera/9.25 (Macintosh; PPC Mac OS X; U; en)", - "Opera/9.25 (Macintosh; Intel Mac OS X; U; en)", - "Opera/9.24 (X11; SunOS i86pc; U; en)", - "Opera/9.24 (X11; Linux i686; U; de)", - "Opera/9.24 (Windows NT 5.1; U; tr)", - "Opera/9.24 (Windows NT 5.1; U; ru)", - "Opera/9.24 (Windows NT 5.0; U; ru)", - "Opera/9.24 (Macintosh; PPC Mac OS X; U; en)", - "Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.0) Gecko/20060728 Firefox/1.5.0 Opera 9.24", - "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.24", - "Mozilla/4.0 (compatible; MSIE 6.0; Mac_PowerPC; en) Opera 9.24", - "Opera/9.23 (X11; Linux x86_64; U; en)", - "Opera/9.23 (X11; Linux i686; U; es-es)", - "Opera/9.23 (X11; Linux i686; U; en)", - "Opera/9.23 (Windows NT 6.0; U; de)", - "Opera/9.23 (Windows NT 5.1; U; zh-cn)", - "Opera/9.23 (Windows NT 5.1; U; SV1; MEGAUPLOAD 1.0; ru)", - "Opera/9.23 (Windows NT 5.1; U; pt)", - "Opera/9.23 (Windows NT 5.1; U; ja)", - "Opera/9.23 (Windows NT 5.1; U; it)", - "Opera/9.23 (Windows NT 5.1; U; fi)", - "Opera/9.23 (Windows NT 5.1; U; en)", - "Opera/9.23 (Windows NT 5.1; U; de)", - "Opera/9.23 (Windows NT 5.1; U; da)", - "Opera/9.23 (Windows NT 5.0; U; en)", - "Opera/9.23 (Windows NT 5.0; U; de)", - "Opera/9.23 (Nintendo Wii; U; ; 1038-58; Wii Internet Channel/1.0; en)", - "Opera/9.23 (Macintosh; Intel Mac OS X; U; ja)", - "Opera/9.23 (Mac OS X; ru)", - "Opera/9.23 (Mac OS X; fr)", - "Mozilla/5.0 (X11; Linux i686; U; en; rv:1.8.0) Gecko/20060728 Firefox/1.5.0 Opera 9.23", - "Opera/9.22 (X11; OpenBSD i386; U; en)", - "Opera/9.22 (X11; Linux i686; U; en)", - "Opera/9.22 (X11; Linux i686; U; de)", - "Opera/9.22 (Windows NT 6.0; U; ru)", - "Opera/9.22 (Windows NT 6.0; U; en)", - "Opera/9.22 (Windows NT 5.1; U; SV1; MEGAUPLOAD 2.0; ru)", - "Opera/9.22 (Windows NT 5.1; U; SV1; MEGAUPLOAD 1.0; ru)", - "Opera/9.22 (Windows NT 5.1; U; pl)", - "Opera/9.22 (Windows NT 5.1; U; fr)", - "Opera/9.22 (Windows NT 5.1; U; en)", - "Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.0) Gecko/20060728 Firefox/1.5.0 Opera 9.22", - "Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686; en) Opera 9.22", - "Opera/9.21 (X11; Linux x86_64; U; en)", - "Opera/9.21 (X11; Linux i686; U; es-es)", - "Opera/9.21 (X11; Linux i686; U; en)", - "Opera/9.21 (X11; Linux i686; U; de)", - "Opera/9.21 (Windows NT 6.0; U; nb)", - "Opera/9.21 (Windows NT 6.0; U; en)", - "Opera/9.21 (Windows NT 5.2; U; en)", - "Opera/9.21 (Windows NT 5.1; U; SV1; MEGAUPLOAD 1.0; ru)", - "Opera/9.21 (Windows NT 5.1; U; ru)", - "Opera/9.21 (Windows NT 5.1; U; pt-br)", - "Opera/9.21 (Windows NT 5.1; U; pl)", - "Opera/9.21 (Windows NT 5.1; U; nl)", - "Opera/9.21 (Windows NT 5.1; U; MEGAUPLOAD 1.0; en)", - "Opera/9.21 (Windows NT 5.1; U; fr)", - "Opera/9.21 (Windows NT 5.1; U; en)", - "Opera/9.21 (Windows NT 5.1; U; de)", - "Opera/9.21 (Windows NT 5.0; U; de)", - "Opera/9.21 (Windows 98; U; en)", - "Opera/9.21 (Macintosh; PPC Mac OS X; U; en)", - "Opera/9.21 (Macintosh; Intel Mac OS X; U; en)", - "Opera/9.20(Windows NT 5.1; U; en)", - "Opera/9.20 (X11; Linux x86_64; U; en)", - "Opera/9.20 (X11; Linux ppc; U; en)", - "Opera/9.20 (X11; Linux i686; U; tr)", - "Opera/9.20 (X11; Linux i686; U; ru)", - "Opera/9.20 (X11; Linux i686; U; pl)", - "Opera/9.20 (X11; Linux i686; U; es-es)", - "Opera/9.20 (X11; Linux i686; U; en)", - "Opera/9.20 (X11; Linux i586; U; en)", - "Opera/9.20 (Windows NT 6.0; U; es-es)", - "Opera/9.20 (Windows NT 6.0; U; en)", - "Opera/9.20 (Windows NT 6.0; U; de)", - "Opera/9.20 (Windows NT 5.2; U; en)", - "Opera/9.20 (Windows NT 5.1; U; zh-tw)", - "Opera/9.20 (Windows NT 5.1; U; nb)", - "Opera/9.20 (Windows NT 5.1; U; MEGAUPLOAD=1.0; es-es)", - "Opera/9.20 (Windows NT 5.1; U; it)", - "Opera/9.20 (Windows NT 5.1; U; es-es)", - "Opera/9.20 (Windows NT 5.1; U; es-AR)", - "Opera/9.20 (Windows NT 5.1; U; en)", - "Opera/9.12 (X11; Linux i686; U; en) (Ubuntu)", - "Opera/9.12 (Windows NT 5.0; U; ru)", - "Opera/9.12 (Windows NT 5.0; U)", - "Opera/9.10 (X11; Linux; U; en)", - "Opera/9.10 (X11; Linux x86_64; U; en)", - "Opera/9.10 (X11; Linux i686; U; pl)", - "Opera/9.10 (X11; Linux i686; U; kubuntu;pl)", - "Opera/9.10 (X11; Linux i686; U; en)", - "Opera/9.10 (X11; Linux i386; U; en)", - "Opera/9.10 (Windows NT 6.0; U; it-IT)", - "Opera/9.10 (Windows NT 6.0; U; en)", - "Opera/9.10 (Windows NT 5.2; U; en)", - "Opera/9.10 (Windows NT 5.2; U; de)", - "Opera/9.10 (Windows NT 5.1; U; zh-tw)", - "Opera/9.10 (Windows NT 5.1; U; sv)", - "Opera/9.10 (Windows NT 5.1; U; pt)", - "Opera/9.10 (Windows NT 5.1; U; pl)", - "Opera/9.10 (Windows NT 5.1; U; nl)", - "Opera/9.10 (Windows NT 5.1; U; MEGAUPLOAD 1.0; pl)", - "Opera/9.10 (Windows NT 5.1; U; it)", - "Opera/9.10 (Windows NT 5.1; U; hu)", - "Opera/9.10 (Windows NT 5.1; U; fi)", - "Opera/9.10 (Windows NT 5.1; U; es-es)", - "Opera/9.02 (X11; Linux i686; U; pl)", - "Opera/9.02 (X11; Linux i686; U; hu)", - "Opera/9.02 (X11; Linux i686; U; en)", - "Opera/9.02 (X11; Linux i686; U; de)", - "Opera/9.02 (Windows NT 5.2; U; en)", - "Opera/9.02 (Windows NT 5.2; U; de)", - "Opera/9.02 (Windows NT 5.1; U; zh-cn)", - "Opera/9.02 (Windows NT 5.1; U; ru)", - "Opera/9.02 (Windows NT 5.1; U; pt-br)", - "Opera/9.02 (Windows NT 5.1; U; pl)", - "Opera/9.02 (Windows NT 5.1; U; nb)", - "Opera/9.02 (Windows NT 5.1; U; ja)", - "Opera/9.02 (Windows NT 5.1; U; fi)", - "Opera/9.02 (Windows NT 5.1; U; en)", - "Opera/9.02 (Windows NT 5.1; U; de)", - "Opera/9.02 (Windows NT 5.0; U; sv)", - "Opera/9.02 (Windows NT 5.0; U; pl)", - "Opera/9.02 (Windows NT 5.0; U; en)", - "Opera/9.01 (X11; OpenBSD i386; U; en)", - "Opera/9.01 (X11; Linux i686; U; en)", - "Opera/9.01 (X11; FreeBSD 6 i386; U;pl)", - "Opera/9.01 (X11; FreeBSD 6 i386; U; en)", - "Opera/9.01 (Windows NT 5.2; U; ru)", - "Opera/9.01 (Windows NT 5.2; U; en)", - "Opera/9.01 (Windows NT 5.1; U; ru)", - "Opera/9.01 (Windows NT 5.1; U; pl)", - "Opera/9.01 (Windows NT 5.1; U; ja)", - "Opera/9.01 (Windows NT 5.1; U; es-es)", - "Opera/9.01 (Windows NT 5.1; U; en)", - "Opera/9.01 (Windows NT 5.1; U; de)", - "Opera/9.01 (Windows NT 5.1; U; da)", - "Opera/9.01 (Windows NT 5.1; U; cs)", - "Opera/9.01 (Windows NT 5.1; U; bg)", - "Opera/9.01 (Windows NT 5.0; U; en)", - "Opera/9.01 (Windows NT 5.0; U; de)", - "Opera/9.01 (Macintosh; PPC Mac OS X; U; it)", - "Opera/9.01 (Macintosh; PPC Mac OS X; U; en)", - "Opera/9.00 (X11; Linux i686; U; pl)", - "Opera/9.00 (X11; Linux i686; U; en)", - "Opera/9.00 (X11; Linux i686; U; de)", - "Opera/9.00 (Windows NT 5.2; U; ru)", - "Opera/9.00 (Windows NT 5.2; U; pl)", - "Opera/9.00 (Windows NT 5.2; U; en)", - "Opera/9.00 (Windows NT 5.1; U; ru)", - "Opera/9.00 (Windows NT 5.1; U; pl)", - "Opera/9.00 (Windows NT 5.1; U; nl)", - "Opera/9.00 (Windows NT 5.1; U; ja)", - "Opera/9.00 (Windows NT 5.1; U; it)", - "Opera/9.00 (Windows NT 5.1; U; fr)", - "Opera/9.00 (Windows NT 5.1; U; fi)", - "Opera/9.00 (Windows NT 5.1; U; es-es)", - "Opera/9.00 (Windows NT 5.1; U; en)", - "Opera/9.00 (Windows NT 5.1; U; de)", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.12 Safari/535.11", - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.8 (KHTML, like Gecko) Chrome/17.0.940.0 Safari/535.8", - "Mozilla/5.0 (X11; CrOS i686 1193.158.0) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7", - "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7", - "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7", - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7xs5D9rRDFpg2g", - "Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7", - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.36 Safari/535.7", - "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.36 Safari/535.7", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.36 Safari/535.7", - "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.6 (KHTML, like Gecko) Chrome/16.0.897.0 Safari/535.6", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.54 Safari/535.2", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.2 (KHTML, like Gecko) Ubuntu/11.10 Chromium/15.0.874.120 Chrome/15.0.874.120 Safari/535.2", - "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2", - "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.872.0 Safari/535.2", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.2 (KHTML, like Gecko) Ubuntu/11.04 Chromium/15.0.871.0 Chrome/15.0.871.0 Safari/535.2", - "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.864.0 Safari/535.2", - "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.861.0 Safari/535.2", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.861.0 Safari/535.2", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.861.0 Safari/535.2", - "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.860.0 Safari/535.2", - "Chrome/15.0.860.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/15.0.860.0", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/14.0.825.0 Chrome/14.0.825.0 Safari/535.1", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.824.0 Safari/535.1", - "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.815.10913 Safari/535.1", - "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.815.0 Safari/535.1", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/14.0.814.0 Chrome/14.0.814.0 Safari/535.1", - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.814.0 Safari/535.1", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/10.04 Chromium/14.0.813.0 Chrome/14.0.813.0 Safari/535.1", - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.813.0 Safari/535.1", - "Mozilla/5.0 (Windows NT 5.2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.813.0 Safari/535.1", - "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.813.0 Safari/535.1", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.813.0 Safari/535.1", - "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.812.0 Safari/535.1", - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.811.0 Safari/535.1", - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.810.0 Safari/535.1", - "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.810.0 Safari/535.1", - "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.809.0 Safari/535.1", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/10.10 Chromium/14.0.808.0 Chrome/14.0.808.0 Safari/535.1", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/10.04 Chromium/14.0.808.0 Chrome/14.0.808.0 Safari/535.1", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/10.04 Chromium/14.0.804.0 Chrome/14.0.804.0 Safari/535.1", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.803.0 Safari/535.1", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/14.0.803.0 Chrome/14.0.803.0 Safari/535.1", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.803.0 Safari/535.1", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.803.0 Safari/535.1", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.803.0 Safari/535.1", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.803.0 Safari/535.1", - "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.801.0 Safari/535.1", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.801.0 Safari/535.1", - "Mozilla/5.0 (Windows NT 5.2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.794.0 Safari/535.1", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.794.0 Safari/535.1", - "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.792.0 Safari/535.1", - "Mozilla/5.0 (Windows NT 5.2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.792.0 Safari/535.1", - "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.792.0 Safari/535.1", - "Mozilla/5.0 (Macintosh; PPC Mac OS X 10_6_7) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.790.0 Safari/535.1", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.790.0 Safari/535.1", - "Mozilla/5.0 (X11; CrOS i686 13.587.48) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.43 Safari/535.1", - "Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41", - "Mozilla/5.0 ArchLinux (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", - "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", - "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", - "Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", - "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_3) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_3) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.32 Safari/535.1", - "Mozilla/5.0 (X11; Linux amd64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.24 Safari/535.1", - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.24 Safari/535.1", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.24 Safari/535.1", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/535.1", - "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/535.1", - "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/535.1", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215 Safari/535.1", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215 Safari/535.1", - "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215 Safari/535.1", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215 Safari/535.1", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.20 Safari/535.1", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.20 Safari/535.1", - "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.20 Safari/535.1", - "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.20 Safari/535.1", - "Mozilla/5.0 (X11; CrOS i686 0.13.587) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.14 Safari/535.1", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.36 (KHTML, like Gecko) Chrome/13.0.766.0 Safari/534.36", - "Mozilla/5.0 (X11; Linux amd64) AppleWebKit/534.36 (KHTML, like Gecko) Chrome/13.0.766.0 Safari/534.36", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.35 (KHTML, like Gecko) Ubuntu/10.10 Chromium/13.0.764.0 Chrome/13.0.764.0 Safari/534.35", - "Mozilla/5.0 (X11; CrOS i686 0.13.507) AppleWebKit/534.35 (KHTML, like Gecko) Chrome/13.0.763.0 Safari/534.35", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.33 (KHTML, like Gecko) Ubuntu/9.10 Chromium/13.0.752.0 Chrome/13.0.752.0 Safari/534.33", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_8) AppleWebKit/534.31 (KHTML, like Gecko) Chrome/13.0.748.0 Safari/534.31", - "Mozilla/5.0 (Windows NT 6.1; en-US) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.750.0 Safari/534.30", - "Mozilla/5.0 (X11; CrOS i686 12.433.109) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.93 Safari/534.30", - "Mozilla/5.0 (X11; CrOS i686 12.0.742.91) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.93 Safari/534.30", - "Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/12.0.742.91", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91 Chromium/12.0.742.91 Safari/534.30", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.68 Safari/534.30", - "Mozilla/5.0 ArchLinux (X11; U; Linux x86_64; en-US) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.60 Safari/534.30", - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.53 Safari/534.30", - "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.113 Safari/534.30", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/11.04 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.04 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/11.04 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.04 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30", - "Mozilla/5.0 (Windows NT 7.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30", - "Mozilla/5.0 (Windows NT 5.2) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30", - "Mozilla/5.0 (Windows 8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_4) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30", - "Mozilla/5.0 (X11; CrOS i686 12.433.216) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.105 Safari/534.30", - "Mozilla/5.0 ArchLinux (X11; U; Linux x86_64; en-US) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30", - "Mozilla/5.0 ArchLinux (X11; U; Linux x86_64; en-US) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Slackware/Chrome/12.0.742.100 Safari/534.30", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30", - "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_4) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.724.100 Safari/534.30", - "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.25 (KHTML, like Gecko) Chrome/12.0.706.0 Safari/534.25", - "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.25 (KHTML, like Gecko) Chrome/12.0.704.0 Safari/534.25", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.703.0 Chrome/12.0.703.0 Safari/534.24", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.702.0 Chrome/12.0.702.0 Safari/534.24", - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/12.0.702.0 Safari/534.24", - "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/12.0.702.0 Safari/534.24", - "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.700.3 Safari/534.24", - "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.699.0 Safari/534.24", - "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.699.0 Safari/534.24", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24", - "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.697.0 Safari/534.24", - "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_8) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24", - "Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/11.0.696.50", - "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.43 Safari/534.24", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24", - "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.3 Safari/534.24", - "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.3 Safari/534.24", - "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.3 Safari/534.24", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.14 Safari/534.24", - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.12 Safari/534.24", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.12 Safari/534.24", - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Ubuntu/10.04 Chromium/11.0.696.0 Chrome/11.0.696.0 Safari/534.24", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.0 Safari/534.24", - "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.694.0 Safari/534.24", - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.23 (KHTML, like Gecko) Chrome/11.0.686.3 Safari/534.23", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.21 (KHTML, like Gecko) Chrome/11.0.682.0 Safari/534.21", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.21 (KHTML, like Gecko) Chrome/11.0.678.0 Safari/534.21", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_7_0; en-US) AppleWebKit/534.21 (KHTML, like Gecko) Chrome/11.0.678.0 Safari/534.21", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.20 (KHTML, like Gecko) Chrome/11.0.672.2 Safari/534.20", - "Mozilla/5.0 (Windows NT) AppleWebKit/534.20 (KHTML, like Gecko) Chrome/11.0.672.2 Safari/534.20", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.20 (KHTML, like Gecko) Chrome/11.0.672.2 Safari/534.20", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.20 (KHTML, like Gecko) Chrome/11.0.669.0 Safari/534.20", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.19 (KHTML, like Gecko) Chrome/11.0.661.0 Safari/534.19", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.18 (KHTML, like Gecko) Chrome/11.0.661.0 Safari/534.18", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.18 (KHTML, like Gecko) Chrome/11.0.660.0 Safari/534.18", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/11.0.655.0 Safari/534.17", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/11.0.655.0 Safari/534.17", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/11.0.654.0 Safari/534.17", - "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/11.0.652.0 Safari/534.17", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/10.0.649.0 Safari/534.17", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; de-DE) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/10.0.649.0 Safari/534.17", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.82 Safari/534.16", - "Mozilla/5.0 (X11; U; Linux armv7l; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16", - "Mozilla/5.0 (X11; U; FreeBSD x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16", - "Mozilla/5.0 (X11; U; FreeBSD i386; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204", - "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.134 Safari/534.16", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.134 Safari/534.16", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.134 Safari/534.16", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.134 Safari/534.16", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.648.133 Chrome/10.0.648.133 Safari/534.16", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16", - "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.648.133 Chrome/10.0.648.133 Safari/534.16", - "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.648.127 Chrome/10.0.648.127 Safari/534.16", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.127 Safari/534.16", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.127 Safari/534.16", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.127 Safari/534.16", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru-RU) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.648.0 Chrome/10.0.648.0 Safari/534.16", - "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.648.0 Chrome/10.0.648.0 Safari/534.16", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.0 Safari/534.16", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.639.0 Safari/534.16", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.638.0 Safari/534.16", - "Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.634.0 Safari/534.16", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.634.0 Safari/534.16", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 SUSE/10.0.626.0 (KHTML, like Gecko) Chrome/10.0.626.0 Safari/534.16", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.15 (KHTML, like Gecko) Chrome/10.0.613.0 Safari/534.15", - "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.15 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.613.0 Chrome/10.0.613.0 Safari/534.15", - "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.15 (KHTML, like Gecko) Ubuntu/10.04 Chromium/10.0.612.3 Chrome/10.0.612.3 Safari/534.15", - "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.15 (KHTML, like Gecko) Chrome/10.0.612.1 Safari/534.15", - "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.15 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.611.0 Chrome/10.0.611.0 Safari/534.15", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/10.0.602.0 Safari/534.14", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/10.0.601.0 Safari/534.14", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/10.0.601.0 Safari/534.14", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/540.0 (KHTML,like Gecko) Chrome/9.1.0.0 Safari/540.0", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/540.0 (KHTML, like Gecko) Ubuntu/10.10 Chrome/9.1.0.0 Safari/540.0", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Ubuntu/10.10 Chromium/9.0.600.0 Chrome/9.0.600.0 Safari/534.14", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.599.0 Safari/534.13", - "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.84 Safari/534.13", - "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.44 Safari/534.13", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.19 Safari/534.13", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.15 Safari/534.13", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.15 Safari/534.13", - "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13", - "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13", - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13", - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13" - ] -end \ No newline at end of file + "LOL" => "DIMENSION", + "SYS" => "DIMENSION", + "XII" => "IMMERSE", + "ASAP" => "IMMERSE" + }.freeze +end diff --git a/lib/addic7ed/config.json b/lib/addic7ed/config.json new file mode 100644 index 0000000..15e5590 --- /dev/null +++ b/lib/addic7ed/config.json @@ -0,0 +1,1413 @@ +{ + "languages": { + "fr": { + "id": 8, + "name": "French" + }, + "ar": { + "id": 38, + "name": "Arabic" + }, + "az": { + "id": 48, + "name": "Azerbaijani" + }, + "bn": { + "id": 47, + "name": "Bengali" + }, + "bs": { + "id": 44, + "name": "Bosnian" + }, + "bg": { + "id": 35, + "name": "Bulgarian" + }, + "ca": { + "id": 12, + "name": "Català" + }, + "cn": { + "id": 41, + "name": "Chinese (Simplified)" + }, + "zh": { + "id": 24, + "name": "Chinese (Traditional)" + }, + "hr": { + "id": 31, + "name": "Croatian" + }, + "cs": { + "id": 14, + "name": "Czech" + }, + "da": { + "id": 30, + "name": "Danish" + }, + "nl": { + "id": 17, + "name": "Dutch" + }, + "en": { + "id": 1, + "name": "English" + }, + "eu": { + "id": 13, + "name": "Euskera" + }, + "fi": { + "id": 28, + "name": "Finnish" + }, + "fr": { + "id": 8, + "name": "French" + }, + "gl": { + "id": 15, + "name": "Galego" + }, + "de": { + "id": 11, + "name": "German" + }, + "el": { + "id": 27, + "name": "Greek" + }, + "he": { + "id": 23, + "name": "Hebrew" + }, + "hu": { + "id": 20, + "name": "Hungarian" + }, + "id": { + "id": 37, + "name": "Indonesian" + }, + "it": { + "id": 7, + "name": "Italian" + }, + "ja": { + "id": 32, + "name": "Japanese" + }, + "ko": { + "id": 42, + "name": "Korean" + }, + "mk": { + "id": 49, + "name": "Macedonian" + }, + "ms": { + "id": 40, + "name": "Malay" + }, + "no": { + "id": 29, + "name": "Norwegian" + }, + "fa": { + "id": 43, + "name": "Persian" + }, + "pl": { + "id": 21, + "name": "Polish" + }, + "pt": { + "id": 9, + "name": "Portuguese" + }, + "pt-br": { + "id": 10, + "name": "Portuguese (Brazilian)" + }, + "ro": { + "id": 26, + "name": "Romanian" + }, + "ru": { + "id": 19, + "name": "Russian" + }, + "sr": { + "id": 39, + "name": "Serbian (Cyrillic)" + }, + "sr-la": { + "id": 36, + "name": "Serbian (Latin)" + }, + "sk": { + "id": 25, + "name": "Slovak" + }, + "sl": { + "id": 22, + "name": "Slovenian" + }, + "es": { + "id": 4, + "name": "Spanish" + }, + "es-la": { + "id": 6, + "name": "Spanish (Latin America)" + }, + "es-es": { + "id": 5, + "name": "Spanish (Spain)" + }, + "sv": { + "id": 18, + "name": "Swedish" + }, + "th": { + "id": 46, + "name": "Thai" + }, + "tr": { + "id": 16, + "name": "Turkish" + }, + "vi": { + "id": 45, + "name": "Viet namese" + } + }, + "user_agents": [ + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0a2) Gecko/20111101 Firefox/9.0a2", + "Mozilla/5.0 (Windows NT 6.2; rv:9.0.1) Gecko/20100101 Firefox/9.0.1", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0", + "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0a2) Gecko/20110613 Firefox/6.0a2", + "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0a2) Gecko/20110612 Firefox/6.0a2", + "Mozilla/5.0 (X11; Linux i686; rv:6.0) Gecko/20100101 Firefox/6.0", + "Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0", + "Mozilla/5.0 (Windows NT 5.1; rv:6.0) Gecko/20100101 Firefox/6.0 FirePHP/0.6", + "Mozilla/5.0 (Windows NT 5.0; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0", + "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:5.0a2) Gecko/20110524 Firefox/5.0a2", + "Mozilla/5.0 (Windows NT 6.1; U; ru; rv:5.0.1.6) Gecko/20110501 Firefox/5.0.1 Firefox/5.0.1", + "Mozilla/3.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/5.0.1", + "Mozilla/5.0 (X11; U; Linux i586; de; rv:5.0) Gecko/20100101 Firefox/5.0", + "Mozilla/5.0 (X11; U; Linux amd64; rv:5.0) Gecko/20100101 Firefox/5.0 (Debian)", + "Mozilla/5.0 (X11; U; Linux amd64; en-US; rv:5.0) Gecko/20110619 Firefox/5.0", + "Mozilla/5.0 (X11; Linux) Gecko Firefox/5.0", + "Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0 FirePHP/0.5", + "Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0 Firefox/5.0", + "Mozilla/5.0 (X11; Linux x86_64) Gecko Firefox/5.0", + "Mozilla/5.0 (X11; Linux ppc; rv:5.0) Gecko/20100101 Firefox/5.0", + "Mozilla/5.0 (X11; Linux AMD64) Gecko Firefox/5.0", + "Mozilla/5.0 (X11; FreeBSD amd64; rv:5.0) Gecko/20100101 Firefox/5.0", + "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0", + "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:5.0) Gecko/20110619 Firefox/5.0", + "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:5.0) Gecko/20100101 Firefox/5.0", + "Mozilla/5.0 (Windows NT 6.1.1; rv:5.0) Gecko/20100101 Firefox/5.0", + "Mozilla/5.0 (Windows NT 5.2; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0", + "Mozilla/5.0 (Windows NT 5.1; U; rv:5.0) Gecko/20100101 Firefox/5.0", + "Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/5.0", + "Mozilla/5.0 (Windows NT 5.0; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0", + "Mozilla/5.0 (Windows NT 5.0; rv:5.0) Gecko/20100101 Firefox/5.0", + "Mozilla/5.0 (U; Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0", + "Mozilla/5.0 (X11; Linux x86_64; rv:2.2a1pre) Gecko/20110324 Firefox/4.2a1pre", + "Mozilla/5.0 (X11; Linux x86_64; rv:2.2a1pre) Gecko/20100101 Firefox/4.2a1pre", + "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.2a1pre) Gecko/20110324 Firefox/4.2a1pre", + "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.2a1pre) Gecko/20110323 Firefox/4.2a1pre", + "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.2a1pre) Gecko/20110208 Firefox/4.2a1pre", + "Mozilla/5.0 (X11; Linux x86_64; rv:2.0b9pre) Gecko/20110111 Firefox/4.0b9pre", + "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b9pre) Gecko/20101228 Firefox/4.0b9pre", + "Mozilla/5.0 (Windows NT 5.1; rv:2.0b9pre) Gecko/20110105 Firefox/4.0b9pre", + "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b8pre) Gecko/20101114 Firefox/4.0b8pre", + "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b8pre) Gecko/20101213 Firefox/4.0b8pre", + "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b8pre) Gecko/20101128 Firefox/4.0b8pre", + "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b8pre) Gecko/20101114 Firefox/4.0b8pre", + "Mozilla/5.0 (Windows NT 5.1; rv:2.0b8pre) Gecko/20101127 Firefox/4.0b8pre", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0b8) Gecko/20100101 Firefox/4.0b8", + "Mozilla/4.0 (compatible; Intel Mac OS X 10.6; rv:2.0b8) Gecko/20100101 Firefox/4.0b8)", + "Mozilla/5.0 (Windows NT 6.1; rv:2.0b7pre) Gecko/20100921 Firefox/4.0b7pre", + "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b7) Gecko/20101111 Firefox/4.0b7", + "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b7) Gecko/20100101 Firefox/4.0b7", + "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b6pre) Gecko/20100903 Firefox/4.0b6pre", + "Mozilla/5.0 (Windows NT 6.1; rv:2.0b6pre) Gecko/20100903 Firefox/4.0b6pre Firefox/4.0b6pre", + "Mozilla/5.0 (X11; Linux x86_64; rv:2.0b4) Gecko/20100818 Firefox/4.0b4", + "Mozilla/5.0 (X11; Linux i686; rv:2.0b3pre) Gecko/20100731 Firefox/4.0b3pre", + "Mozilla/5.0 (Windows NT 5.2; rv:2.0b13pre) Gecko/20110304 Firefox/4.0b13pre", + "Mozilla/5.0 (Windows NT 5.1; rv:2.0b13pre) Gecko/20110223 Firefox/4.0b13pre", + "Mozilla/5.0 (X11; Linux i686; rv:2.0b12pre) Gecko/20110204 Firefox/4.0b12pre", + "Mozilla/5.0 (X11; Linux i686; rv:2.0b12pre) Gecko/20100101 Firefox/4.0b12pre", + "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b11pre) Gecko/20110128 Firefox/4.0b11pre", + "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b11pre) Gecko/20110131 Firefox/4.0b11pre", + "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b11pre) Gecko/20110129 Firefox/4.0b11pre", + "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b11pre) Gecko/20110128 Firefox/4.0b11pre", + "Mozilla/5.0 (Windows NT 6.1; rv:2.0b11pre) Gecko/20110126 Firefox/4.0b11pre", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0b11pre) Gecko/20110126 Firefox/4.0b11pre", + "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b10pre) Gecko/20110118 Firefox/4.0b10pre", + "Mozilla/5.0 (Windows NT 6.1; rv:2.0b10pre) Gecko/20110113 Firefox/4.0b10pre", + "Mozilla/5.0 (X11; Linux i686; rv:2.0b10) Gecko/20100101 Firefox/4.0b10", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:2.0b10) Gecko/20110126 Firefox/4.0b10", + "Mozilla/5.0 (Windows NT 6.1; rv:2.0b10) Gecko/20110126 Firefox/4.0b10", + "Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/20110506 Firefox/4.0.1", + "Mozilla/5.0 (X11; Linux i686; rv:2.0.1) Gecko/20110518 Firefox/4.0.1", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:2.0.1) Gecko/20110606 Firefox/4.0.1", + "Mozilla/5.0 (X11; U; Linux x86_64; pl-PL; rv:2.0) Gecko/20110307 Firefox/4.0", + "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:2.0) Gecko/20110404 Fedora/16-dev Firefox/4.0", + "Mozilla/5.0 (X11; Arch Linux i686; rv:2.0) Gecko/20110321 Firefox/4.0", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20110319 Firefox/4.0", + "Mozilla/5.0 (Windows NT 6.1; rv:1.9) Gecko/20100101 Firefox/4.0", + "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.2) Gecko/20121223 Ubuntu/9.25 (jaunty) Firefox/3.8", + "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.2) Gecko/2008092313 Ubuntu/9.25 (jaunty) Firefox/3.8", + "Mozilla/5.0 (X11; U; Linux i686; it-IT; rv:1.9.0.2) Gecko/2008092313 Ubuntu/9.25 (jaunty) Firefox/3.8", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Mozilla/5.0 (X11; U; Linux i686; it-IT; rv:1.9.0.2) Gecko/2008092313 Ubuntu/9.25 (jaunty) Firefox/3.8", + "Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.3a5pre) Gecko/20100526 Firefox/3.7a5pre", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2b5) Gecko/20091204 Firefox/3.6b5", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2b5) Gecko/20091204 Firefox/3.6b5", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.2b5) Gecko/20091204 Firefox/3.6b5", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.2b4) Gecko/20091124 Firefox/3.6b4 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2b4) Gecko/20091124 Firefox/3.6b4", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2b1) Gecko/20091014 Firefox/3.6b1 GTB5", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2a1pre) Gecko/20090428 Firefox/3.6a1pre", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2a1pre) Gecko/20090405 Firefox/3.6a1pre", + "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.2a1pre) Gecko/20090405 Ubuntu/9.04 (jaunty) Firefox/3.6a1pre", + "Mozilla/5.0 (Windows; Windows NT 5.1; es-ES; rv:1.9.2a1pre) Gecko/20090402 Firefox/3.6a1pre", + "Mozilla/5.0 (Windows; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20090402 Firefox/3.6a1pre", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2a1pre) Gecko/20090402 Firefox/3.6a1pre (.NET CLR 3.5.30729)", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20100915 Gentoo Firefox/3.6.9", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.9) Gecko/20100827 Red Hat/3.6.9-2.el6 Firefox/3.6.9", + "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.9.2.9) Gecko/20100913 Firefox/3.6.9", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9 ( .NET CLR 3.5.30729; .NET CLR 4.0.20506)", + "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-GB; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6;en-US; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9", + "Mozilla/5.0 (X11; U; OpenBSD i386; en-US; rv:1.9.2.8) Gecko/20101230 Firefox/3.6.8", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100804 Gentoo Firefox/3.6.8", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100723 SUSE/3.6.8-0.1.1 Firefox/3.6.8", + "Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.2.8) Gecko/20100722 Ubuntu/10.04 (lucid) Firefox/3.6.8", + "Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8", + "Mozilla/5.0 (X11; U; Linux i686; fi-FI; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.8) Gecko/20100727 Firefox/3.6.8", + "Mozilla/5.0 (X11; U; Linux i686; de-DE; rv:1.9.2.8) Gecko/20100725 Gentoo Firefox/3.6.8", + "Mozilla/5.0 (X11; U; FreeBSD i386; de-CH; rv:1.9.2.8) Gecko/20100729 Firefox/3.6.8", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; pt-BR; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; it; rv:1.9.2.8) Gecko/20100722 AskTbADAP/3.9.1.14019 Firefox/3.6.8", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; he; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2.8) Gecko/20100722 Firefox 3.6.8 GTB7.1", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729; .NET4.0C)", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.8) Gecko/20100722 Firefox 3.6.8", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.3) Gecko/20121221 Firefox/3.6.8", + "Mozilla/5.0 (Windows; U; Windows NT 5.2; zh-TW; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; tr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729; .NET4.0E)", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.7) Gecko/20100809 Fedora/3.6.7-1.fc14 Firefox/3.6.7", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.7) Gecko/20100723 Fedora/3.6.7-1.fc13 Firefox/3.6.7", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.7) Gecko/20100726 CentOS/3.6-3.el5.centos Firefox/3.6.7", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; hu; rv:1.9.2.7) Gecko/20100713 Firefox/3.6.7 GTB7.1", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.7 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-PT; rv:1.9.2.7) Gecko/20100713 Firefox/3.6.7 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.6) Gecko/20100628 Ubuntu/10.04 (lucid) Firefox/3.6.6 GTB7.1", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.6) Gecko/20100628 Ubuntu/10.04 (lucid) Firefox/3.6.6 GTB7.0", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.6) Gecko/20100628 Ubuntu/10.04 (lucid) Firefox/3.6.6 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.6) Gecko/20100628 Ubuntu/10.04 (lucid) Firefox/3.6.6", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; pt-PT; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; it; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-CN; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 GTB7.1", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; nl; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 ( .NET CLR 3.5.30729; .NET4.0E)", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; de-AT; rv:1.9.1.8) Gecko/20100625 Firefox/3.6.6", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.4) Gecko/20100614 Ubuntu/10.04 (lucid) Firefox/3.6.4", + "Mozilla/5.0 (X11; U; Linux i686; fa; rv:1.8.1.4) Gecko/20100527 Firefox/3.6.4", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.4) Gecko/20100625 Gentoo Firefox/3.6.4", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-TW; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.4) Gecko/20100513 Firefox/3.6.4", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4 GTB7.1", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; cs; rv:1.9.2.4) Gecko/20100513 Firefox/3.6.4 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-CN; rv:1.9.2.4) Gecko/20100513 Firefox/3.6.4", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.9.2.4) Gecko/20100513 Firefox/3.6.4 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.2.4) Gecko/20100523 Firefox/3.6.4 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.4) Gecko/20100527 Firefox/3.6.4 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.4) Gecko/20100527 Firefox/3.6.4", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.4) Gecko/20100523 Firefox/3.6.4 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.4) Gecko/20100513 Firefox/3.6.4 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-CA; rv:1.9.2.4) Gecko/20100523 Firefox/3.6.4", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4 GTB7.0 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.4) Gecko/20100513 Firefox/3.6.4 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.4) Gecko/20100503 Firefox/3.6.4 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; nb-NO; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; ko; rv:1.9.2.4) Gecko/20100523 Firefox/3.6.4", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3pre) Gecko/20100405 Firefox/3.6.3plugin1 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; he; rv:1.9.1b4pre) Gecko/20100405 Firefox/3.6.3plugin1", + "Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.2.3) Gecko/20100403 Fedora/3.6.3-4.fc13 Firefox/3.6.3", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.3) Gecko/20100403 Firefox/3.6.3", + "Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2.3) Gecko/20100401 SUSE/3.6.3-1.1 Firefox/3.6.3", + "Mozilla/5.0 (X11; U; Linux i686; ko-KR; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100404 Ubuntu/10.04 (lucid) Firefox/3.6.3", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB7.1", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.3", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3", + "Mozilla/5.0 (X11; U; Linux AMD64; en-US; rv:1.9.2.3) Gecko/20100403 Ubuntu/10.10 (maverick) Firefox/3.6.3", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; it; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; hu; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB7.1", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB7.1", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB7.0 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; cs; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; ca; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.25) Gecko/20111212 Firefox/3.6.25 ( .NET CLR 3.5.30729; .NET4.0C)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.2.24) Gecko/20111103 Firefox/3.6.24", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.24) Gecko/20111103 Firefox/3.6.24", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; fr; rv:1.9.2.23) Gecko/20110920 Firefox/3.6.23", + "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en-US; rv:1.9.2.22) Gecko/20110902 Firefox/3.6.22", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.21) Gecko/20110830 Ubuntu/10.10 (maverick) Firefox/3.6.21", + "Mozilla/5.0 (X11; U; OpenBSD i386; en-US; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20", + "Mozilla/5.0 (X11; U; Linux x86_64; it; rv:1.9.2.20) Gecko/20110805 Ubuntu/10.04 (lucid) Firefox/3.6.20", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.20) Gecko/20110804 Red Hat/3.6-2.el5 Firefox/3.6.20", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; hu; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20", + "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20 ( .NET CLR 3.5.30729; .NET4.0E)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; hu; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.20) Gecko/20110803 AskTbFWV5/3.13.0.17701 Firefox/3.6.20 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; cs; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20", + "Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 GTB7.0", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.2) Gecko/20100316 AskTbSPC2/3.9.1.14019 Firefox/3.6.2", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 GTB6 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 ( .NET CLR 3.0.04506.648)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 ( .NET CLR 3.0.04506.30)", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.7; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.10pre) Gecko/20100902 Ubuntu/9.10 (karmic) Firefox/3.6.1pre", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.19", + "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en-GB; rv:1.9.2.19) Gecko/20110707 Firefox/3.6.19", + "Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.10 (maverick) Firefox/3.6.18", + "Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18 ( .NET CLR 3.5.30729; .NET4.0E)", + "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.10 (maverick) Firefox/3.6.18", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.18) Gecko/20110628 Ubuntu/10.10 (maverick) Firefox/3.6.18", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.18) Gecko/20110615 Ubuntu/10.10 (maverick) Firefox/3.6.18", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; pt-BR; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; ar; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; pt-BR; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18 ( .NET CLR 3.5.30729; .NET4.0E)", + "Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-GB; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17", + "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:5.0) Gecko/20100101 Firefox/3.6.17 Firefox/3.6.17", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; tr; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; sl; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17 ( .NET CLR 3.5.30729; .NET4.0E)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; hu; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17 ( .NET CLR 3.5.30729; .NET4.0E)", + "Mozilla/5.0 (X11; U; Linux x86_64; ja-JP; rv:1.9.2.16) Gecko/20110323 Ubuntu/10.10 (maverick) Firefox/3.6.16", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.16) Gecko/20110323 Ubuntu/9.10 (karmic) Firefox/3.6.16 FirePHP/0.5", + "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; ko; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16 ( .NET CLR 3.5.30729; .NET4.0E)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en; rv:1.9.1.13) Gecko/20100914 Firefox/3.6.16", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.16) Gecko/20110319 AskTbUTR/3.11.3.15590 Firefox/3.6.16", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.16pre) Gecko/20110304 Ubuntu/10.10 (maverick) Firefox/3.6.15pre", + "Mozilla/5.0 (X11; U; Linux i686; nl; rv:1.9.2.15) Gecko/20110303 Ubuntu/8.04 (hardy) Firefox/3.6.15", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.15) Gecko/20110303 Ubuntu/10.04 (lucid) Firefox/3.6.15 FirePHP/0.5", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.15) Gecko/20110330 CentOS/3.6-1.el5.centos Firefox/3.6.15", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15 ( .NET CLR 3.5.30729; .NET4.0C) FirePHP/0.5", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.2.15) Gecko/20110303 AskTbBT4/3.11.3.15590 Firefox/3.6.15 ( .NET CLR 3.5.30729; .NET4.0C)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14pre) Gecko/20110105 Firefox/3.6.14pre", + "Mozilla/5.0 (X11; U; Linux armv7l; en-US; rv:1.9.2.14) Gecko/20110224 Firefox/3.6.14 MB860/Version.0.43.3.MB860.AmericaMovil.en.MX", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.14) Gecko/20110218 Firefox/3.6.14", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-AU; rv:1.9.2.14) Gecko/20110218 Firefox/3.6.14", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.14) Gecko/20110218 Firefox/3.6.14 GTB7.1 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.13) Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux x86_64; pl-PL; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.04 (lucid) Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux x86_64; nb-NO; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.04 (lucid) Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux x86_64; it; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.04 (lucid) Firefox/3.6.13 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.2.13) Gecko/20110103 Fedora/3.6.13-1.fc14 Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101223 Gentoo Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101219 Gentoo Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101206 Red Hat/3.6-3.el4 Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101206 Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux x86_64; en-NZ; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.9.2.13) Gecko/20101206 Ubuntu/9.10 (karmic) Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.9.2.13) Gecko/20101206 Red Hat/3.6-2.el5 Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux x86_64; da-DK; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux MIPS32 1074Kf CPS QuadCore; en-US; rv:1.9.2.13) Gecko/20110103 Fedora/3.6.13-1.fc14 Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.2.13) Gecko/20101209 Fedora/3.6.13-1.fc13 Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.9.2.13) Gecko/20101206 Ubuntu/9.10 (karmic) Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.13) Gecko/20101209 CentOS/3.6-2.el5.centos Firefox/3.6.13", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13", + "Mozilla/5.0 (X11; U; NetBSD i386; en-US; rv:1.9.2.12) Gecko/20101030 Firefox/3.6.12", + "Mozilla/5.0 (X11; U; Linux x86_64; es-MX; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.04 (lucid) Firefox/3.6.12", + "Mozilla/5.0 (X11; U; Linux x86_64; es-ES; rv:1.9.2.12) Gecko/20101027 Fedora/3.6.12-1.fc13 Firefox/3.6.12", + "Mozilla/5.0 (X11; U; Linux x86_64; es-ES; rv:1.9.2.12) Gecko/20101026 SUSE/3.6.12-0.7.1 Firefox/3.6.12", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.12) Gecko/20101102 Gentoo Firefox/3.6.12", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.12) Gecko/20101102 Firefox/3.6.12", + "Mozilla/5.0 (X11; U; Linux ppc; fr; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.10 (maverick) Firefox/3.6.12", + "Mozilla/5.0 (X11; U; Linux i686; ko-KR; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.10 (maverick) Firefox/3.6.12", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.12) Gecko/20101114 Gentoo Firefox/3.6.12", + "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.10 (maverick) Firefox/3.6.12 GTB7.1", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.12) Gecko/20101027 Fedora/3.6.12-1.fc13 Firefox/3.6.12", + "Mozilla/5.0 (X11; FreeBSD x86_64; rv:2.0) Gecko/20100101 Firefox/3.6.12", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 ( .NET CLR 3.5.30729; .NET4.0E)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; .NET CLR 3.5.21022)", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB5", + "Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.2.11) Gecko/20101028 CentOS/3.6-2.el5.centos Firefox/3.6.11", + "Mozilla/5.0 (X11; U; Linux armv7l; en-GB; rv:1.9.2.3pre) Gecko/20100723 Firefox/3.6.11", + "Mozilla/5.0 (Windows; U; Windows NT 5.2; ru; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10", + "Mozilla/5.0 (X11; U; Linux x86_64; pt-BR; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10", + "Mozilla/5.0 (X11; U; Linux x86_64; pl-PL; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10 GTB7.1", + "Mozilla/5.0 (X11; U; Linux x86_64; el-GR; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10", + "Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10 GTB7.1", + "Mozilla/5.0 (X11; U; Linux x86_64; cs-CZ; rv:1.9.2.10) Gecko/20100915 Ubuntu/10.04 (lucid) Firefox/3.6.10", + "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.10) Gecko/20100915 Ubuntu/10.04 (lucid) Firefox/3.6.10", + "Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10", + "Mozilla/5.0 (X11; U; Linux i686; es-AR; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.10) Gecko/20100915 Ubuntu/9.04 (jaunty) Firefox/3.6.10", + "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.2.11) Gecko/20101013 Ubuntu/10.10 (maverick) Firefox/3.6.10", + "Mozilla/5.0 (X11; U; Linux i686; en-CA; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.10) Gecko/20100915 Ubuntu/9.10 (karmic) Firefox/3.6.10", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.10) Gecko/20100915 Ubuntu/10.04 (lucid) Firefox/3.6.10", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.10) Gecko/20100914 SUSE/3.6.10-0.3.1 Firefox/3.6.10", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; ro; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; nl; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.1) Gecko/20100122 firefox/3.6.1", + "Mozilla/5.0(Windows; U; Windows NT 7.0; rv:1.9.2) Gecko/20100101 Firefox/3.6", + "Mozilla/5.0(Windows; U; Windows NT 5.2; rv:1.9.2) Gecko/20100101 Firefox/3.6", + "Mozilla/5.0 (X11; U; x86_64 Linux; en_GB, en_US; rv:1.9.2) Gecko/20100115 Firefox/3.6", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2) Gecko/20100222 Ubuntu/10.04 (lucid) Firefox/3.6", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2) Gecko/20100130 Gentoo Firefox/3.6", + "Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2) Gecko/20100308 Ubuntu/10.04 (lucid) Firefox/3.6", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.2pre) Gecko/20100312 Ubuntu/9.04 (jaunty) Firefox/3.6", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2) Gecko/20100128 Gentoo Firefox/3.6", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2) Gecko/20100115 Ubuntu/10.04 (lucid) Firefox/3.6", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 FirePHP/0.4", + "Mozilla/5.0 (X11; Linux i686; rv:2.0) Gecko/20100101 Firefox/3.6", + "Mozilla/5.0 (X11; FreeBSD i686) Firefox/3.6", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru-RU; rv:1.9.2) Gecko/20100105 MRA 5.6 (build 03278) Firefox/3.6 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; lt; rv:1.9.2) Gecko/20100115 Firefox/3.6", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.3a3pre) Gecko/20100306 Firefox3.6 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.8) Gecko/20100806 Firefox/3.6", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.17) Gecko/20110420 Firefox/3.6", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.3) Gecko/20100401 Firefox/3.6;MEGAUPLOAD 1.0", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; ar; rv:1.9.2) Gecko/20100115 Firefox/3.6", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2) Gecko/20100115 Firefox/3.6", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b5pre) Gecko/20090517 Firefox/3.5b4pre (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b4pre) Gecko/20090409 Firefox/3.5b4pre", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b4pre) Gecko/20090401 Firefox/3.5b4pre", + "Mozilla/5.0 (X11; U; Linux i686; nl-NL; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4 GTB5 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; fr; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4 GTB5", + "Mozilla/5.0 (X11; U; Linux x86_64; it; rv:1.9.1.9) Gecko/20100402 Ubuntu/9.10 (karmic) Firefox/3.5.9 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (X11; U; Linux x86_64; it; rv:1.9.1.9) Gecko/20100330 Fedora/3.5.9-2.fc12 Firefox/3.5.9", + "Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.1.9) Gecko/20100317 SUSE/3.5.9-0.1.1 Firefox/3.5.9 GTB7.0", + "Mozilla/5.0 (X11; U; Linux x86_64; es-CL; rv:1.9.1.9) Gecko/20100402 Ubuntu/9.10 (karmic) Firefox/3.5.9", + "Mozilla/5.0 (X11; U; Linux x86_64; cs-CZ; rv:1.9.1.9) Gecko/20100317 SUSE/3.5.9-0.1.1 Firefox/3.5.9", + "Mozilla/5.0 (X11; U; Linux i686; nl; rv:1.9.1.9) Gecko/20100401 Ubuntu/9.10 (karmic) Firefox/3.5.9", + "Mozilla/5.0 (X11; U; Linux i686; hu-HU; rv:1.9.1.9) Gecko/20100330 Fedora/3.5.9-1.fc12 Firefox/3.5.9", + "Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.9.1.9) Gecko/20100317 SUSE/3.5.9-0.1 Firefox/3.5.9", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.9) Gecko/20100401 Ubuntu/9.10 (karmic) Firefox/3.5.9 GTB7.1", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.9) Gecko/20100315 Ubuntu/9.10 (karmic) Firefox/3.5.9", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.4) Gecko/20091028 Ubuntu/9.10 (karmic) Firefox/3.5.9", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; tr; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9 GTB7.1", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; hu; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; et; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; nl; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; es-ES; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9 GTB5 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2.13) Gecko/20101203 Firefox/3.5.9 (de)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9 GTB7.0 (.NET CLR 3.0.30618)", + "Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.1.8) Gecko/20100216 Fedora/3.5.8-1.fc12 Firefox/3.5.8", + "Mozilla/5.0 (X11; U; Linux x86_64; es-ES; rv:1.9.1.8) Gecko/20100216 Fedora/3.5.8-1.fc11 Firefox/3.5.8", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.8) Gecko/20100318 Gentoo Firefox/3.5.8", + "Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.1.8) Gecko/20100216 Fedora/3.5.8-1.fc12 Firefox/3.5.8", + "Mozilla/5.0 (X11; U; Linux i686; ja-JP; rv:1.9.1.8) Gecko/20100216 Fedora/3.5.8-1.fc12 Firefox/3.5.8", + "Mozilla/5.0 (X11; U; Linux i686; es-AR; rv:1.9.1.8) Gecko/20100214 Ubuntu/9.10 (karmic) Firefox/3.5.8", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.8) Gecko/20100214 Ubuntu/9.10 (karmic) Firefox/3.5.8", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8", + "Mozilla/5.0 (X11; U; FreeBSD i386; ja-JP; rv:1.9.1.8) Gecko/20100305 Firefox/3.5.8", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; sl; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8 (.NET CLR 3.5.30729) FirePHP/0.4", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8 GTB6", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8 GTB7.0 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2) Gecko/20100305 Gentoo Firefox/3.5.7", + "Mozilla/5.0 (X11; U; Linux x86_64; cs-CZ; rv:1.9.1.7) Gecko/20100106 Ubuntu/9.10 (karmic) Firefox/3.5.7", + "Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.9.1.7) Gecko/20091222 SUSE/3.5.7-1.1.1 Firefox/3.5.7", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 GTB6", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.2; fr; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.0.04506.648)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; fa; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.7) Gecko/20091221 MRA 5.5 (build 02842) Firefox/3.5.7 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.1.6) Gecko/20091215 Ubuntu/9.10 (karmic) Firefox/3.5.6", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.6) Gecko/20100117 Gentoo Firefox/3.5.6", + "Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.1.6) Gecko/20091216 Fedora/3.5.6-1.fc11 Firefox/3.5.6 GTB6", + "Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.9.1.6) Gecko/20091201 SUSE/3.5.6-1.1.1 Firefox/3.5.6 GTB6", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.6) Gecko/20100118 Gentoo Firefox/3.5.6", + "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.1.6) Gecko/20091215 Ubuntu/9.10 (karmic) Firefox/3.5.6 GTB6", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.6) Gecko/20091215 Ubuntu/9.10 (karmic) Firefox/3.5.6 GTB7.0", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.6) Gecko/20091215 Ubuntu/9.10 (karmic) Firefox/3.5.6", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.6) Gecko/20091201 SUSE/3.5.6-1.1.1 Firefox/3.5.6", + "Mozilla/5.0 (X11; U; Linux i686; cs-CZ; rv:1.9.1.6) Gecko/20100107 Fedora/3.5.6-1.fc12 Firefox/3.5.6", + "Mozilla/5.0 (X11; U; Linux i686; ca; rv:1.9.1.6) Gecko/20091215 Ubuntu/9.10 (karmic) Firefox/3.5.6", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; it; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; id; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.6) Gecko/20091201 MRA 5.4 (build 02647) Firefox/3.5.6 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6) Gecko/20091201 MRA 5.5 (build 02842) Firefox/3.5.6 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6) Gecko/20091201 MRA 5.5 (build 02842) Firefox/3.5.6", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 GTB6 (.NET CLR 3.5.30729) FBSMTWB", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729) FBSMTWB", + "Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.1.5) Gecko/20091109 Ubuntu/9.10 (karmic) Firefox/3.5.5", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.8pre) Gecko/20091227 Ubuntu/9.10 (karmic) Firefox/3.5.5", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091114 Gentoo Firefox/3.5.5", + "Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; uk; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 MRA 5.5 (build 02842) Firefox/3.5.5", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.1.5) Gecko/20091102 MRA 5.5 (build 02842) Firefox/3.5.5", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.2; zh-CN; rv:1.9.1.5) Gecko/Firefox/3.5.5", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 MRA 5.5 (build 02842) Firefox/3.5.5 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 MRA 5.5 (build 02842) Firefox/3.5.5", + "Mozilla/5.0 (Windows NT 5.1; U; zh-cn; rv:1.8.1) Gecko/20091102 Firefox/3.5.5", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; pl; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 FBSMTWB", + "Mozilla/5.0 (X11; U; Linux x86_64; ja; rv:1.9.1.4) Gecko/20091016 SUSE/3.5.4-1.1.2 Firefox/3.5.4", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4 (.NET CLR 3.5.30729) FBSMTWB", + "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.4) Gecko/20091007 Firefox/3.5.4", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4 ( .NET CLR 3.5.30729; .NET4.0E)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.4) Gecko/20091007 Firefox/3.5.4", + "Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.1.5) Gecko/20091109 Ubuntu/9.10 (karmic) Firefox/3.5.3pre", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090914 Slackware/13.0_stable Firefox/3.5.3", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3", + "Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.1.3) Gecko/20091020 Ubuntu/9.10 (karmic) Firefox/3.5.3", + "Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.3) Gecko/20090919 Firefox/3.5.3", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.3) Gecko/20090912 Gentoo Firefox/3.5.3 FirePHP/0.3", + "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 GTB5", + "Mozilla/5.0 (X11; U; FreeBSD i386; ru-RU; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.5.3;MEGAUPLOAD 1.0 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; de-DE; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; ko; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; fi; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 2.0.50727; .NET CLR 3.0.30618; .NET CLR 3.5.21022; .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; bg; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; ko; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (X11; U; Linux x86_64; pl; rv:1.9.1.2) Gecko/20090911 Slackware Firefox/3.5.2", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.2) Gecko/20090803 Slackware Firefox/3.5.2", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.2) Gecko/20090803 Firefox/3.5.2 Slackware", + "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.9.1.2) Gecko/20090804 Firefox/3.5.2", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2) Gecko/20090729 Slackware/13.0 Firefox/3.5.2", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2", + "Mozilla/5.0 (X11; U; Linux i686 (x86_64); fr; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB7.1 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; es-MX; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; uk; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.16) Gecko/20101130 Firefox/3.5.16 FirePHP/0.4", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.16) Gecko/20101130 AskTbMYC/3.9.1.14019 Firefox/3.5.16", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; it; rv:1.9.1.16) Gecko/20101130 Firefox/3.5.16 GTB7.1 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.16) Gecko/20101130 MRA 5.4 (build 02647) Firefox/3.5.16 ( .NET CLR 3.5.30729; .NET4.0C)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.16) Gecko/20101130 Firefox/3.5.16 GTB7.1", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.16) Gecko/20101130 AskTbPLTV5/3.8.0.12304 Firefox/3.5.16 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.1.16) Gecko/20101130 Firefox/3.5.16 GTB7.1 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.1.16) Gecko/20101130 Firefox/3.5.16 GTB7.1", + "Mozilla/5.0 (X11; U; Linux x86_64; it; rv:1.9.1.15) Gecko/20101027 Fedora/3.5.15-1.fc12 Firefox/3.5.15", + "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.1.15) Gecko/20101027 Fedora/3.5.15-1.fc12 Firefox/3.5.15", + "Mozilla/5.0 (Windows; U; Windows NT 5.0; ru; rv:1.9.1.13) Gecko/20100914 Firefox/3.5.13", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.12) Gecko/2009070611 Firefox/3.5.12", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.12) Gecko/20100824 MRA 5.7 (build 03755) Firefox/3.5.12", + "Mozilla/5.0 (X11; U; Linux; en-US; rv:1.9.1.11) Gecko/20100720 Firefox/3.5.11", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.11) Gecko/20100701 Firefox/3.5.11 ( .NET CLR 3.5.30729; .NET4.0C)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.9.1.11) Gecko/20100701 Firefox/3.5.11 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; hu; rv:1.9.1.11) Gecko/20100701 Firefox/3.5.11", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.10) Gecko/20100504 Firefox/3.5.11 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.1.10) Gecko/20100506 SUSE/3.5.10-0.1.1 Firefox/3.5.10", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.1.10) Gecko/20100504 Firefox/3.5.10 GTB7.0 ( .NET CLR 3.5.30729)", + "Mozilla/5.0 (X11; U; Linux x86_64; rv:1.9.1.1) Gecko/20090716 Linux Firefox/3.5.1", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.3) Gecko/20100524 Firefox/3.5.1", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.1) Gecko/20090716 Linux Mint/7 (Gloria) Firefox/3.5.1", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.1) Gecko/20090716 Firefox/3.5.1", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.1) Gecko/20090714 SUSE/3.5.1-1.1 Firefox/3.5.1", + "Mozilla/5.0 (X11; U; Linux x86; rv:1.9.1.1) Gecko/20090716 Linux Firefox/3.5.1", + "Mozilla/5.0 (X11; U; Linux i686; nl; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1", + "Mozilla/5.0 (X11; U; Linux i686; nl-NL; rv:1.9.0.19) Gecko/20090720 Firefox/3.5.1", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2pre) Gecko/20090729 Ubuntu/9.04 (jaunty) Firefox/3.5.1", + "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1 GTB5", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.1) Gecko/20090722 Gentoo Firefox/3.5.1", + "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.1) Gecko/20090714 SUSE/3.5.1-1.1 Firefox/3.5.1", + "Mozilla/5.0 (X11; U; DragonFly i386; de; rv:1.9.1) Gecko/20090720 Firefox/3.5.1", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.1) Gecko/20090718 Firefox/3.5.1", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; tr; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1 (.NET CLR 3.5.30729)", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1 (.NET CLR 3.5.30729)", + "Opera/9.80 (Windows NT 6.1; U; es-ES) Presto/2.9.181 Version/12.00", + "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52", + "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; de) Presto/2.9.168 Version/11.52", + "Opera/9.80 (Windows NT 5.1; U; en) Presto/2.9.168 Version/11.51", + "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; de) Opera 11.51", + "Opera/9.80 (X11; Linux x86_64; U; fr) Presto/2.9.168 Version/11.50", + "Opera/9.80 (X11; Linux i686; U; hu) Presto/2.9.168 Version/11.50", + "Opera/9.80 (X11; Linux i686; U; ru) Presto/2.8.131 Version/11.11", + "Opera/9.80 (X11; Linux i686; U; es-ES) Presto/2.8.131 Version/11.11", + "Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/5.0 Opera 11.11", + "Opera/9.80 (X11; Linux x86_64; U; bg) Presto/2.8.131 Version/11.10", + "Opera/9.80 (Windows NT 6.0; U; en) Presto/2.8.99 Version/11.10", + "Opera/9.80 (Windows NT 5.1; U; zh-tw) Presto/2.8.131 Version/11.10", + "Opera/9.80 (Windows NT 6.1; Opera Tablet/15165; U; en) Presto/2.8.149 Version/11.1", + "Opera/9.80 (X11; Linux x86_64; U; Ubuntu/10.10 (maverick); pl) Presto/2.7.62 Version/11.01", + "Opera/9.80 (X11; Linux i686; U; ja) Presto/2.7.62 Version/11.01", + "Opera/9.80 (X11; Linux i686; U; fr) Presto/2.7.62 Version/11.01", + "Opera/9.80 (Windows NT 6.1; U; zh-tw) Presto/2.7.62 Version/11.01", + "Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.7.62 Version/11.01", + "Opera/9.80 (Windows NT 6.1; U; sv) Presto/2.7.62 Version/11.01", + "Opera/9.80 (Windows NT 6.1; U; en-US) Presto/2.7.62 Version/11.01", + "Opera/9.80 (Windows NT 6.1; U; cs) Presto/2.7.62 Version/11.01", + "Opera/9.80 (Windows NT 6.0; U; pl) Presto/2.7.62 Version/11.01", + "Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.7.62 Version/11.01", + "Opera/9.80 (Windows NT 5.1; U;) Presto/2.7.62 Version/11.01", + "Opera/9.80 (Windows NT 5.1; U; cs) Presto/2.7.62 Version/11.01", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101213 Opera/9.80 (Windows NT 6.1; U; zh-tw) Presto/2.7.62 Version/11.01", + "Mozilla/5.0 (Windows NT 6.1; U; nl; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 11.01", + "Mozilla/5.0 (Windows NT 6.1; U; de; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 11.01", + "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; de) Opera 11.01", + "Opera/9.80 (X11; Linux x86_64; U; pl) Presto/2.7.62 Version/11.00", + "Opera/9.80 (X11; Linux i686; U; it) Presto/2.7.62 Version/11.00", + "Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.6.37 Version/11.00", + "Opera/9.80 (Windows NT 6.1; U; pl) Presto/2.7.62 Version/11.00", + "Opera/9.80 (Windows NT 6.1; U; ko) Presto/2.7.62 Version/11.00", + "Opera/9.80 (Windows NT 6.1; U; fi) Presto/2.7.62 Version/11.00", + "Opera/9.80 (Windows NT 6.1; U; en-GB) Presto/2.7.62 Version/11.00", + "Opera/9.80 (Windows NT 6.1 x64; U; en) Presto/2.7.62 Version/11.00", + "Opera/9.80 (Windows NT 6.0; U; en) Presto/2.7.39 Version/11.00", + "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.39 Version/11.00", + "Opera/9.80 (Windows NT 5.1; U; MRA 5.5 (build 02842); ru) Presto/2.7.62 Version/11.00", + "Opera/9.80 (Windows NT 5.1; U; it) Presto/2.7.62 Version/11.00", + "Mozilla/5.0 (Windows NT 6.0; U; ja; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 11.00", + "Mozilla/5.0 (Windows NT 5.1; U; pl; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 11.00", + "Mozilla/5.0 (Windows NT 5.1; U; de; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 11.00", + "Mozilla/4.0 (compatible; MSIE 8.0; X11; Linux x86_64; pl) Opera 11.00", + "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; fr) Opera 11.00", + "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; ja) Opera 11.00", + "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; en) Opera 11.00", + "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; pl) Opera 11.00", + "Opera/9.80 (Windows NT 6.1; U; pl) Presto/2.6.31 Version/10.70", + "Mozilla/5.0 (Windows NT 5.2; U; ru; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.70", + "Mozilla/5.0 (Windows NT 5.1; U; zh-cn; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.70", + "Opera/9.80 (Windows NT 5.2; U; zh-cn) Presto/2.6.30 Version/10.63", + "Opera/9.80 (Windows NT 5.2; U; en) Presto/2.6.30 Version/10.63", + "Opera/9.80 (Windows NT 5.1; U; MRA 5.6 (build 03278); ru) Presto/2.6.30 Version/10.63", + "Opera/9.80 (Windows NT 5.1; U; pl) Presto/2.6.30 Version/10.62", + "Mozilla/5.0 (X11; Linux x86_64; U; de; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.62", + "Mozilla/4.0 (compatible; MSIE 8.0; X11; Linux x86_64; de) Opera 10.62", + "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; en) Opera 10.62", + "Opera/9.80 (X11; Linux i686; U; pl) Presto/2.6.30 Version/10.61", + "Opera/9.80 (X11; Linux i686; U; es-ES) Presto/2.6.30 Version/10.61", + "Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.6.30 Version/10.61", + "Opera/9.80 (Windows NT 6.1; U; en) Presto/2.6.30 Version/10.61", + "Opera/9.80 (Windows NT 6.0; U; it) Presto/2.6.30 Version/10.61", + "Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.6.30 Version/10.61", + "Opera/9.80 (Windows 98; U; de) Presto/2.6.30 Version/10.61", + "Opera/9.80 (Macintosh; Intel Mac OS X; U; nl) Presto/2.6.30 Version/10.61", + "Opera/9.80 (X11; Linux i686; U; en) Presto/2.5.27 Version/10.60", + "Opera/9.80 (Windows NT 6.0; U; nl) Presto/2.6.30 Version/10.60", + "Opera/10.60 (Windows NT 5.1; U; zh-cn) Presto/2.6.30 Version/10.60", + "Opera/10.60 (Windows NT 5.1; U; en-US) Presto/2.6.30 Version/10.60", + "Opera/9.80 (X11; Linux i686; U; it) Presto/2.5.24 Version/10.54", + "Opera/9.80 (X11; Linux i686; U; en-GB) Presto/2.5.24 Version/10.53", + "Mozilla/5.0 (Windows NT 5.1; U; zh-cn; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.53", + "Mozilla/5.0 (Windows NT 5.1; U; Firefox/5.0; en; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.53", + "Mozilla/5.0 (Windows NT 5.1; U; Firefox/4.5; en; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.53", + "Mozilla/5.0 (Windows NT 5.1; U; Firefox/3.5; en; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.53", + "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; ko) Opera 10.53", + "Opera/9.80 (Windows NT 6.1; U; fr) Presto/2.5.24 Version/10.52", + "Opera/9.80 (Windows NT 6.1; U; en) Presto/2.5.22 Version/10.51", + "Opera/9.80 (Windows NT 6.0; U; cs) Presto/2.5.22 Version/10.51", + "Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.5.22 Version/10.51", + "Opera/9.80 (Linux i686; U; en) Presto/2.5.22 Version/10.51", + "Mozilla/5.0 (Windows NT 6.1; U; en-GB; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.51", + "Mozilla/5.0 (Linux i686; U; en; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.51", + "Mozilla/4.0 (compatible; MSIE 8.0; Linux i686; en) Opera 10.51", + "Opera/9.80 (Windows NT 6.1; U; zh-tw) Presto/2.5.22 Version/10.50", + "Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.5.22 Version/10.50", + "Opera/9.80 (Windows NT 6.1; U; sk) Presto/2.6.22 Version/10.50", + "Opera/9.80 (Windows NT 6.1; U; ja) Presto/2.5.22 Version/10.50", + "Opera/9.80 (Windows NT 6.0; U; zh-cn) Presto/2.5.22 Version/10.50", + "Opera/9.80 (Windows NT 5.1; U; sk) Presto/2.5.22 Version/10.50", + "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.5.22 Version/10.50", + "Opera/10.50 (Windows NT 6.1; U; en-GB) Presto/2.2.2", + "Opera/9.80 (S60; SymbOS; Opera Tablet/9174; U; en) Presto/2.7.81 Version/10.5", + "Opera/9.80 (X11; U; Linux i686; en-US; rv:1.9.2.3) Presto/2.2.15 Version/10.10", + "Opera/9.80 (X11; Linux x86_64; U; it) Presto/2.2.15 Version/10.10", + "Opera/9.80 (Windows NT 6.1; U; de) Presto/2.2.15 Version/10.10", + "Opera/9.80 (Windows NT 6.0; U; Gecko/20100115; pl) Presto/2.2.15 Version/10.10", + "Opera/9.80 (Windows NT 6.0; U; en) Presto/2.2.15 Version/10.10", + "Opera/9.80 (Windows NT 5.1; U; de) Presto/2.2.15 Version/10.10", + "Opera/9.80 (Windows NT 5.1; U; cs) Presto/2.2.15 Version/10.10", + "Mozilla/5.0 (Windows NT 6.0; U; tr; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 10.10", + "Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686; de) Opera 10.10", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 6.0; tr) Opera 10.10", + "Opera/9.80 (X11; Linux x86_64; U; en-GB) Presto/2.2.15 Version/10.01", + "Opera/9.80 (X11; Linux x86_64; U; en) Presto/2.2.15 Version/10.00", + "Opera/9.80 (X11; Linux x86_64; U; de) Presto/2.2.15 Version/10.00", + "Opera/9.80 (X11; Linux i686; U; ru) Presto/2.2.15 Version/10.00", + "Opera/9.80 (X11; Linux i686; U; pt-BR) Presto/2.2.15 Version/10.00", + "Opera/9.80 (X11; Linux i686; U; pl) Presto/2.2.15 Version/10.00", + "Opera/9.80 (X11; Linux i686; U; nb) Presto/2.2.15 Version/10.00", + "Opera/9.80 (X11; Linux i686; U; en-GB) Presto/2.2.15 Version/10.00", + "Opera/9.80 (X11; Linux i686; U; en) Presto/2.2.15 Version/10.00", + "Opera/9.80 (X11; Linux i686; U; Debian; pl) Presto/2.2.15 Version/10.00", + "Opera/9.80 (X11; Linux i686; U; de) Presto/2.2.15 Version/10.00", + "Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.2.15 Version/10.00", + "Opera/9.80 (Windows NT 6.1; U; fi) Presto/2.2.15 Version/10.00", + "Opera/9.80 (Windows NT 6.1; U; en) Presto/2.2.15 Version/10.00", + "Opera/9.80 (Windows NT 6.1; U; de) Presto/2.2.15 Version/10.00", + "Opera/9.80 (Windows NT 6.1; U; cs) Presto/2.2.15 Version/10.00", + "Opera/9.80 (Windows NT 6.0; U; en) Presto/2.2.15 Version/10.00", + "Opera/9.80 (Windows NT 6.0; U; de) Presto/2.2.15 Version/10.00", + "Opera/9.80 (Windows NT 5.2; U; en) Presto/2.2.15 Version/10.00", + "Opera/9.80 (Windows NT 5.1; U; zh-cn) Presto/2.2.15 Version/10.00", + "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.00", + "Opera/9.99 (X11; U; sk)", + "Opera/9.99 (Windows NT 5.1; U; pl) Presto/9.9.9", + "Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Windows; U; Windows NT 5.1; en) AppleWebKit/886; U; en) Presto/2.4.15", + "Opera/9.70 (Linux ppc64 ; U; en) Presto/2.2.1", + "Opera/9.70 (Linux i686 ; U; zh-cn) Presto/2.2.0", + "Opera/9.70 (Linux i686 ; U; en-us) Presto/2.2.0", + "Opera/9.70 (Linux i686 ; U; en) Presto/2.2.1", + "Opera/9.70 (Linux i686 ; U; en) Presto/2.2.0", + "Opera/9.70 (Linux i686 ; U; ; en) Presto/2.2.1", + "Opera/9.70 (Linux i686 ; U; ; en) Presto/2.2.1", + "Mozilla/5.0 (Linux i686 ; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.70", + "Mozilla/4.0 (compatible; MSIE 6.0; Linux i686 ; en) Opera 9.70", + "Opera/9.64(Windows NT 5.1; U; en) Presto/2.1.1", + "Opera/9.64 (X11; Linux x86_64; U; pl) Presto/2.1.1", + "Opera/9.64 (X11; Linux x86_64; U; hr) Presto/2.1.1", + "Opera/9.64 (X11; Linux x86_64; U; en-GB) Presto/2.1.1", + "Opera/9.64 (X11; Linux x86_64; U; en) Presto/2.1.1", + "Opera/9.64 (X11; Linux x86_64; U; de) Presto/2.1.1", + "Opera/9.64 (X11; Linux x86_64; U; cs) Presto/2.1.1", + "Opera/9.64 (X11; Linux i686; U; tr) Presto/2.1.1", + "Opera/9.64 (X11; Linux i686; U; sv) Presto/2.1.1", + "Opera/9.64 (X11; Linux i686; U; pl) Presto/2.1.1", + "Opera/9.64 (X11; Linux i686; U; nb) Presto/2.1.1", + "Opera/9.64 (X11; Linux i686; U; Linux Mint; nb) Presto/2.1.1", + "Opera/9.64 (X11; Linux i686; U; Linux Mint; it) Presto/2.1.1", + "Opera/9.64 (X11; Linux i686; U; en) Presto/2.1.1", + "Opera/9.64 (X11; Linux i686; U; de) Presto/2.1.1", + "Opera/9.64 (X11; Linux i686; U; da) Presto/2.1.1", + "Opera/9.64 (Windows NT 6.1; U; MRA 5.5 (build 02842); ru) Presto/2.1.1", + "Opera/9.64 (Windows NT 6.1; U; de) Presto/2.1.1", + "Opera/9.64 (Windows NT 6.0; U; zh-cn) Presto/2.1.1", + "Opera/9.64 (Windows NT 6.0; U; pl) Presto/2.1.1", + "Opera/9.63 (X11; Linux x86_64; U; ru) Presto/2.1.1", + "Opera/9.63 (X11; Linux x86_64; U; cs) Presto/2.1.1", + "Opera/9.63 (X11; Linux i686; U; ru) Presto/2.1.1", + "Opera/9.63 (X11; Linux i686; U; ru)", + "Opera/9.63 (X11; Linux i686; U; nb) Presto/2.1.1", + "Opera/9.63 (X11; Linux i686; U; en)", + "Opera/9.63 (X11; Linux i686; U; de) Presto/2.1.1", + "Opera/9.63 (X11; Linux i686)", + "Opera/9.63 (X11; FreeBSD 7.1-RELEASE i386; U; en) Presto/2.1.1", + "Opera/9.63 (Windows NT 6.1; U; hu) Presto/2.1.1", + "Opera/9.63 (Windows NT 6.1; U; en) Presto/2.1.1", + "Opera/9.63 (Windows NT 6.1; U; de) Presto/2.1.1", + "Opera/9.63 (Windows NT 6.0; U; pl) Presto/2.1.1", + "Opera/9.63 (Windows NT 6.0; U; nb) Presto/2.1.1", + "Opera/9.63 (Windows NT 6.0; U; fr) Presto/2.1.1", + "Opera/9.63 (Windows NT 6.0; U; en) Presto/2.1.1", + "Opera/9.63 (Windows NT 6.0; U; cs) Presto/2.1.1", + "Opera/9.63 (Windows NT 5.2; U; en) Presto/2.1.1", + "Opera/9.63 (Windows NT 5.2; U; de) Presto/2.1.1", + "Opera/9.63 (Windows NT 5.1; U; pt-BR) Presto/2.1.1", + "Opera/9.62 (X11; Linux x86_64; U; ru) Presto/2.1.1", + "Opera/9.62 (X11; Linux x86_64; U; en_GB, en_US) Presto/2.1.1", + "Opera/9.62 (X11; Linux i686; U; pt-BR) Presto/2.1.1", + "Opera/9.62 (X11; Linux i686; U; Linux Mint; en) Presto/2.1.1", + "Opera/9.62 (X11; Linux i686; U; it) Presto/2.1.1", + "Opera/9.62 (X11; Linux i686; U; fi) Presto/2.1.1", + "Opera/9.62 (X11; Linux i686; U; en) Presto/2.1.1", + "Opera/9.62 (Windows NT 6.1; U; en) Presto/2.1.1", + "Opera/9.62 (Windows NT 6.1; U; de) Presto/2.1.1", + "Opera/9.62 (Windows NT 6.0; U; pl) Presto/2.1.1", + "Opera/9.62 (Windows NT 6.0; U; nb) Presto/2.1.1", + "Opera/9.62 (Windows NT 6.0; U; en-GB) Presto/2.1.1", + "Opera/9.62 (Windows NT 6.0; U; en) Presto/2.1.1", + "Opera/9.62 (Windows NT 6.0; U; de) Presto/2.1.1", + "Opera/9.62 (Windows NT 5.2; U; en) Presto/2.1.1", + "Opera/9.62 (Windows NT 5.1; U; zh-tw) Presto/2.1.1", + "Opera/9.62 (Windows NT 5.1; U; zh-cn) Presto/2.1.1", + "Opera/9.62 (Windows NT 5.1; U; tr) Presto/2.1.1", + "Opera/9.62 (Windows NT 5.1; U; ru) Presto/2.1.1", + "Opera/9.62 (Windows NT 5.1; U; pt-BR) Presto/2.1.1", + "Opera/9.61 (X11; Linux x86_64; U; fr) Presto/2.1.1", + "Opera/9.61 (X11; Linux i686; U; ru) Presto/2.1.1", + "Opera/9.61 (X11; Linux i686; U; pl) Presto/2.1.1", + "Opera/9.61 (X11; Linux i686; U; en) Presto/2.1.1", + "Opera/9.61 (X11; Linux i686; U; de) Presto/2.1.1", + "Opera/9.61 (Windows NT 6.0; U; ru) Presto/2.1.1", + "Opera/9.61 (Windows NT 6.0; U; pt-BR) Presto/2.1.1", + "Opera/9.61 (Windows NT 6.0; U; http://lucideer.com; en-GB) Presto/2.1.1", + "Opera/9.61 (Windows NT 6.0; U; en) Presto/2.1.1", + "Opera/9.61 (Windows NT 5.2; U; en) Presto/2.1.1", + "Opera/9.61 (Windows NT 5.1; U; zh-tw) Presto/2.1.1", + "Opera/9.61 (Windows NT 5.1; U; zh-cn) Presto/2.1.1", + "Opera/9.61 (Windows NT 5.1; U; ru) Presto/2.1.1", + "Opera/9.61 (Windows NT 5.1; U; fr) Presto/2.1.1", + "Opera/9.61 (Windows NT 5.1; U; en-GB) Presto/2.1.1", + "Opera/9.61 (Windows NT 5.1; U; en) Presto/2.1.1", + "Opera/9.61 (Windows NT 5.1; U; de) Presto/2.1.1", + "Opera/9.61 (Windows NT 5.1; U; cs) Presto/2.1.1", + "Opera/9.61 (Macintosh; Intel Mac OS X; U; de) Presto/2.1.1", + "Mozilla/5.0 (Windows NT 5.1; U; en-GB; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.61", + "Opera/9.60 (X11; Linux x86_64; U)", + "Opera/9.60 (X11; Linux i686; U; ru) Presto/2.1.1", + "Opera/9.60 (X11; Linux i686; U; en-GB) Presto/2.1.1", + "Opera/9.60 (Windows NT 6.0; U; uk) Presto/2.1.1", + "Opera/9.60 (Windows NT 6.0; U; ru) Presto/2.1.1", + "Opera/9.60 (Windows NT 6.0; U; pl) Presto/2.1.1", + "Opera/9.60 (Windows NT 6.0; U; de) Presto/2.1.1", + "Opera/9.60 (Windows NT 6.0; U; bg) Presto/2.1.1", + "Opera/9.60 (Windows NT 5.1; U; tr) Presto/2.1.1", + "Opera/9.60 (Windows NT 5.1; U; sv) Presto/2.1.1", + "Opera/9.60 (Windows NT 5.1; U; es-ES) Presto/2.1.1", + "Opera/9.60 (Windows NT 5.1; U; en-GB) Presto/2.1.1", + "Opera/9.60 (Windows NT 5.0; U; en) Presto/2.1.1", + "Mozilla/5.0 (X11; Linux x86_64; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.60", + "Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux x86_64; en) Opera 9.60", + "Opera/9.52 (X11; Linux x86_64; U; ru)", + "Opera/9.52 (X11; Linux x86_64; U; en)", + "Opera/9.52 (X11; Linux x86_64; U)", + "Opera/9.52 (X11; Linux ppc; U; de)", + "Opera/9.52 (X11; Linux i686; U; fr)", + "Opera/9.52 (X11; Linux i686; U; en)", + "Opera/9.52 (X11; Linux i686; U; cs)", + "Opera/9.52 (Windows NT 6.0; U; Opera/9.52 (X11; Linux x86_64; U); en)", + "Opera/9.52 (Windows NT 6.0; U; fr)", + "Opera/9.52 (Windows NT 6.0; U; en)", + "Opera/9.52 (Windows NT 6.0; U; de)", + "Opera/9.52 (Windows NT 5.2; U; ru)", + "Opera/9.52 (Windows NT 5.0; U; en)", + "Opera/9.52 (Macintosh; PPC Mac OS X; U; ja)", + "Opera/9.52 (Macintosh; PPC Mac OS X; U; fr)", + "Opera/9.52 (Macintosh; Intel Mac OS X; U; pt-BR)", + "Opera/9.52 (Macintosh; Intel Mac OS X; U; pt)", + "Mozilla/5.0 (Windows NT 5.1; U; de; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.52", + "Mozilla/5.0 (Windows NT 5.1; U; ; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.52", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 9.52", + "Opera/9.51 (X11; Linux i686; U; Linux Mint; en)", + "Opera/9.51 (X11; Linux i686; U; fr)", + "Opera/9.51 (X11; Linux i686; U; de)", + "Opera/9.51 (Windows NT 6.0; U; sv)", + "Opera/9.51 (Windows NT 6.0; U; es)", + "Opera/9.51 (Windows NT 6.0; U; en)", + "Opera/9.51 (Windows NT 5.2; U; en)", + "Opera/9.51 (Windows NT 5.1; U; nn)", + "Opera/9.51 (Windows NT 5.1; U; fr)", + "Opera/9.51 (Windows NT 5.1; U; es-LA)", + "Opera/9.51 (Windows NT 5.1; U; es-AR)", + "Opera/9.51 (Windows NT 5.1; U; en-GB)", + "Opera/9.51 (Windows NT 5.1; U; en)", + "Opera/9.51 (Windows NT 5.1; U; da)", + "Opera/9.51 (Macintosh; Intel Mac OS X; U; en)", + "Mozilla/5.0 (X11; Linux i686; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51", + "Mozilla/5.0 (Windows NT 6.0; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51", + "Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51", + "Mozilla/5.0 (Windows NT 5.1; U; en-GB; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51", + "Mozilla/5.0 (Windows NT 5.1; U; de; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51", + "Opera/9.50 (X11; Linux x86_64; U; pl)", + "Opera/9.50 (X11; Linux x86_64; U; nb)", + "Opera/9.50 (X11; Linux ppc; U; en)", + "Opera/9.50 (X11; Linux i686; U; es-ES)", + "Opera/9.50 (Windows NT 5.2; U; it)", + "Opera/9.50 (Windows NT 5.1; U; ru)", + "Opera/9.50 (Windows NT 5.1; U; nn)", + "Opera/9.50 (Windows NT 5.1; U; nl)", + "Opera/9.50 (Windows NT 5.1; U; it)", + "Opera/9.50 (Windows NT 5.1; U; es-ES)", + "Opera/9.50 (Macintosh; Intel Mac OS X; U; en)", + "Opera/9.50 (Macintosh; Intel Mac OS X; U; de)", + "Mozilla/5.0 (Windows NT 5.1; U; zh-cn; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50", + "Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux x86_64; en) Opera 9.50", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 6.0; en) Opera 9.50", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; en) Opera 9.50", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; de) Opera 9.50", + "Opera/9.5 (Windows NT 6.0; U; en)", + "Opera/9.5 (Windows NT 5.1; U; fr)", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9b3) Gecko/2008020514 Opera 9.5", + "Opera 9.4 (Windows NT 6.1; U; en)", + "Opera 9.4 (Windows NT 5.3; U; en)", + "Opera/9.30 (Nintendo Wii; U; ; 2071; Wii Shop Channel/1.0; en)", + "Opera/9.30 (Nintendo Wii; U; ; 2047-7;pt-br)", + "Opera/9.30 (Nintendo Wii; U; ; 2047-7;es)", + "Opera/9.30 (Nintendo Wii; U; ; 2047-7;en)", + "Opera/9.30 (Nintendo Wii; U; ; 2047-7; fr)", + "Opera/9.30 (Nintendo Wii; U; ; 2047-7; de)", + "Opera/9.27 (X11; Linux i686; U; fr)", + "Opera/9.27 (X11; Linux i686; U; en)", + "Opera/9.27 (Windows NT 5.2; U; en)", + "Opera/9.27 (Windows NT 5.1; U; ja)", + "Opera/9.27 (Macintosh; Intel Mac OS X; U; sv)", + "Mozilla/5.0 (Windows NT 5.2; U; en; rv:1.8.0) Gecko/20060728 Firefox/1.5.0 Opera 9.27", + "Mozilla/5.0 (Windows NT 5.1; U; es-la; rv:1.8.0) Gecko/20060728 Firefox/1.5.0 Opera 9.27", + "Mozilla/5.0 (Macintosh; Intel Mac OS X; U; en; rv:1.8.0) Gecko/20060728 Firefox/1.5.0 Opera 9.27", + "Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686; en) Opera 9.27", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; en) Opera 9.27", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; es-la) Opera 9.27", + "Opera/9.26 (Windows; U; pl)", + "Opera/9.26 (Windows NT 5.1; U; zh-cn)", + "Opera/9.26 (Windows NT 5.1; U; pl)", + "Opera/9.26 (Windows NT 5.1; U; nl)", + "Opera/9.26 (Windows NT 5.1; U; MEGAUPLOAD 2.0; en)", + "Opera/9.26 (Windows NT 5.1; U; de)", + "Opera/9.26 (Macintosh; PPC Mac OS X; U; en)", + "Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.0) Gecko/20060728 Firefox/1.5.0 Opera 9.26", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 6.0; en) Opera 9.26", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.26", + "Opera/9.25 (X11; Linux i686; U; fr-ca)", + "Opera/9.25 (X11; Linux i686; U; fr)", + "Opera/9.25 (X11; Linux i686; U; en)", + "Opera/9.25 (Windows NT 6.0; U; SV1; MEGAUPLOAD 2.0; ru)", + "Opera/9.25 (Windows NT 6.0; U; sv)", + "Opera/9.25 (Windows NT 6.0; U; ru)", + "Opera/9.25 (Windows NT 6.0; U; MEGAUPLOAD 1.0; ru)", + "Opera/9.25 (Windows NT 6.0; U; en-US)", + "Opera/9.25 (Windows NT 5.2; U; en)", + "Opera/9.25 (Windows NT 5.1; U; zh-cn)", + "Opera/9.25 (Windows NT 5.1; U; ru)", + "Opera/9.25 (Windows NT 5.1; U; MEGAUPLOAD 1.0; pt-br)", + "Opera/9.25 (Windows NT 5.1; U; lt)", + "Opera/9.25 (Windows NT 5.1; U; de)", + "Opera/9.25 (Windows NT 5.0; U; en)", + "Opera/9.25 (Windows NT 5.0; U; cs)", + "Opera/9.25 (Windows NT 4.0; U; en)", + "Opera/9.25 (OpenSolaris; U; en)", + "Opera/9.25 (Macintosh; PPC Mac OS X; U; en)", + "Opera/9.25 (Macintosh; Intel Mac OS X; U; en)", + "Opera/9.24 (X11; SunOS i86pc; U; en)", + "Opera/9.24 (X11; Linux i686; U; de)", + "Opera/9.24 (Windows NT 5.1; U; tr)", + "Opera/9.24 (Windows NT 5.1; U; ru)", + "Opera/9.24 (Windows NT 5.0; U; ru)", + "Opera/9.24 (Macintosh; PPC Mac OS X; U; en)", + "Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.0) Gecko/20060728 Firefox/1.5.0 Opera 9.24", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.24", + "Mozilla/4.0 (compatible; MSIE 6.0; Mac_PowerPC; en) Opera 9.24", + "Opera/9.23 (X11; Linux x86_64; U; en)", + "Opera/9.23 (X11; Linux i686; U; es-es)", + "Opera/9.23 (X11; Linux i686; U; en)", + "Opera/9.23 (Windows NT 6.0; U; de)", + "Opera/9.23 (Windows NT 5.1; U; zh-cn)", + "Opera/9.23 (Windows NT 5.1; U; SV1; MEGAUPLOAD 1.0; ru)", + "Opera/9.23 (Windows NT 5.1; U; pt)", + "Opera/9.23 (Windows NT 5.1; U; ja)", + "Opera/9.23 (Windows NT 5.1; U; it)", + "Opera/9.23 (Windows NT 5.1; U; fi)", + "Opera/9.23 (Windows NT 5.1; U; en)", + "Opera/9.23 (Windows NT 5.1; U; de)", + "Opera/9.23 (Windows NT 5.1; U; da)", + "Opera/9.23 (Windows NT 5.0; U; en)", + "Opera/9.23 (Windows NT 5.0; U; de)", + "Opera/9.23 (Nintendo Wii; U; ; 1038-58; Wii Internet Channel/1.0; en)", + "Opera/9.23 (Macintosh; Intel Mac OS X; U; ja)", + "Opera/9.23 (Mac OS X; ru)", + "Opera/9.23 (Mac OS X; fr)", + "Mozilla/5.0 (X11; Linux i686; U; en; rv:1.8.0) Gecko/20060728 Firefox/1.5.0 Opera 9.23", + "Opera/9.22 (X11; OpenBSD i386; U; en)", + "Opera/9.22 (X11; Linux i686; U; en)", + "Opera/9.22 (X11; Linux i686; U; de)", + "Opera/9.22 (Windows NT 6.0; U; ru)", + "Opera/9.22 (Windows NT 6.0; U; en)", + "Opera/9.22 (Windows NT 5.1; U; SV1; MEGAUPLOAD 2.0; ru)", + "Opera/9.22 (Windows NT 5.1; U; SV1; MEGAUPLOAD 1.0; ru)", + "Opera/9.22 (Windows NT 5.1; U; pl)", + "Opera/9.22 (Windows NT 5.1; U; fr)", + "Opera/9.22 (Windows NT 5.1; U; en)", + "Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.0) Gecko/20060728 Firefox/1.5.0 Opera 9.22", + "Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686; en) Opera 9.22", + "Opera/9.21 (X11; Linux x86_64; U; en)", + "Opera/9.21 (X11; Linux i686; U; es-es)", + "Opera/9.21 (X11; Linux i686; U; en)", + "Opera/9.21 (X11; Linux i686; U; de)", + "Opera/9.21 (Windows NT 6.0; U; nb)", + "Opera/9.21 (Windows NT 6.0; U; en)", + "Opera/9.21 (Windows NT 5.2; U; en)", + "Opera/9.21 (Windows NT 5.1; U; SV1; MEGAUPLOAD 1.0; ru)", + "Opera/9.21 (Windows NT 5.1; U; ru)", + "Opera/9.21 (Windows NT 5.1; U; pt-br)", + "Opera/9.21 (Windows NT 5.1; U; pl)", + "Opera/9.21 (Windows NT 5.1; U; nl)", + "Opera/9.21 (Windows NT 5.1; U; MEGAUPLOAD 1.0; en)", + "Opera/9.21 (Windows NT 5.1; U; fr)", + "Opera/9.21 (Windows NT 5.1; U; en)", + "Opera/9.21 (Windows NT 5.1; U; de)", + "Opera/9.21 (Windows NT 5.0; U; de)", + "Opera/9.21 (Windows 98; U; en)", + "Opera/9.21 (Macintosh; PPC Mac OS X; U; en)", + "Opera/9.21 (Macintosh; Intel Mac OS X; U; en)", + "Opera/9.20(Windows NT 5.1; U; en)", + "Opera/9.20 (X11; Linux x86_64; U; en)", + "Opera/9.20 (X11; Linux ppc; U; en)", + "Opera/9.20 (X11; Linux i686; U; tr)", + "Opera/9.20 (X11; Linux i686; U; ru)", + "Opera/9.20 (X11; Linux i686; U; pl)", + "Opera/9.20 (X11; Linux i686; U; es-es)", + "Opera/9.20 (X11; Linux i686; U; en)", + "Opera/9.20 (X11; Linux i586; U; en)", + "Opera/9.20 (Windows NT 6.0; U; es-es)", + "Opera/9.20 (Windows NT 6.0; U; en)", + "Opera/9.20 (Windows NT 6.0; U; de)", + "Opera/9.20 (Windows NT 5.2; U; en)", + "Opera/9.20 (Windows NT 5.1; U; zh-tw)", + "Opera/9.20 (Windows NT 5.1; U; nb)", + "Opera/9.20 (Windows NT 5.1; U; MEGAUPLOAD=1.0; es-es)", + "Opera/9.20 (Windows NT 5.1; U; it)", + "Opera/9.20 (Windows NT 5.1; U; es-es)", + "Opera/9.20 (Windows NT 5.1; U; es-AR)", + "Opera/9.20 (Windows NT 5.1; U; en)", + "Opera/9.12 (X11; Linux i686; U; en) (Ubuntu)", + "Opera/9.12 (Windows NT 5.0; U; ru)", + "Opera/9.12 (Windows NT 5.0; U)", + "Opera/9.10 (X11; Linux; U; en)", + "Opera/9.10 (X11; Linux x86_64; U; en)", + "Opera/9.10 (X11; Linux i686; U; pl)", + "Opera/9.10 (X11; Linux i686; U; kubuntu;pl)", + "Opera/9.10 (X11; Linux i686; U; en)", + "Opera/9.10 (X11; Linux i386; U; en)", + "Opera/9.10 (Windows NT 6.0; U; it-IT)", + "Opera/9.10 (Windows NT 6.0; U; en)", + "Opera/9.10 (Windows NT 5.2; U; en)", + "Opera/9.10 (Windows NT 5.2; U; de)", + "Opera/9.10 (Windows NT 5.1; U; zh-tw)", + "Opera/9.10 (Windows NT 5.1; U; sv)", + "Opera/9.10 (Windows NT 5.1; U; pt)", + "Opera/9.10 (Windows NT 5.1; U; pl)", + "Opera/9.10 (Windows NT 5.1; U; nl)", + "Opera/9.10 (Windows NT 5.1; U; MEGAUPLOAD 1.0; pl)", + "Opera/9.10 (Windows NT 5.1; U; it)", + "Opera/9.10 (Windows NT 5.1; U; hu)", + "Opera/9.10 (Windows NT 5.1; U; fi)", + "Opera/9.10 (Windows NT 5.1; U; es-es)", + "Opera/9.02 (X11; Linux i686; U; pl)", + "Opera/9.02 (X11; Linux i686; U; hu)", + "Opera/9.02 (X11; Linux i686; U; en)", + "Opera/9.02 (X11; Linux i686; U; de)", + "Opera/9.02 (Windows NT 5.2; U; en)", + "Opera/9.02 (Windows NT 5.2; U; de)", + "Opera/9.02 (Windows NT 5.1; U; zh-cn)", + "Opera/9.02 (Windows NT 5.1; U; ru)", + "Opera/9.02 (Windows NT 5.1; U; pt-br)", + "Opera/9.02 (Windows NT 5.1; U; pl)", + "Opera/9.02 (Windows NT 5.1; U; nb)", + "Opera/9.02 (Windows NT 5.1; U; ja)", + "Opera/9.02 (Windows NT 5.1; U; fi)", + "Opera/9.02 (Windows NT 5.1; U; en)", + "Opera/9.02 (Windows NT 5.1; U; de)", + "Opera/9.02 (Windows NT 5.0; U; sv)", + "Opera/9.02 (Windows NT 5.0; U; pl)", + "Opera/9.02 (Windows NT 5.0; U; en)", + "Opera/9.01 (X11; OpenBSD i386; U; en)", + "Opera/9.01 (X11; Linux i686; U; en)", + "Opera/9.01 (X11; FreeBSD 6 i386; U;pl)", + "Opera/9.01 (X11; FreeBSD 6 i386; U; en)", + "Opera/9.01 (Windows NT 5.2; U; ru)", + "Opera/9.01 (Windows NT 5.2; U; en)", + "Opera/9.01 (Windows NT 5.1; U; ru)", + "Opera/9.01 (Windows NT 5.1; U; pl)", + "Opera/9.01 (Windows NT 5.1; U; ja)", + "Opera/9.01 (Windows NT 5.1; U; es-es)", + "Opera/9.01 (Windows NT 5.1; U; en)", + "Opera/9.01 (Windows NT 5.1; U; de)", + "Opera/9.01 (Windows NT 5.1; U; da)", + "Opera/9.01 (Windows NT 5.1; U; cs)", + "Opera/9.01 (Windows NT 5.1; U; bg)", + "Opera/9.01 (Windows NT 5.0; U; en)", + "Opera/9.01 (Windows NT 5.0; U; de)", + "Opera/9.01 (Macintosh; PPC Mac OS X; U; it)", + "Opera/9.01 (Macintosh; PPC Mac OS X; U; en)", + "Opera/9.00 (X11; Linux i686; U; pl)", + "Opera/9.00 (X11; Linux i686; U; en)", + "Opera/9.00 (X11; Linux i686; U; de)", + "Opera/9.00 (Windows NT 5.2; U; ru)", + "Opera/9.00 (Windows NT 5.2; U; pl)", + "Opera/9.00 (Windows NT 5.2; U; en)", + "Opera/9.00 (Windows NT 5.1; U; ru)", + "Opera/9.00 (Windows NT 5.1; U; pl)", + "Opera/9.00 (Windows NT 5.1; U; nl)", + "Opera/9.00 (Windows NT 5.1; U; ja)", + "Opera/9.00 (Windows NT 5.1; U; it)", + "Opera/9.00 (Windows NT 5.1; U; fr)", + "Opera/9.00 (Windows NT 5.1; U; fi)", + "Opera/9.00 (Windows NT 5.1; U; es-es)", + "Opera/9.00 (Windows NT 5.1; U; en)", + "Opera/9.00 (Windows NT 5.1; U; de)", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.12 Safari/535.11", + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.8 (KHTML, like Gecko) Chrome/17.0.940.0 Safari/535.8", + "Mozilla/5.0 (X11; CrOS i686 1193.158.0) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7", + "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7", + "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7", + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7xs5D9rRDFpg2g", + "Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7", + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.36 Safari/535.7", + "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.36 Safari/535.7", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.36 Safari/535.7", + "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.6 (KHTML, like Gecko) Chrome/16.0.897.0 Safari/535.6", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.54 Safari/535.2", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.2 (KHTML, like Gecko) Ubuntu/11.10 Chromium/15.0.874.120 Chrome/15.0.874.120 Safari/535.2", + "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2", + "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.872.0 Safari/535.2", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.2 (KHTML, like Gecko) Ubuntu/11.04 Chromium/15.0.871.0 Chrome/15.0.871.0 Safari/535.2", + "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.864.0 Safari/535.2", + "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.861.0 Safari/535.2", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.861.0 Safari/535.2", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.861.0 Safari/535.2", + "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.860.0 Safari/535.2", + "Chrome/15.0.860.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/15.0.860.0", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/14.0.825.0 Chrome/14.0.825.0 Safari/535.1", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.824.0 Safari/535.1", + "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.815.10913 Safari/535.1", + "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.815.0 Safari/535.1", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/14.0.814.0 Chrome/14.0.814.0 Safari/535.1", + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.814.0 Safari/535.1", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/10.04 Chromium/14.0.813.0 Chrome/14.0.813.0 Safari/535.1", + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.813.0 Safari/535.1", + "Mozilla/5.0 (Windows NT 5.2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.813.0 Safari/535.1", + "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.813.0 Safari/535.1", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.813.0 Safari/535.1", + "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.812.0 Safari/535.1", + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.811.0 Safari/535.1", + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.810.0 Safari/535.1", + "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.810.0 Safari/535.1", + "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.809.0 Safari/535.1", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/10.10 Chromium/14.0.808.0 Chrome/14.0.808.0 Safari/535.1", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/10.04 Chromium/14.0.808.0 Chrome/14.0.808.0 Safari/535.1", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/10.04 Chromium/14.0.804.0 Chrome/14.0.804.0 Safari/535.1", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.803.0 Safari/535.1", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/14.0.803.0 Chrome/14.0.803.0 Safari/535.1", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.803.0 Safari/535.1", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.803.0 Safari/535.1", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.803.0 Safari/535.1", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.803.0 Safari/535.1", + "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.801.0 Safari/535.1", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.801.0 Safari/535.1", + "Mozilla/5.0 (Windows NT 5.2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.794.0 Safari/535.1", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.794.0 Safari/535.1", + "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.792.0 Safari/535.1", + "Mozilla/5.0 (Windows NT 5.2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.792.0 Safari/535.1", + "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.792.0 Safari/535.1", + "Mozilla/5.0 (Macintosh; PPC Mac OS X 10_6_7) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.790.0 Safari/535.1", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.790.0 Safari/535.1", + "Mozilla/5.0 (X11; CrOS i686 13.587.48) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.43 Safari/535.1", + "Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41", + "Mozilla/5.0 ArchLinux (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", + "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", + "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", + "Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", + "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_3) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_3) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.32 Safari/535.1", + "Mozilla/5.0 (X11; Linux amd64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.24 Safari/535.1", + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.24 Safari/535.1", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.24 Safari/535.1", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/535.1", + "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/535.1", + "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/535.1", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215 Safari/535.1", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215 Safari/535.1", + "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215 Safari/535.1", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.215 Safari/535.1", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.20 Safari/535.1", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.20 Safari/535.1", + "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.20 Safari/535.1", + "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.20 Safari/535.1", + "Mozilla/5.0 (X11; CrOS i686 0.13.587) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.14 Safari/535.1", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.36 (KHTML, like Gecko) Chrome/13.0.766.0 Safari/534.36", + "Mozilla/5.0 (X11; Linux amd64) AppleWebKit/534.36 (KHTML, like Gecko) Chrome/13.0.766.0 Safari/534.36", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.35 (KHTML, like Gecko) Ubuntu/10.10 Chromium/13.0.764.0 Chrome/13.0.764.0 Safari/534.35", + "Mozilla/5.0 (X11; CrOS i686 0.13.507) AppleWebKit/534.35 (KHTML, like Gecko) Chrome/13.0.763.0 Safari/534.35", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.33 (KHTML, like Gecko) Ubuntu/9.10 Chromium/13.0.752.0 Chrome/13.0.752.0 Safari/534.33", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_8) AppleWebKit/534.31 (KHTML, like Gecko) Chrome/13.0.748.0 Safari/534.31", + "Mozilla/5.0 (Windows NT 6.1; en-US) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.750.0 Safari/534.30", + "Mozilla/5.0 (X11; CrOS i686 12.433.109) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.93 Safari/534.30", + "Mozilla/5.0 (X11; CrOS i686 12.0.742.91) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.93 Safari/534.30", + "Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/12.0.742.91", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91 Chromium/12.0.742.91 Safari/534.30", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.68 Safari/534.30", + "Mozilla/5.0 ArchLinux (X11; U; Linux x86_64; en-US) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.60 Safari/534.30", + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.53 Safari/534.30", + "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.113 Safari/534.30", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/11.04 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.04 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/11.04 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/10.04 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30", + "Mozilla/5.0 (Windows NT 7.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30", + "Mozilla/5.0 (Windows NT 5.2) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30", + "Mozilla/5.0 (Windows 8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_4) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30", + "Mozilla/5.0 (X11; CrOS i686 12.433.216) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.105 Safari/534.30", + "Mozilla/5.0 ArchLinux (X11; U; Linux x86_64; en-US) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30", + "Mozilla/5.0 ArchLinux (X11; U; Linux x86_64; en-US) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Slackware/Chrome/12.0.742.100 Safari/534.30", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30", + "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_4) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.724.100 Safari/534.30", + "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.25 (KHTML, like Gecko) Chrome/12.0.706.0 Safari/534.25", + "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.25 (KHTML, like Gecko) Chrome/12.0.704.0 Safari/534.25", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.703.0 Chrome/12.0.703.0 Safari/534.24", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.702.0 Chrome/12.0.702.0 Safari/534.24", + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/12.0.702.0 Safari/534.24", + "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/12.0.702.0 Safari/534.24", + "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.700.3 Safari/534.24", + "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.699.0 Safari/534.24", + "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.699.0 Safari/534.24", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24", + "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.697.0 Safari/534.24", + "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_8) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24", + "Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/11.0.696.50", + "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.43 Safari/534.24", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24", + "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.3 Safari/534.24", + "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.3 Safari/534.24", + "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.3 Safari/534.24", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.14 Safari/534.24", + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.12 Safari/534.24", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.12 Safari/534.24", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Ubuntu/10.04 Chromium/11.0.696.0 Chrome/11.0.696.0 Safari/534.24", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.0 Safari/534.24", + "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.694.0 Safari/534.24", + "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.23 (KHTML, like Gecko) Chrome/11.0.686.3 Safari/534.23", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.21 (KHTML, like Gecko) Chrome/11.0.682.0 Safari/534.21", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.21 (KHTML, like Gecko) Chrome/11.0.678.0 Safari/534.21", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_7_0; en-US) AppleWebKit/534.21 (KHTML, like Gecko) Chrome/11.0.678.0 Safari/534.21", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.20 (KHTML, like Gecko) Chrome/11.0.672.2 Safari/534.20", + "Mozilla/5.0 (Windows NT) AppleWebKit/534.20 (KHTML, like Gecko) Chrome/11.0.672.2 Safari/534.20", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.20 (KHTML, like Gecko) Chrome/11.0.672.2 Safari/534.20", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.20 (KHTML, like Gecko) Chrome/11.0.669.0 Safari/534.20", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.19 (KHTML, like Gecko) Chrome/11.0.661.0 Safari/534.19", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.18 (KHTML, like Gecko) Chrome/11.0.661.0 Safari/534.18", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.18 (KHTML, like Gecko) Chrome/11.0.660.0 Safari/534.18", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/11.0.655.0 Safari/534.17", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/11.0.655.0 Safari/534.17", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/11.0.654.0 Safari/534.17", + "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/11.0.652.0 Safari/534.17", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/10.0.649.0 Safari/534.17", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; de-DE) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/10.0.649.0 Safari/534.17", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.82 Safari/534.16", + "Mozilla/5.0 (X11; U; Linux armv7l; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16", + "Mozilla/5.0 (X11; U; FreeBSD x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16", + "Mozilla/5.0 (X11; U; FreeBSD i386; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204", + "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.134 Safari/534.16", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.134 Safari/534.16", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.134 Safari/534.16", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.134 Safari/534.16", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.648.133 Chrome/10.0.648.133 Safari/534.16", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16", + "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.648.133 Chrome/10.0.648.133 Safari/534.16", + "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.648.127 Chrome/10.0.648.127 Safari/534.16", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.127 Safari/534.16", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.127 Safari/534.16", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.127 Safari/534.16", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru-RU) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.648.0 Chrome/10.0.648.0 Safari/534.16", + "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.648.0 Chrome/10.0.648.0 Safari/534.16", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.0 Safari/534.16", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.639.0 Safari/534.16", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.638.0 Safari/534.16", + "Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.634.0 Safari/534.16", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.634.0 Safari/534.16", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 SUSE/10.0.626.0 (KHTML, like Gecko) Chrome/10.0.626.0 Safari/534.16", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.15 (KHTML, like Gecko) Chrome/10.0.613.0 Safari/534.15", + "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.15 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.613.0 Chrome/10.0.613.0 Safari/534.15", + "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.15 (KHTML, like Gecko) Ubuntu/10.04 Chromium/10.0.612.3 Chrome/10.0.612.3 Safari/534.15", + "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.15 (KHTML, like Gecko) Chrome/10.0.612.1 Safari/534.15", + "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.15 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.611.0 Chrome/10.0.611.0 Safari/534.15", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/10.0.602.0 Safari/534.14", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/10.0.601.0 Safari/534.14", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/10.0.601.0 Safari/534.14", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/540.0 (KHTML,like Gecko) Chrome/9.1.0.0 Safari/540.0", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/540.0 (KHTML, like Gecko) Ubuntu/10.10 Chrome/9.1.0.0 Safari/540.0", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Ubuntu/10.10 Chromium/9.0.600.0 Chrome/9.0.600.0 Safari/534.14", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.599.0 Safari/534.13", + "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.84 Safari/534.13", + "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.44 Safari/534.13", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.19 Safari/534.13", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.15 Safari/534.13", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.15 Safari/534.13", + "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13", + "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13", + "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13", + "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.0 Safari/534.13" + ] +} diff --git a/lib/addic7ed/episode.rb b/lib/addic7ed/episode.rb deleted file mode 100644 index ece3f6a..0000000 --- a/lib/addic7ed/episode.rb +++ /dev/null @@ -1,95 +0,0 @@ -require 'net/http' -require 'open-uri' - -module Addic7ed - class Episode - - attr_reader :video_file, :untagged - - def initialize(filename, untagged = false) - @video_file = Addic7ed::VideoFile.new(filename) - @untagged = untagged - end - - def url(lang = 'fr') - check_language_availability(lang) - @localized_urls ||= {} - @localized_urls[lang] ||= "http://www.addic7ed.com/serie/#{ShowList.url_segment_for(video_file.showname)}/#{video_file.season}/#{video_file.episode}/#{LANGUAGES[lang][:id]}" - end - - def subtitles(lang = 'fr') - check_language_availability(lang) - find_subtitles(lang) unless @subtitles and @subtitles[lang] - return @subtitles[lang] - end - - def best_subtitle(lang = 'fr', no_hi = false) - check_language_availability(lang) - find_best_subtitle(lang, no_hi) unless @best_subtitle and @best_subtitle[lang] - return @best_subtitle[lang] - end - - def download_best_subtitle!(lang, no_hi = false, http_redirect_limit = 8) - raise HTTPError.new('Too many HTTP redirects') unless http_redirect_limit > 0 - uri = URI(best_subtitle(lang, no_hi).url) - response = get_http_response(uri, url(lang)) - if response.kind_of?(Net::HTTPRedirection) - follow_redirection(lang, no_hi, response['location'], http_redirect_limit) - else - save_subtitle(response.body, lang) - end - end - - protected - - def find_subtitles(lang) - initialize_language(lang) - parser = Addic7ed::Parser.new(self, lang) - @subtitles[lang] = parser.extract_subtitles - end - - def find_best_subtitle(lang, no_hi = false) - @best_subtitle ||= {} - subtitles(lang).each do |sub| - @best_subtitle[lang] = sub if sub.works_for?(video_file.group, no_hi) and sub.can_replace? @best_subtitle[lang] - end - raise NoSubtitleFound unless @best_subtitle[lang] - end - - def check_language_availability(lang) - raise LanguageNotSupported unless LANGUAGES[lang] - end - - def initialize_language(lang) - @subtitles ||= {} - @subtitles[lang] ||= [] - end - - def get_http_response(uri, referer) - Net::HTTP.start(uri.hostname, uri.port) do |http| - request = Net::HTTP::Get.new(uri.request_uri) - # Addic7ed needs the Referer to be correct. User-agent is just here to fake a real browser request. - request['Referer'] = referer - request['User-Agent'] = USER_AGENTS.sample - http.request(request) - end - rescue - raise DownloadError - end - - def follow_redirection(lang, no_hi, new_uri, http_redirect_limit) - # Addic7ed is serving redirection URL not-encoded, but Ruby does not support it (see http://bugs.ruby-lang.org/issues/7396) - best_subtitle(lang).url = URI.escape(new_uri) - raise DownloadLimitReached if /^\/downloadexceeded.php/.match best_subtitle(lang).url - download_best_subtitle!(lang, no_hi, http_redirect_limit - 1) - end - - def save_subtitle(content, lang) - Kernel.open "#{video_file}".gsub(/\.\w{3}$/, untagged ? ".srt" : ".#{lang}.srt"), 'w' do |f| - f << content - end - rescue - raise SubtitleCannotBeSaved - end - end -end diff --git a/lib/addic7ed/errors.rb b/lib/addic7ed/errors.rb index b22f5bf..e5f9827 100644 --- a/lib/addic7ed/errors.rb +++ b/lib/addic7ed/errors.rb @@ -1,9 +1,12 @@ -module Addic7ed - exceptions = [ - :InvalidFilename, :ShowNotFound, :EpisodeNotFound, :LanguageNotSupported, - :ParsingError, :NoSubtitleFound, :DownloadError, :DownloadLimitReached, - :SubtitleCannotBeSaved, :HTTPError - ] +# frozen_string_literal: true - exceptions.each { |e| const_set(e, Class.new(StandardError)) } +module Addic7ed + class InvalidFilename < StandardError; end + class ShowNotFound < StandardError; end + class EpisodeNotFound < StandardError; end + class LanguageNotSupported < StandardError; end + class ParsingError < StandardError; end + class NoSubtitleFound < StandardError; end + class DownloadError < StandardError; end + class DailyLimitExceeded < DownloadError; end end diff --git a/lib/addic7ed/models/episode.rb b/lib/addic7ed/models/episode.rb new file mode 100644 index 0000000..f358a41 --- /dev/null +++ b/lib/addic7ed/models/episode.rb @@ -0,0 +1,95 @@ +# frozen_string_literal: true + +require "net/http" +require "open-uri" + +module Addic7ed + # Represents a TV show episode. + # + # @attr show [String] TV show name. + # @attr season [Numeric] Season number. + # @attr number [Numeric] Episode number in the season. + + class Episode + attr_reader :show, :season, :number + + # Creates a new instance of {Episode}. + # + # @param show [String] TV show name + # (_e.g._ both +"Game.of.Thrones"+ and +"Game of Thrones"+ are valid) + # @param season [Numeric] Season number + # @param number [Numeric] Episode number in the season + # + # @example + # Addic7ed::Episode.new(show: "Game of Thrones", season: 6, number: 9) + # #=> # + + def initialize(show:, season:, number:) + @show = show + @season = season + @number = number + end + + # Returns the URL of the Addic7ed webpage listing subtitles for this {Episode}. + # If +language+ is given, it returns the URL of the page with subtitles for this language only. + # (_warning:_ despite requesting a language, Addic7ed may display subtitles in all languages + # if the requested language has no subtitle) + # + # @param language [String] Language code we want the webpage to list subtitles in. + # + # @return [String] Fully qualified URL of the webpage on Addic7ed. + # + # @example + # Addic7ed::Episode.new("Game of Thrones", 6, 9).page_url + # #=> "http://www.addic7ed.com/serie/Game_of_Thrones/6/9/0" + # + # Addic7ed::Episode.new("Game of Thrones", 6, 9).page_url(:fr) + # #=> "http://www.addic7ed.com/serie/Game_of_Thrones/6/9/8" + + def page_url(language = nil) + return localized_url(0) if language.nil? + localized_urls[language] + end + + # Returns all available subtitles for this episode. + # + # @return [SubtitlesCollection] the collection of subtitles. + # + # @example + # Addic7ed::Episode.new("Game of Thrones", 6, 9) + # #=> #, + # # #, + # # # + # # ] + + def subtitles + @subtitles ||= SubtitlesCollection.new( + Addic7ed::ParsePage.call(page_url) + ) + end + + private + + def localized_urls + @localized_urls ||= languages_hash { |code, lang| { code => localized_url(lang[:id]) } } + end + + def url_encoded_showname + @url_encoded_showname ||= URLEncodeShowName.call(show) + end + + def localized_url(lang_id) + "http://www.addic7ed.com/serie/#{url_encoded_showname}/#{season}/#{number}/#{lang_id}" + end + + def languages_hash(&block) + Hash.new { raise LanguageNotSupported }.merge(LANGUAGES.map(&block).reduce(&:merge)) + end + end +end diff --git a/lib/addic7ed/models/subtitle.rb b/lib/addic7ed/models/subtitle.rb new file mode 100644 index 0000000..34717f4 --- /dev/null +++ b/lib/addic7ed/models/subtitle.rb @@ -0,0 +1,91 @@ +# frozen_string_literal: true + +module Addic7ed + # Represents a subtitle on Addic7ed. + # + # This model contains as much information as possible for a subtitle + # as parsed on Addic7ed website. + # + # @attr version [String] Main compatible release group(s) + # (evenually as a comma-separated list). + # @attr language [String] Language the subtitle is written in + # (_e.g._: "French", "English"). + # @attr status [String] Translation/synchronization advancement status + # (_e.g._: "60%"" or "Completed"). + # @attr source [String] URL of website the subtitle was first published on. + # @attr downloads [Numeric] Number of times this subtitle has been downloaded. + # @attr comment [String] Comment manually added by the subtitle author/publisher + # (usually related to extra-compatibilities or resync source). + # @attr corrected [Boolean] Indicates if the subtitle has been corrected. + # @attr hi [Boolean] Indicates if the subtitle embeds hearing-impaired sequences. + # @attr url [String] Download URL of actual subtitle file (warning: Addic7ed servers + # won't serve a subtite file without a proper +Referer+ HTTP header which can be + # retrieved from +episode.page_url+). + + class Subtitle + attr_reader :version, :language, :status, :source, :downloads, :comment, :corrected, :hi + attr_accessor :url + + # Creates a new instance of {Subtitle} created using +options+, + # usually from data parsed from an Addic7ed page. + # + # The +options+ hash can have the following keys as symbols: + # * +version+: main compatible release group(s) as parsed on the Addic7ed website + # * +language+: language full name + # * +status+: full-text advancement status + # * +source+: URL of website the subtitle was originally published on + # * +downloads+: number of times the subtitle has been downloaded + # * +comment+: manually added comment from the author or publisher + # * +corrected+: indicates if subtitle has been corrected + # * +hi+: indicates if subtitle embeds hearing-impaired sequences + # * +url+: download URL for the subtitle file + # + # @param options [Hash] subtitle information as a {Hash} + # + # @example + # Addic7ed::Subtitle.new( + # version: "Version KILLERS, 720p AVS, 0.00 MBs", + # language: "French", + # status: "Completed", + # source: "http://sous-titres.eu", + # downloads: 10335, + # comment: "works with 1080p.BATV", + # corrected: true, + # hi: false, + # url: "http://www.addic7ed.com/original/113643/4" + # ) + # #=> # + + def initialize(options = {}) + %i[language status url source corrected hi].each do |opt| + instance_variable_set(:"@#{opt}", options[opt]) + end + @downloads = options[:downloads].to_i || 0 + @version = NormalizeVersion.call(options[:version]) + @comment = NormalizeComment.call(options[:comment]) + end + + # Completeness status of the {Subtitle}. + # + # @return [Boolean] Returns +true+ if {Subtitle} is complete, + # +false+ otherwise (partially complete) + # + # @example + # Addic7ed::Subtitle.new(status: "50%").completed? #=> false + # Addic7ed::Subtitle.new(status: "Completed").completed? #=> true + + def completed? + status == "Completed" + end + end +end diff --git a/lib/addic7ed/models/subtitles_collection.rb b/lib/addic7ed/models/subtitles_collection.rb new file mode 100644 index 0000000..9a62db2 --- /dev/null +++ b/lib/addic7ed/models/subtitles_collection.rb @@ -0,0 +1,98 @@ +# frozen_string_literal: true + +module Addic7ed + # Represents a collection of {Subtitle} objects. + # + # This collection is a custom {Enumerable} which provides + # some methods to filter, order and choose the best subtitle. + class SubtitlesCollection + include Enumerable + + # @!visibility private + def each(&block) + @subtitles.each(&block) + end + + # Creates a filterable, sortable collection of subtitles + # @param subtitles [Enumerable] List of subtitles to initialize the collection with + # + # @return [SubtitleCollection] the initialized subtitles collection + + def initialize(subtitles = []) + @subtitles = subtitles + end + + # Returns only subtitles that are compatible with +group+. + # @param group [String] Release group we want the returned subtitles to be compatible with + # + # @return [SubtitleCollection] Copy of collection with subtitles compatible with +group+ only + # + # @example + # fov = Addic7ed::Subtitle.new(version: "FOV") + # lol = Addic7ed::Subtitle.new(version: "LOL") + # dimension = Addic7ed::Subtitle.new(version: "DIMENSION") + # collection = Addic7ed::SubtitlesCollection.new([fov, lol, dimension]) + # + # collection.compatible_with("DIMENSION") + # #=> [#, #] + + def compatible_with(group) + chainable(select { |subtitle| CheckCompatibility.call(subtitle, group) }) + end + + # Returns only completed subtitles. + # + # @return [SubtitleCollection] Copy of collection with completed subtitles only + # + # @example + # complete = Addic7ed::Subtitle.new(status: "Completed") + # wip = Addic7ed::Subtitle.new(status: "50%") + # collection = Addic7ed::SubtitlesCollection.new([complete, wip]) + # + # collection.completed + # #=> [#] + + def completed + chainable(select(&:completed?)) + end + + # Returns only subtitles for given +language_code+. + # + # @return [SubtitleCollection] Copy of collection filtered by +language+ + # + # @example + # english_subtitle = Addic7ed::Subtitle.new(language: "English") + # french_subtitle = Addic7ed::Subtitle.new(language: "French") + # collection = Addic7ed::SubtitlesCollection.new([english_subtitle, french_subtitle]) + # + # collection.for_language(:en) + # #=> [#] + + def for_language(language_code) + raise LanguageNotSupported unless LANGUAGES.key? language_code.to_sym + chainable(select { |subtitle| subtitle.language == LANGUAGES[language_code.to_sym][:name] }) + end + + # Returns the most downloaded subtitle. + # + # @return [Subtitle] Subtitle of the collection with the more downloads + # + # @example + # popular = Addic7ed::Subtitle.new(downloads: 1000) + # unpopular = Addic7ed::Subtitle.new(downloads: 3) + # collection = Addic7ed::SubtitlesCollection.new([popular, unpopular]) + # + # collection.most_popular + # #=> # + + def most_popular + sort_by(&:downloads).last + end + + private + + def chainable(array) + self.class.new(array) + end + end +end diff --git a/lib/addic7ed/models/video_file.rb b/lib/addic7ed/models/video_file.rb new file mode 100644 index 0000000..ad7f6fd --- /dev/null +++ b/lib/addic7ed/models/video_file.rb @@ -0,0 +1,122 @@ +# frozen_string_literal: true + +module Addic7ed + # Represents the video file you're looking a subtitle for. + # + # This class will extract from the video file name the show name, season, episode, group, etc. + # + # It expects the file to be named according to The Scene rules, + # but actually supports a wide variety of common naming schemes. + class VideoFile + # @!visibility private + TVSHOW_REGEX = /\A(?.*\w)[\[\. ]+S?(?\d{1,2})[-\. ]?[EX]?(?\d{2})([-\. ]?[EX]?\d{2})*[\]\. ]+(?.*)-(?\w*)\[?(?\w*)\]?(\.\w{3})?\z/i # rubocop:disable Metrics/LineLength + + # @!visibility private + attr_reader :filename, :regexp_matches + + # Returns a new instance of {VideoFile}. + # It expects a video file name, either with or without path and + # either absolute or relative. + # + # @param filename [String] File name of the video file on disk + # (either relative or absolute). + # + # @return [String] Distribution group name + # + # @example + # Addic7ed::VideoFile.new("Game.of.Thrones.S06E09.720p.HDTV.x264-AVS.mkv") + # Addic7ed::VideoFile.new("/home/mike/Game.of.Thrones.S06E09.720p.HDTV.x264-AVS.mkv") + # Addic7ed::VideoFile.new("../Game.of.Thrones.S06E09.720p.HDTV.x264-AVS.mkv") + + def initialize(filename) + @filename = filename + @regexp_matches = TVSHOW_REGEX.match(basename) + raise InvalidFilename if regexp_matches.nil? + end + + # Returns the TV show name extracted from the file name. + # + # @return [String] TV show name + # + # @example + # video_file = Addic7ed::VideoFile.new("Game.of.Thrones.S06E09.720p.HDTV.x264-AVS.mkv") + # video_file.showname #=> "Game.of.Thrones" + + def showname + @showname ||= regexp_matches[:showname] + end + + # Returns the TV show season number extracted from the file name. + # + # @return [Integer] TV show season number + # + # @example + # video_file = Addic7ed::VideoFile.new("Game.of.Thrones.S06E09.720p.HDTV.x264-AVS.mkv") + # video_file.season #=> 6 + + def season + @season ||= regexp_matches[:season].to_i + end + + # Returns the TV show episode number extracted from the file name. + # + # @return [Integer] TV show episode number + # + # @example + # video_file = Addic7ed::VideoFile.new("Game.of.Thrones.S06E09.720p.HDTV.x264-AVS.mkv") + # video_file.episode #=> 9 + + def episode + @episode ||= regexp_matches[:episode].to_i + end + + # Returns the upcased release tags extracted from the file name + # (like +HDTV+, +720P+, +XviD+, +PROPER+, ...). + # + # @return [Array] Release video, audio or packaging tags + # + # @example + # video_file = Addic7ed::VideoFile.new("Game.of.Thrones.S06E09.720p.HDTV.x264-AVS.mkv") + # video_file.tags #=> ["720P", "HDTV", "X264"] + + def tags + @tags ||= regexp_matches[:tags].upcase.split(/[\. ]/) + end + + # Returns the upcased release group extracted from the file name. + # + # @return [String] Release group name + # + # @example + # video_file = Addic7ed::VideoFile.new("Game.of.Thrones.S06E09.720p.HDTV.x264-AVS.mkv") + # video_file.group #=> "AVS" + + def group + @group ||= regexp_matches[:group].upcase + end + + # Returns the upcased distribution group extracted from the file name. + # + # @return [String] Distribution group name + # + # @example + # video_file = Addic7ed::VideoFile.new("Game.of.Thrones.S06E09.720p.HDTV.x264-AVS[eztv].mkv") + # video_file.distribution #=> "EZTV" + + def distribution + @distribution ||= regexp_matches[:distribution].upcase + end + + # Returns the base file name (without path). + # + # @return [String] Base file name + # + # @example + # video_file = Addic7ed::VideoFile.new("../Game.of.Thrones.S06E09.720p.HDTV.x264-AVS.mkv") + # video_file.basename #=> "Game.of.Thrones.S06E09.720p.HDTV.x264-AVS.mkv" + + def basename + @basename ||= File.basename(filename) + end + end +end diff --git a/lib/addic7ed/parser.rb b/lib/addic7ed/parser.rb deleted file mode 100644 index 10f7bf0..0000000 --- a/lib/addic7ed/parser.rb +++ /dev/null @@ -1,105 +0,0 @@ -require 'oga' -require 'net/http' -require 'open-uri' - -module Addic7ed - class Parser - - def initialize(episode, lang) - @episode, @lang = episode, lang - @subtitles = [] - end - - def extract_subtitles - @dom = subtitles_page_dom - check_subtitles_presence - parse_subtitle_nodes_list - @subtitles - end - - protected - - def subtitles_page_dom - uri = URI(@episode.url(@lang)) - response = Net::HTTP.start(uri.hostname, uri.port) do |http| - request = Net::HTTP::Get.new(uri.request_uri) - request["User-Agent"] = USER_AGENTS.sample - http.request(request) - end - raise EpisodeNotFound unless response.body - Oga.parse_html(response.body) - end - - def check_subtitles_presence - raise NoSubtitleFound unless @dom.css('select#filterlang ~ font[color="yellow"]').empty? - end - - def parse_subtitle_nodes_list - sublist_node = @dom.css('#container95m table.tabel95 table.tabel95') - raise NoSubtitleFound if sublist_node.size == 0 - sublist_node.each do |sub_node| - @subtitles << parse_subtitle_node(sub_node) - end - end - - def parse_subtitle_node(sub_node) - Addic7ed::Subtitle.new( - version: extract_version(sub_node), - language: extract_language(sub_node), - status: extract_status(sub_node), - url: extract_url(sub_node), - source: extract_source(sub_node), - hi: extract_hi(sub_node), - downloads: extract_downloads(sub_node), - comment: extract_comment(sub_node) - ) - end - - def extract_version(sub_node) - version_node = sub_node.css('.NewsTitle').first - raise Addic7ed::ParsingError unless version_node - version_node.text - end - - def extract_language(sub_node) - language_node = sub_node.css('.language').first - raise Addic7ed::ParsingError unless language_node - language_node.text.gsub(/\A\W*/, '').gsub(/[^\w\)]*\z/, '') - end - - def extract_status(sub_node) - status_node = sub_node.css('tr:nth-child(3) td:nth-child(4) b').first - raise Addic7ed::ParsingError unless status_node - status_node.text.strip - end - - def extract_url(sub_node) - url_node = sub_node.css('a.buttonDownload').last - raise Addic7ed::ParsingError unless url_node - 'http://www.addic7ed.com' + url_node['href'] - end - - def extract_source(sub_node) - source_node = sub_node.css('tr:nth-child(3) td:first-child a').first - source_node['href'] if source_node - end - - def extract_hi(sub_node) - hi_node = sub_node.css('tr:nth-child(4) td.newsDate img').last - raise Addic7ed::ParsingError unless hi_node - !hi_node.attribute("title").nil? - end - - def extract_downloads(sub_node) - downloads_node = sub_node.css('tr:nth-child(4) td.newsDate').first - raise Addic7ed::ParsingError unless downloads_node - /(?\d*) Downloads/.match(downloads_node.text)[:downloads] - end - - def extract_comment(sub_node) - comment_node = sub_node.css('tr:nth-child(2) td.newsDate').first - raise Addic7ed::ParsingError unless comment_node - comment_node.text.gsub(/]+\>/i, "") - end - end -end diff --git a/lib/addic7ed/service.rb b/lib/addic7ed/service.rb new file mode 100644 index 0000000..e2f9211 --- /dev/null +++ b/lib/addic7ed/service.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module Addic7ed + module Service + def self.included(base) + base.extend(ClassMethods) + end + + module ClassMethods + def call(*args) + new(*args).call + end + end + end +end diff --git a/lib/addic7ed/services/addic7ed_version_normalizer.rb b/lib/addic7ed/services/addic7ed_version_normalizer.rb deleted file mode 100644 index 4744a82..0000000 --- a/lib/addic7ed/services/addic7ed_version_normalizer.rb +++ /dev/null @@ -1,24 +0,0 @@ -module Addic7ed - class Addic7edVersionNormalizer - attr_reader :version - - def initialize(version) - @version = version || "" - end - - def self.call(version) - new(version).call - end - - def call - version. - gsub(/[[:space:]]/, ""). - upcase. - gsub(/,[\d\. ]+MBS$/, ''). - gsub(/(^VERSION *|720P|1080P|HDTV|PROPER|RERIP|INTERNAL|X\.?264)/, ''). - gsub(/[- \.]/, '') - end - end - -private -end diff --git a/lib/addic7ed/services/check_compatibility.rb b/lib/addic7ed/services/check_compatibility.rb new file mode 100644 index 0000000..c09bc05 --- /dev/null +++ b/lib/addic7ed/services/check_compatibility.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +module Addic7ed + class CheckCompatibility + include Service + + attr_reader :subtitle, :group + + def initialize(subtitle, group) + @subtitle = subtitle + @group = group + end + + def call + defined_as_compatible? || generally_compatible? || commented_as_compatible? + end + + private + + def defined_as_compatible? + subtitle.version.split(",").include? group + end + + def generally_compatible? + COMPATIBILITY_720P[subtitle.version] == group || COMPATIBILITY_720P[group] == subtitle.version + end + + def commented_as_compatible? + return false if comment_explicitely_wont_work? + return false if comment_is_a_resync? + comment_matches_a_compatible_group? + end + + def comment_matches_a_compatible_group? + !Regexp.new("(#{compatible_groups.join("|")})", "i").match(subtitle.comment).nil? + end + + def comment_explicitely_wont_work? + !/(won'?t|doesn'?t|not) +work/i.match(subtitle.comment).nil? + end + + def comment_is_a_resync? + !/resync +(from|of|for)/i.match(subtitle.comment).nil? + end + + def compatible_groups + @compatible_groups ||= [ + group, + COMPATIBILITY_720P[group], + COMPATIBILITY_720P[subtitle.version] + ].compact.uniq + end + end +end diff --git a/lib/addic7ed/services/get_shows_list.rb b/lib/addic7ed/services/get_shows_list.rb new file mode 100644 index 0000000..fa4505c --- /dev/null +++ b/lib/addic7ed/services/get_shows_list.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +require "singleton" + +module Addic7ed + class GetShowsList + include Singleton + + def self.call + instance.call + end + + def call + @shows ||= homepage_body.css("select#qsShow option").to_a[1..-1].map(&:text) + end + + private + + def homepage_body + Oga.parse_html(addic7ed_homepage.body) + end + + def addic7ed_homepage + Net::HTTP.start("www.addic7ed.com") do |http| + request = Net::HTTP::Get.new("/") + request["User-Agent"] = USER_AGENTS.sample + http.request(request) + end + end + end +end diff --git a/lib/addic7ed/services/addic7ed_comment_normalizer.rb b/lib/addic7ed/services/normalize_comment.rb similarity index 53% rename from lib/addic7ed/services/addic7ed_comment_normalizer.rb rename to lib/addic7ed/services/normalize_comment.rb index 34b2f89..69485d6 100644 --- a/lib/addic7ed/services/addic7ed_comment_normalizer.rb +++ b/lib/addic7ed/services/normalize_comment.rb @@ -1,19 +1,17 @@ +# frozen_string_literal: true + module Addic7ed - class Addic7edCommentNormalizer + class NormalizeComment + include Service + attr_reader :comment def initialize(comment) @comment = comment || "" end - def self.call(comment) - new(comment).call - end - def call - comment.downcase + comment.downcase.strip end end - -private end diff --git a/lib/addic7ed/services/normalize_version.rb b/lib/addic7ed/services/normalize_version.rb new file mode 100644 index 0000000..680151a --- /dev/null +++ b/lib/addic7ed/services/normalize_version.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +module Addic7ed + class NormalizeVersion + include Service + + attr_reader :version + + def initialize(version) + @version = version || "" + end + + def call + version + .gsub(/[[:space:]]/, "") + .upcase + .gsub(/,[\d\. ]+MBS$/, "") + .gsub(/(^VERSION *|720P|1080P|HDTV|PROPER|RERIP|INTERNAL|X\.?264)/, "") + .gsub(/[- \.\,]/, " ") + .strip + .gsub(/ +/, ",") + end + end +end diff --git a/lib/addic7ed/services/parse_page.rb b/lib/addic7ed/services/parse_page.rb new file mode 100644 index 0000000..f5e9370 --- /dev/null +++ b/lib/addic7ed/services/parse_page.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +require "oga" +require "net/http" +require "open-uri" + +module Addic7ed + class ParsePage + include Service + + attr_reader :uri + + def initialize(url) + @uri = URI(url) + end + + def call + raise NoSubtitleFound unless subtitles_found? + subtitles_nodes.map do |subtitle_node| + Addic7ed::ParseSubtitleNode.call(subtitle_node) + end.flatten + end + + private + + def page_dom + raise EpisodeNotFound if server_response.body.nil? || server_response.body.empty? + @page_dom ||= Oga.parse_html(server_response.body) + end + + def subtitles_nodes + @subtitles_nodes ||= page_dom.css("#container95m table.tabel95 table.tabel95") + end + + def server_response + @server_response ||= Net::HTTP.start(uri.hostname, uri.port) do |http| + request = Net::HTTP::Get.new(uri.request_uri) + request["User-Agent"] = USER_AGENTS.sample + http.request(request) + end + end + + def subtitles_found? + page_dom.css("select#filterlang ~ font[color='yellow']").empty? && !subtitles_nodes.empty? + end + end +end diff --git a/lib/addic7ed/services/parse_subtitle_node.rb b/lib/addic7ed/services/parse_subtitle_node.rb new file mode 100644 index 0000000..3ac75fb --- /dev/null +++ b/lib/addic7ed/services/parse_subtitle_node.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +require "oga" + +module Addic7ed + class ParseSubtitleNode + include Service + + attr_reader :subtitle_node + + def initialize(subtitle_node) + @subtitle_node = subtitle_node + end + + def call + children_fields.map do |child_fields| + Addic7ed::Subtitle.new(root_fields.merge(child_fields)) + end + end + + private + + def root_fields + @root_fields ||= ParseSubtitleNodeRootFields.call(subtitle_node) + end + + def children_fields + @children_fields ||= subtitle_node.css(".language").map do |language_node| + ParseSubtitleNodeChildFields.call(language_node) + end + end + end +end diff --git a/lib/addic7ed/services/parse_subtitle_node_child_fields.rb b/lib/addic7ed/services/parse_subtitle_node_child_fields.rb new file mode 100644 index 0000000..71a7b42 --- /dev/null +++ b/lib/addic7ed/services/parse_subtitle_node_child_fields.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true + +module Addic7ed + class ParseSubtitleNodeChildFields + include Service + + attr_reader :language_node + + FIELDS = %i[language status url corrected hi downloads].freeze + + def initialize(language_node) + @language_node = language_node + end + + def call + FIELDS.map do |field| + { field => send(field) } + end.reduce(:merge) + end + + private + + def language + @language ||= language_node.text.gsub(/\A\W*/, "").gsub(/[^\w\)]*\z/, "") + end + + def status + @status ||= language_node.css("~ td b").first.text.strip + end + + def url + @url ||= "http://www.addic7ed.com" + language_node.css("~ td a.buttonDownload").first[:href] + end + + def corrected + return @corrected if defined? @corrected + @corrected = language_node.parent.css("~ tr td.newsDate img")[0][:title] == "Corrected" + end + + def hi + return @hi if defined? @hi + @hi = language_node.parent.css("~ tr td.newsDate img")[1][:title] == "Hearing Impaired" + end + + def downloads + @downloads ||= begin + text = language_node.parent.css("~ tr td.newsDate").text + /(?\d*) Downloads/.match(text)[:downloads] + end + end + end +end diff --git a/lib/addic7ed/services/parse_subtitle_node_root_fields.rb b/lib/addic7ed/services/parse_subtitle_node_root_fields.rb new file mode 100644 index 0000000..1040c2b --- /dev/null +++ b/lib/addic7ed/services/parse_subtitle_node_root_fields.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +module Addic7ed + class ParseSubtitleNodeRootFields + include Service + + attr_reader :subtitle_node + + FIELDS = %i[version source comment].freeze + + def initialize(subtitle_node) + @subtitle_node = subtitle_node + end + + def call + FIELDS.map do |field| + { field => send(field) } + end.reduce(:merge) + end + + private + + def version + return @version if defined? @version + @version = subtitle_node.css(".NewsTitle").first.text + end + + def source + return @source if defined? @source + @source = subtitle_node.css("tr:nth-child(3) td:first-child a").first.tap do |node| + break node[:href] if node + end + end + + def comment + return @comment if defined? @comment + @comment = subtitle_node.css("tr:nth-child(2) td.newsDate").first.tap do |node| + break node.text.strip if node + end + end + end +end diff --git a/lib/addic7ed/services/url_encode_show_name.rb b/lib/addic7ed/services/url_encode_show_name.rb new file mode 100644 index 0000000..d0c2fc9 --- /dev/null +++ b/lib/addic7ed/services/url_encode_show_name.rb @@ -0,0 +1,48 @@ +# frozen_string_literal: true + +module Addic7ed + class URLEncodeShowName + include Service + + attr_reader :filename + + def initialize(filename) + @filename = filename + end + + # This service is unfortunately over complex because we have to compare the given show name to + # the actual Addic7ed shows list in order to find out how Addic7ed URL-encodes this show name + # (this is due to the inconsistency of their URL-encoding policy) + def call + matching_shows = matching_shows(ignore_year: false) + matching_shows = matching_shows(ignore_year: true) if matching_shows.empty? + raise ShowNotFound if matching_shows.empty? + matching_shows.last.tr(" ", "_") + end + + private + + def matching_shows(opts) + addic7ed_shows.select { |show_name| matching?(show_name, opts) } + end + + def normalize(show_name, opts) + show_name + .downcase + .delete("'") + .gsub(/[_\.]+/, " ") + .gsub(/ (US|UK)( |$)/i, " (\\1)\\2") + .gsub(/ (\d{4})( |$)/i, " (\\1)\\2") + .strip + .tap { |showname| showname.gsub!(/ \(\d{4}\)( |$)/, '\1') if opts[:ignore_year] } + end + + def matching?(addic7ed_show, opts) + normalize(addic7ed_show, opts) == normalize(filename, opts) + end + + def addic7ed_shows + @addic7ed_shows ||= GetShowsList.call + end + end +end diff --git a/lib/addic7ed/show_list.rb b/lib/addic7ed/show_list.rb deleted file mode 100644 index a3bac47..0000000 --- a/lib/addic7ed/show_list.rb +++ /dev/null @@ -1,61 +0,0 @@ -module Addic7ed - class ShowList - attr_reader :raw_name - - def initialize(raw_name) - @raw_name = raw_name - end - - def self.url_segment_for(raw_name) - new(raw_name).url_segment_for - end - - def url_segment_for - shows_matching = shows_matching_exactly - shows_matching = shows_matching_without_year if shows_matching.empty? - raise ShowNotFound if shows_matching.empty? - shows_matching.last.gsub(' ', '_') - end - - private - - def shows_matching_exactly - @shows_matching_exactly ||= addic7ed_shows.select{ |addic7ed_show| is_matching? addic7ed_show } - end - - def shows_matching_without_year - @shows_matching_without_year ||= addic7ed_shows.select{ |addic7ed_show| is_matching? addic7ed_show, :comparer_without_year } - end - - def default_comparer(showname) - showname.downcase.gsub("'", "").gsub(".", " ").strip - end - - def comparer_without_year(showname) - default_comparer(showname).gsub(/ \(\d{4}\)( |$)/, '\1') - end - - def is_matching?(addic7ed_show, comparer = :default_comparer) - [humanized_name, addic7ed_show].map(&method(comparer)).reduce(:==) - end - - def humanized_name - @humanized_name ||= raw_name. - gsub(/[_\.]+/, ' '). - gsub(/ (US|UK)( |$)/i, ' (\1)\2'). - gsub(/ (\d{4})( |$)/i, ' (\1)\2') - end - - def addic7ed_shows - @@addic7ed_shows ||= Oga.parse_html(addic7ed_homepage.body).css("select#qsShow option:not(:first-child)").map(&:text) - end - - def addic7ed_homepage - Net::HTTP.start("www.addic7ed.com") do |http| - request = Net::HTTP::Get.new("/") - request["User-Agent"] = USER_AGENTS.sample - http.request(request) - end - end - end -end diff --git a/lib/addic7ed/subtitle.rb b/lib/addic7ed/subtitle.rb deleted file mode 100644 index f888cfc..0000000 --- a/lib/addic7ed/subtitle.rb +++ /dev/null @@ -1,72 +0,0 @@ -module Addic7ed - class Subtitle - - attr_reader :version, :language, :status, :via, :downloads, :comment - attr_accessor :url - - def initialize(options = {}) - @version = Addic7edVersionNormalizer.call(options[:version]) - @language = options[:language] - @status = options[:status] - @url = options[:url] - @via = options[:via] - @hi = options[:hi] - @downloads = options[:downloads].to_i || 0 - @comment = Addic7edCommentNormalizer.call(options[:comment]) - end - - def to_s - "#{url}\t->\t#{version} (#{language}, #{status}) [#{downloads} downloads]#{" (via #{via})" if via}" - end - - def works_for?(version = '', no_hi = false) - hi_works = !@hi || !no_hi - is_completed? and is_compatible_with? version and hi_works - end - - def can_replace?(other_subtitle) - return false unless is_completed? - return true if other_subtitle.nil? - language == other_subtitle.language && - is_compatible_with?(other_subtitle.version) && - is_more_popular_than?(other_subtitle) - end - - def is_featured? - via == "http://addic7ed.com" - end - - def is_completed? - status == 'Completed' - end - - protected - - def is_compatible_with?(other_version) - defined_as_compatible_with(other_version) || generally_compatible_with?(other_version) || commented_as_compatible_with?(other_version) - end - - def defined_as_compatible_with(other_version) - version.split(",").include? other_version - end - - def generally_compatible_with?(other_version) - COMPATIBILITY_720P[version] == other_version || COMPATIBILITY_720P[other_version] == version - end - - def commented_as_compatible_with?(other_version) - return false if /(won't|doesn't|not) +work/i.match comment - return false if /resync +(from|of)/i.match comment - res = comment.include? other_version.downcase - res ||= comment.include? COMPATIBILITY_720P[other_version].downcase if COMPATIBILITY_720P[other_version] - res ||= comment.include? COMPATIBILITY_720P[version].downcase if COMPATIBILITY_720P[version] - !!res - end - - def is_more_popular_than?(other_subtitle) - return true if other_subtitle.nil? - return false if other_subtitle.is_featured? - return downloads > other_subtitle.downloads - end - end -end diff --git a/lib/addic7ed/version.rb b/lib/addic7ed/version.rb index 87a31f9..8855498 100644 --- a/lib/addic7ed/version.rb +++ b/lib/addic7ed/version.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module Addic7ed - VERSION = "3.0.0" + VERSION = "4.0.0-beta.7".freeze # rubocop:disable Style/RedundantFreeze end diff --git a/lib/addic7ed/video_file.rb b/lib/addic7ed/video_file.rb deleted file mode 100644 index a14b6f0..0000000 --- a/lib/addic7ed/video_file.rb +++ /dev/null @@ -1,41 +0,0 @@ -module Addic7ed - class VideoFile - - TVSHOW_REGEX = /\A(?.*\w)[\[\. ]+S?(?\d{1,2})[-\. ]?[EX]?(?\d{2})([-\. ]?[EX]?\d{2})*[\]\. ]+(?.*)-(?\w*)\[?(?\w*)\]?(\.\w{3})?\z/i - - attr_reader :filename, :showname, :season, :episode, :tags, :group, :distribution - - def initialize(filename) - @filename = filename - if match = TVSHOW_REGEX.match(basename) - @showname = match[:showname] - @season = match[:season].to_i - @episode = match[:episode].to_i - @tags = match[:tags].upcase.split(/[\. ]/) - @group = match[:group].upcase - @distribution = match[:distribution].upcase - else - raise InvalidFilename - end - end - - def basename - @basename ||= ::File.basename(@filename) - end - - def to_s - @filename - end - - def inspect -"Guesses for #{@filename}: - show: #{@showname} - season: #{@season} - episode: #{@episode} - tags: #{@tags} - group: #{@group} - distribution: #{@distribution}" - end - - end -end diff --git a/mocks/got690.http b/mocks/got690.http new file mode 100644 index 0000000..39221eb --- /dev/null +++ b/mocks/got690.http @@ -0,0 +1,2311 @@ +HTTP/1.1 200 OK +Server: nginx +Date: Fri, 29 Dec 2017 15:30:44 GMT +Content-Type: text/html +Transfer-Encoding: chunked +Connection: keep-alive +X-Powered-By: PHP/5.3.3 +Set-Cookie: PHPSESSID=29c96nr0u9jm90d8l53708kav2; path=/ +Expires: Thu, 19 Nov 1981 08:52:00 GMT +Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 +Pragma: no-cache + + + + + + + + Download Game of Thrones - 06x09 - Battle of the Bastards subtitles from the source! - Addic7ed.com + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + +
Addic7ed.com - Quality Subtitles for TV Shows and movies
+

Download free subtitles for TV Shows and Movies.  +

+
+ +
+ + + Twitter + IRC + + +
+ + +
+ 60% +
+
+
+
+
+
+ +
+ + + + + + + + +
+ Clear Search Terms +Quick search +   + + +   + + +   +  
+
+Search subtitle   +   +
+
+ +
+
+ +
Loading...
+ +
+ + + + +
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Game of Thrones - 06x09 - Battle of the Bastards Subtitle +
+
+
+ + + + +
+
+
 Game of Thrones, Season 6, Episode 9 subtitles + +

Game of Thrones - 9.5/10
Episode list and air dates +
+
 Viewed +
+
+ 00:57:14 + + 209192 + +
  Multi Download + + + + +
+
 
 
+
+

+ + Sort versions alphabetically by language - Filter Language:
+

+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version 720p.HDTV.x264-AVS, 0.00 MBs  + + New translation uploaded by Luretrix2k 557 days ago + +
+ +
    + Danish + Completed + + + Download +
0 times edited · 3878 Downloads · 352 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version AVS, 0.00 MBs + + New translation uploaded by (del_131626) 556 days ago + +
+ Vertaling: +Quality over Quantity (QoQ) Releases +
    + Dutch + Completed + + + Download +
0 times edited · 6463 Downloads · 362 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version DON, 0.00 MBs + + New translation uploaded by (del_131626) 556 days ago + +
+ Vertaling: +Quality over Quantity (QoQ) Releases +
    + Dutch + Completed + + + Download +
0 times edited · 935 Downloads · 388 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version WEB-DL.NTb, 0.00 MBs  + + New translation uploaded by (del_131626) 556 days ago + +
+ Vertaling: +Quality over Quantity (QoQ) Releases +
    + Dutch + Completed + + + Download +
0 times edited · 6262 Downloads · 362 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version BluRay.RETAiL, 0.00 MBs  + + New translation uploaded by assenza 416 days ago + +
+ Retail door CyTSuNee +
    + Dutch + Completed + + + Download +
0 times edited · 1142 Downloads · 411 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version WEB-DL.RETAiL, 2292.77 MBs  + + New translation uploaded by assenza 388 days ago + +
+ Retail door CyTSuNee +
    + Dutch + Completed + + + Download +
0 times edited · 1305 Downloads · 411 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version 1080p.HDTV.x264-BATV[rartv], 0.00 MBs  + + New translation uploaded by mj1973 557 days ago + +
+ Vertaling Belgowul...Resync en langer duurtijd om te lezen:MJ1973..ook voor versies,Game of Thrones.S06E09.HDTV.XviD-...Game.of.Thrones.S06E09.HDTV.x264-AVS...Game of Thrones.S06E09.720p.HDTV.x264-AVS...Game of Thrones.S06E09.480p.HDTV.x264-mSD...Game of Thrones - 06x09 - Battle of the Bastards.1080p.HDTV......Game of Thrones.S06E09.HDTV.x264-KiLLERSrnGame.of.Thrones.S06E09.720p.HDTV.x264-AVS...Game.of.Thrones.S06E09.720p.HDTV.x264-KILLERS +
    + Dutch + Completed + + + Download +
0 times edited · 8073 Downloads · 407 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Version KILLERS, 0.00 MBs  + + New translation uploaded by honeybunny 557 days ago + +
+ works with 720p.AVS/1080p.BATV +
    + English + Completed + + + Download +
0 times edited · 74377 Downloads · 569 sequences + view & edit 
    + French + Completed + + + Download +
152 times edited · 14646 Downloads · 569 sequences + view & edit edited 200 days ago +
 
  + Translated on Addic7ed.com by + ZeBlinkMaster (92.1%), Scarlaty (7.9%),
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version WEBRip-NoGrp, 0.00 MBs  + + New translation uploaded by GoldenBeard 557 days ago + +
+ Re-sync of honeybunny's - Duration: 01:08:17 +
    + English + Completed + + + Download +
0 times edited · 5533 Downloads · 569 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version WEB-DL, 2180.00 MBs  + + New translation uploaded by jaideejung007 556 days ago + +
+ Resync of KILLERS (honeybunny) version | WORK WITH "WEB-DL-NTb" | CONTAINS HARDCODED LINES _ FOR TRANSLATORS +
    + English + Completed + + + Download +
0 times edited · 6039 Downloads · 569 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Version KILLERS, 0.00 MBs  + + New translation uploaded by honeybunny 557 days ago + +
+ works with 720p.AVS/1080p.BATV +
    + English + Completed + + + Download +
0 times edited · 31417 Downloads · 457 sequences + view & edit 
    + German + Completed + + + Download +
120 times edited · 1282 Downloads · 457 sequences + view & edit edited 284 days ago +
 
  + Translated on Addic7ed.com by + nesium (51.0%), emeline-whovian (3.1%), horstfujimoto (0.9%), Bujemeister (7.0%), toran2002 (7.7%), XXBrain (30.4%),
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version WEBRip-NoGrp, 0.00 MBs  + + New translation uploaded by GoldenBeard 557 days ago + +
+ Re-sync of honeybunny's - Duration: 01:08:17 +
    + English + Completed + + + Download +
0 times edited · 3168 Downloads · 457 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version BATV, 0.00 MBs  + + New translation uploaded by IuliusMonea 557 days ago + +
+ +
    + English + Completed + + + Download +
0 times edited · 9285 Downloads · 404 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version CtrlHD, 5345.28 MBs  + + New translation uploaded by Faisal.B 557 days ago + +
+ Resync from honeybunny's subs! Works with DON! +
    + English + Completed + + + Download +
0 times edited · 1876 Downloads · 456 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version WEB-DL, 2180.00 MBs  + + New translation uploaded by jaideejung007 556 days ago + +
+ Resync of KILLERS (honeybunny) version | WORK WITH "WEB-DL-NTb" | CONTAINS HARDCODED LINES _ FOR TRANSLATORS +
    + English + Completed + + + Download +
0 times edited · 9551 Downloads · 457 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version KILLERS-(No italics-Cuvio), 0.00 MBs  + + New translation uploaded by Skymist 557 days ago + +
+ Non-hearing-impaired, no italics or special characters. +
    + English + Completed + + + Download +
0 times edited · 2981 Downloads · 459 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version KILLERS - 720p AVS, 0.00 MBs  + + New translation uploaded by Hellie 557 days ago + +
+ DVDRip.Z2 // Adaptation : Clotilde Maville +
    + French + Completed + + + Download +
0 times edited · 11888 Downloads · 452 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version 1080p.DON, 0.00 MBs  + + New translation uploaded by FABIOBO 557 days ago + +
+ DVDRip.Z2 // Adaptation : Clotilde Maville +
    + French + Completed + + + Download +
0 times edited · 2188 Downloads · 452 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version WEB-DL-NTb, 0.00 MBs + + New translation uploaded by derrick45 555 days ago + +
+ DVDRip.Z2 // Adaptation : Clotilde Maville +
    + French + Completed + + + Download +
0 times edited · 1885 Downloads · 452 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version BATV, 0.00 MBs  + + New translation uploaded by IuliusMonea 556 days ago + +
+ SUB by pfefferkuchen & Godmode +
    + German + Completed + + + Download +
0 times edited · 143 Downloads · 403 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version CtrlHD, 0.00 MBs  + + New translation uploaded by IuliusMonea 556 days ago + +
+ SUB by pfefferkuchen & Godmode +
    + German + Completed + + + Download +
0 times edited · 87 Downloads · 403 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version KILLERS, 0.00 MBs  + + New translation uploaded by Black-Rabbit 557 days ago + +
+ works with 720p.AVS/1080p.BATV +
    + Italian + Completed + + + Download +
0 times edited · 1139 Downloads · 407 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version WEB-DL, 0.00 MBs  + + New translation uploaded by Kal-Earth2 556 days ago + +
+ +
    + Italian + Completed + + + Download +
0 times edited · 207 Downloads · 408 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version 1080i.CtrlHD, 0.00 MBs  + + New translation uploaded by markos988 550 days ago + +
+ +
    + Italian + Completed + + + Download +
0 times edited · 62 Downloads · 436 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version 720p.HDTV.x264-AVS, 0.00 MBs  + + New translation uploaded by Luretrix2k 557 days ago + +
+ +
    + Norwegian + Completed + + + Download +
0 times edited · 754 Downloads · 288 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version Bluray, 0.00 MBs  + + New translation uploaded by btsix 313 days ago + +
+ +
    + Portuguese (Brazilian) + Completed + + + Download +
0 times edited · 161 Downloads · 443 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version WEB-DL, 0.00 MBs  + + New translation uploaded by btsix 313 days ago + +
+ Por: Equipe LegendasTV +
    + Portuguese (Brazilian) + Completed + + + Download +
0 times edited · 134 Downloads · 447 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version AVS-KILLERS-mSD-AFG, 0.00 MBs + + New translation uploaded by azure91 557 days ago + +
+ LEGENDA HBO BR | @EquipePa | Funciona com: AVS / KILLERS / mSD / AFG +
    + Portuguese (Brazilian) + Completed + + + Download +
0 times edited · 1714 Downloads · 465 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + + +
Version KILLERS, 0.00 MBs  + + New translation uploaded by volverine73 557 days ago + +
+ works with / работает с 720p AVS; 1080p BATV. +Перевели Opel и Volverine +
    + Russian + Completed + + + original + most updated +
1 times edited · 154 Downloads · 450 sequences + view & edit edited 556 days ago +
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version 1080p.HDTV.BATV, 4382.00 MBs  + + New translation uploaded by torrfan 556 days ago + +
+ 7kingdoms' +
    + Russian + Completed + + + Download +
0 times edited · 147 Downloads · 450 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version 1080p.WEB-DL.NTb, 2293.00 MBs  + + New translation uploaded by torrfan 555 days ago + +
+ 7kingdoms' also relevant for 720p NTb +
    + Russian + Completed + + + Download +
0 times edited · 62 Downloads · 450 sequences + view & edit 
+
 
 
+
+
+ + + + + + + + + + + + + + + + +
 
  + + + + + + + + + + + + + + + + + +
Version BATV, 0.00 MBs  + + New translation uploaded by veselodum 557 days ago + +
+ 23.976 fps, without "Previously on Game of Thrones" segment. +
    + Ukrainian + Completed + + + Download +
0 times edited · 133 Downloads · 421 sequences + view & edit 
+
 
 
+
+

+

+

 

+
+ + +
+ +
+
+ Loading... +
+ +
+ +
+
+ + + + + + + + + + + + + + + + + +
 
  + + +  
 
+
+ + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TV Addic7edTV Popular ShowsTV UsefulTV Forums
Support Us
RSS Feeds
Premium Accounts
TV Tutorials
Frequently Asked Questions
What Are Subtitles
New Translation Tutorial
Upload a New Subtitle Tutorial
TV Stats
. +
+
+
+ + + + + + + +build time: 0.62222719192505
+ + + + + diff --git a/mocks/home.http b/mocks/home.http new file mode 100644 index 0000000..3673d84 --- /dev/null +++ b/mocks/home.http @@ -0,0 +1,893 @@ +HTTP/1.1 200 OK +Server: nginx +Date: Fri, 29 Dec 2017 15:29:20 GMT +Content-Type: text/html +Transfer-Encoding: chunked +Connection: keep-alive +X-Powered-By: PHP/5.3.3 +Set-Cookie: PHPSESSID=1nasjbjmoclgseagk8466bm7e5; path=/ +Expires: Thu, 19 Nov 1981 08:52:00 GMT +Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 +Pragma: no-cache + + + + + + + + + + + + + + + + +Addic7ed.com - The source of latest TV subtitles + + + + + + + + + +

+ + + + + + + + + + + + + + + +
Addic7ed.com - Quality Subtitles for TV Shows and movies
+

Download free subtitles for TV Shows and Movies.  +

+
+ +
+ + + Twitter + IRC + + +
+ + +
+ 60% +
+
+
+
+
+
+ +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
   
  65 days ago NewsWe're looking for syncers! Read our message: http://www.sub-talk.net/topic/6961-recruitment/ 
  86 days ago NewsYou can now support us monthly via Patreon: https://lc.cx/pGQm 
  124 days ago NewsIf you want to help us, please check this out: https://lc.cx/c2bs 
+
+
+ +
Loading...
+
+ + + + + +
+ Clear Search Terms +Quick search + + + +   + + +   +  
+
+Search subtitle   +   +
+
+ +
+ +
+ + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 New Releases
invisible
 Las Chicas Del Cable - 02x01 - Chapter 9: The Choice   Great News - 02x09 - Love Is Dead   Black Mirror (2011) - 04x01 - USS Callister
  English · uploaded by PopcornAWH   English · uploaded by louvette   English · uploaded by VitoSilans
 The Grand Tour - 02x04 - Unscripted   LA to Vegas - 01x01 - Pilot   Van Helsing - 02x12 - Crooked Falls
  English · uploaded by emeline-whovian   English · uploaded by louvette   English · uploaded by susinz
 Damnation - 01x07 - A Different Species   Little Women (2017) - 01x03 - Part 3   Still Open All Hours - 04x01 - Episode 1
  English · uploaded by PopcornAWH   English · uploaded by bien-mignon-mais   English · uploaded by BINairLADEN
+
+
+
+ + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  Latest new versions
TV Series Episode Subtitle  Gomorra (2014) - 03x01 - Episodio 1 TV Series Episode Subtitle Young Sheldon - 01x08 - Cape Canaveral, Shrodinger's Cat and Cyndi Lauper's Hair TV Series Episode Subtitle Young Sheldon - 01x07 - A Brisket, Voodoo and Cannonball Run
  French · REPACK.1080p.HDTVRip.DD5.1.x264-NovaRip · uploaded by erik44   Russian · SVA · uploaded by mdh77   Russian · SVA · uploaded by mdh77
TV Series Episode Subtitle  Young Sheldon - 01x09 - Spock, Kirk and Testicular Hernia TV Series Episode Subtitle The Grand Tour - 02x04 - Unscripted TV Series Episode Subtitle The Grand Tour - 02x04 - Unscripted
  Russian · SVA · uploaded by mdh77   Spanish (Latin America) · WEBRip.RARBG-AMZN.WEBRip-WEBDL.NTb · uploaded by menoyos   Spanish (Spain) · WEBRip.RARBG-AMZN.WEBRip-WEBDL.NTb · uploaded by menoyos
TV Series Episode Subtitle  Las Chicas Del Cable - 02x01 - Chapter 9: The Choice TV Series Episode Subtitle Las Chicas Del Cable - 02x01 - Chapter 9: The Choice TV Series Episode Subtitle Las Chicas Del Cable - 02x01 - Chapter 9: The Choice
  Turkish · WEBRip.x264-BRiNK · uploaded by PopcornAWH   Swedish · WEBRip.x264-BRiNK · uploaded by PopcornAWH   Portuguese (Brazilian) · WEBRip.x264-BRiNK · uploaded by PopcornAWH
+
+
+ +
+ + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Latest uploaded episodes
invisible
 Turbo F.A.S.T. - 01x12 - Curse of the Cicadas - Beat-A Fajita   That's So Raven - 04x22 - Where There's Smoke   That's So Raven - 04x21 - The Way We Were
  English · uploaded by f1nc0   English · uploaded by maggimw   English · uploaded by maggimw
 That's So Raven - 04x20 - Teacher's Pet   That's So Raven - 04x19 - The Dress is Always Greener   The Big Fat Quiz of the Year - 01x15 - The Big Fat Quiz of the Year 2017
  English · uploaded by maggimw   English · uploaded by maggimw   English · uploaded by Aaru Bui
 That's So Raven - 04x18 - Rae of Sunshine   That's So Raven - 04x17 - The Ice Girl Cometh   That's So Raven - 04x16 - Members Only
  English · uploaded by maggimw   English · uploaded by maggimw   English · uploaded by maggimw
+
+
+
+ + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Latest translations completed on Addic7ed.com
TV Series Episode Subtitle  Young Herriot - 01x03 - Episode 3  TV Series Episode Subtitle Supernatural - 02x01 - In my time of dying TV Series Episode Subtitle Young Herriot - 01x02 - Episode 2
  Bulgarian   Bulgarian   Bulgarian
TV Series Episode Subtitle  Absentia - 01x08 - Brave Boy  Movie Subtitle Harry Potter: A History of Magic (2017) TV Series Episode Subtitle A Place To Call Home - 05x08 - Cloud Break
  Bulgarian   French   French
TV Series Episode Subtitle  Shades Of Blue - 02x04 - Daddy's Girl  TV Series Episode Subtitle Victoria - 02x09 - Comfort and Joy TV Series Episode Subtitle Vikings - 05x06 - The Message
  French   French   French
+
+
+ +
+ + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  Latest uploaded movies
 Topaz [Alfred Hitchcock's Topaz] [L'Étau] (1969)    Jumanji: Welcome to the Jungle (2017)   The Death and Life of Marsha P. Johnson (2017)
  English · uploaded by miclar1   English · uploaded by mimti   English · uploaded by chamallow
 Slack Bay (2016)    The Hound of the Baskervilles [Le Chien des Baskerville] (1939)   Michael Jackson's Halloween (2017)
  English · uploaded by PopcornAWH   English · uploaded by miclar1   English · uploaded by f1nc0
 Blade Runner 2049 (2017)    The Hitcher [L'Auto-Stoppeur] (1986)   Mark Felt: The Man Who Brought Down the White House (2017)
  Dutch · uploaded by McGarrett   English · uploaded by miclar1   English · uploaded by thegateway
+
+
+ +
+ + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  Latest started translations
TV Series Episode Subtitle  Cassandra French's Finishing School - 01x01 - Breaking Ground TV Series Episode Subtitle The Middle - 09x03 - Meet the Parents TV Series Episode Subtitle A Place To Call Home - 05x09 - All That Lies Ahead
  French · 0.33% Completed   Bulgarian · 3.68% Completed   French · 18.97% Completed
TV Series Episode Subtitle  Shades Of Blue - 02x05 - Sweet Caroline TV Series Episode Subtitle Travelers - 02x03 - Jacob TV Series Episode Subtitle Blindspot - 03x08 - City Folks Under Wraps
  French · 2.98% Completed   Polish · 3.57% Completed   French · 24.01% Completed
TV Series Episode Subtitle  Knightfall - 01x04 - He Who Discovers His Own Self Discovers God TV Series Episode Subtitle Graves - 02x05 - Delights of My Suffering TV Series Episode Subtitle The Mick - 02x09 - The Divorce
  French · 15.88% Completed   French · 66.09% Completed   French · 11.01% Completed
+
+
+

+

+ +
+

+ +
+ +
+ + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Finishing translations
TV Series Episode Subtitle  Killjoys - 03x01 - Boondoggie  TV Series Episode Subtitle Killjoys - 03x02 - A Skinner, Darkley TV Series Episode Subtitle Killjoys - 03x05 - Attack the Rack
  Bulgarian · 99.76% Completed   Bulgarian · 99.35% Completed   Bulgarian · 99.26% Completed
TV Series Episode Subtitle  The Good Place - 02x03 - Team Cockroach  TV Series Episode Subtitle The Good Place - 02x04 - Existential Crisis TV Series Episode Subtitle Foyle's War - 06x02 - Broken Souls
  Bulgarian · 99.09% Completed   Bulgarian · 98.96% Completed   Romanian · 98.86% Completed
TV Series Episode Subtitle  The Good Place - 02x02 - Dance Dance Resolution  TV Series Episode Subtitle Killjoys - 03x03 - The Hullen Have Eyes TV Series Episode Subtitle CSI: Crime Scene Investigation - 16x01 - Immortality (1)
  Bulgarian · 98.85% Completed   Bulgarian · 98.79% Completed   Bulgarian · 98.71% Completed
+
+
+ +
+ + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Most downloaded today
TV Series Episode Subtitle  Vikings - 05x06 - The Message  TV Series Episode Subtitle Knightfall - 01x04 - He Who Discovers His Own Self Discovers God TV Series Episode Subtitle Marvel's Runaways - 01x06 - Metamorphosis
  9991 Downloads   2304 Downloads   2187 Downloads
TV Series Episode Subtitle  Marvel's Runaways - 01x08 - Tsunami  TV Series Episode Subtitle Black Mirror (2011) - 04x01 - USS Callister TV Series Episode Subtitle Marvel's Runaways - 01x07 - Refraction
  2080 Downloads   1844 Downloads   1780 Downloads
TV Series Episode Subtitle  Marvel's Runaways - 01x03 - Destiny  TV Series Episode Subtitle The Librarians (2014) - 04x05 - And the Bleeding Crown TV Series Episode Subtitle Marvel's Runaways - 01x01 - Reunion
  1678 Downloads   1622 Downloads   1592 Downloads
+
+

+ +
  +
  +
  +
  + + + + + + + + + + + diff --git a/mocks/mocks.rb b/mocks/mocks.rb new file mode 100644 index 0000000..93d3eee --- /dev/null +++ b/mocks/mocks.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true + +require "webmock" + +module Addic7ed + module Mocks + WELCOME_MESSAGE = <<~WELCOME_MESSAGE + Welcome to the mocked mode. + All network requests are forbidden (like in test mode). + An Addic7ed page is mocked for your convenience for 🛡 Game Of Thrones ⚔️ s06e09 🐲 + Try this: + episode = Addic7ed::Episode.new(show: "Game of Thrones", season: 6, number: 9) + episode.subtitles + episode.sutitles.completed.for_language(:fr).most_popular + WELCOME_MESSAGE + + def self.included(base) + base.send(:include, WebMock::API) + WebMock.enable! + mock_addic7ed(path: "/", response: "home") + mock_addic7ed(path: "/serie/Game_of_Thrones/6/9/0", response: "got690") + puts WELCOME_MESSAGE + end + + def self.mock_addic7ed(path:, response:) + stub_request( + :get, + URI.join("http://www.addic7ed.com/", path) + ).to_return(response_content(response)) + end + + def self.response_content(response) + File.new(File.join(__dir__, "#{response}.http")) + end + end +end + +include Addic7ed::Mocks diff --git a/spec/lib/addic7ed/common_spec.rb b/spec/lib/addic7ed/common_spec.rb index 587fd2e..982e4ca 100644 --- a/spec/lib/addic7ed/common_spec.rb +++ b/spec/lib/addic7ed/common_spec.rb @@ -1,21 +1,14 @@ -require 'spec_helper' -require './lib/addic7ed' +# frozen_string_literal: true -describe Addic7ed do - it 'defines SHOWS_URL' do - expect(Addic7ed::SHOWS_URL).to_not be_nil - end - - it 'defines EPISODES_URL' do - expect(Addic7ed::EPISODES_URL).to_not be_nil - end +require "spec_helper" - it 'defines EPISODE_REDIRECT_URL' do - expect(Addic7ed::EPISODE_REDIRECT_URL).to_not be_nil +describe Addic7ed do + it "defines LANGUAGES" do + expect(Addic7ed::LANGUAGES).to_not be_nil + expect(Addic7ed::LANGUAGES).to include fr: { name: "French", id: 8 } end - it 'defines LANGUAGES' do - expect(Addic7ed::LANGUAGES).to_not be_nil - expect(Addic7ed::LANGUAGES).to include 'fr' => {name: 'French', id: 8} + it "defines USER_AGENTS" do + expect(Addic7ed::USER_AGENTS).to_not be_nil end end diff --git a/spec/lib/addic7ed/episode_spec.rb b/spec/lib/addic7ed/episode_spec.rb deleted file mode 100644 index 22ffc5f..0000000 --- a/spec/lib/addic7ed/episode_spec.rb +++ /dev/null @@ -1,165 +0,0 @@ -require 'spec_helper' -require './lib/addic7ed' - -describe Addic7ed::Episode do - before :all do - @filename = 'The.Walking.Dead.S03E02.720p.HDTV.x264-EVOLVE.mkv' - @filename_show_not_found = 'Show.Not.Found.S03E02.720p.HDTV.x264-EVOLVE.mkv' - @filename_episode_not_found = 'The.Walking.Dead.S03E42.720p.HDTV.x264-EVOLVE.mkv' - @filename_compatible_group = 'The.Walking.Dead.S03E04.HDTV.XviD-ASAP.mkv' - @filename_no_hi = 'The.Walking.Dead.S03E02.720p.HDTV.x264-KILLERS.mkv' - @episode = Addic7ed::Episode.new(@filename) - end - - it 'should create valid instance given valid argument' do - expect{ Addic7ed::Episode.new(@filename) }.to_not raise_error - end - - describe '#url' do - it 'returns a show localized URL given existing episode' do - expect(@episode.url('fr')).to eq 'http://www.addic7ed.com/serie/The_Walking_Dead/3/2/8' - expect(@episode.url('es')).to eq 'http://www.addic7ed.com/serie/The_Walking_Dead/3/2/4' - end - - it 'uses French as default language' do - expect(@episode.url).to eq @episode.url('fr') - end - - it 'raises LanguageNotSupported given an unsupported language code' do - expect{ @episode.url('aa') }.to raise_error Addic7ed::LanguageNotSupported - end - end - - describe '#subtitles' do - it 'should return an array of Addic7ed::Subtitle given valid episode and language' do - %w{fr en it}.each do |lang| - lang_id = Addic7ed::LANGUAGES[lang][:id] - stub_request(:get, "http://www.addic7ed.com/serie/The_Walking_Dead/3/2/#{lang_id}") - .to_return File.new("spec/responses/walking-dead-3-2-#{lang_id}.http") - end - expect(@episode.subtitles('fr').size).to eq 4 - expect(@episode.subtitles('en').size).to eq 3 - expect(@episode.subtitles('it').size).to eq 1 - end - - it 'uses French as default language' do - expect(@episode.subtitles).to eq @episode.subtitles('fr') - end - - it 'raises LanguageNotSupported given an unsupported language code' do - expect{ @episode.subtitles('aa') }.to raise_error Addic7ed::LanguageNotSupported - end - - it 'raises EpisodeNotFound given not existing episode' do - stub_request(:get, 'http://www.addic7ed.com/serie/The_Walking_Dead/3/42/8') - .to_return File.new('spec/responses/walking-dead-3-42-8.http') - expect{ Addic7ed::Episode.new(@filename_episode_not_found).subtitles }.to raise_error Addic7ed::EpisodeNotFound - end - - it 'raises NoSubtitleFound given valid episode which has no subtitle on Addic7ed' do - stub_request(:get, 'http://www.addic7ed.com/serie/The_Walking_Dead/3/2/48') - .to_return File.new('spec/responses/walking-dead-3-2-48.http') - expect{ @episode.subtitles('az') }.to raise_error Addic7ed::NoSubtitleFound - end - - it 'may raise a ParsingError, but I\'m not sure how...' - end - - describe '#best_subtitle' do - it 'finds the subtitle with status completed and same group name' do - stub_request(:get, 'http://www.addic7ed.com/serie/The_Walking_Dead/3/2/8') - .to_return File.new('spec/responses/walking-dead-3-2-8.http') - expect(@episode.best_subtitle('fr').url).to eq 'http://www.addic7ed.com/original/68018/4' - end - - it 'finds the subtitle with status completed, compatible group name and as many downloads as possible' do - stub_request(:get, 'http://www.addic7ed.com/serie/The_Walking_Dead/3/4/8') - .to_return File.new('spec/responses/walking-dead-3-4-8.http') - compatible_episode = Addic7ed::Episode.new(@filename_compatible_group) - expect(compatible_episode.best_subtitle('fr').url).to eq 'http://www.addic7ed.com/updated/8/68508/3' - end - - it 'finds the subtitle with status completed, same group name and not hearing impaired' do - stub_request(:get, 'http://www.addic7ed.com/serie/The_Walking_Dead/3/2/1') - .to_return File.new('spec/responses/walking-dead-3-2-1.http') - episode = Addic7ed::Episode.new(@filename_no_hi) - expect(episode.best_subtitle('en', true).url).to eq 'http://www.addic7ed.com/updated/1/68018/0' - end - - it 'uses French as default language' do - expect(@episode.best_subtitle).to eq @episode.best_subtitle('fr') - end - - it 'raises LanguageNotSupported given an unsupported language code' do - expect{ @episode.best_subtitle('aa') }.to raise_error Addic7ed::LanguageNotSupported - end - - it 'raises NoSubtitleFound given valid episode which has no subtitle on Addic7ed' do - stub_request(:get, 'http://www.addic7ed.com/serie/The_Walking_Dead/3/2/48') - .to_return File.new('spec/responses/walking-dead-3-2-48.http') - expect{ @episode.best_subtitle('az') }.to raise_error Addic7ed::NoSubtitleFound - end - end - - describe '#download_best_subtitle!' do - let(:episode) { Addic7ed::Episode.new(@filename) } - - before do - WebMock.reset! - @page_stub = stub_request(:get, 'http://www.addic7ed.com/serie/The_Walking_Dead/3/2/8') - .to_return File.new('spec/responses/walking-dead-3-2-8.http') - @sub_stub = stub_request(:get, 'http://www.addic7ed.com/original/68018/4') - .to_return File.new('spec/responses/walking-dead-3-2-8_best_subtitle.http') - # Prevent actual disk writing - allow(Kernel).to receive(:open) - end - - it 'gets the best subtitle candidate with a network request' do - expect(episode).to receive(:best_subtitle).once.and_call_original - episode.download_best_subtitle!('fr') - expect(@page_stub).to have_been_requested - expect(@sub_stub).to have_been_requested - end - - it 'raises DownloadError when a network error happens' do - stub_request(:get, 'http://www.addic7ed.com/original/68018/4').to_timeout - expect{ episode.download_best_subtitle!('fr') }.to raise_error Addic7ed::DownloadError - end - - it 'is called recursively' do - stub_request(:get, 'http://www.addic7ed.com/original/68018/4').to_return File.new('spec/responses/basic_redirection.http') - stub_request(:get, 'http://www.addic7ed.com/original/68018/4.redirected').to_return File.new('spec/responses/walking-dead-3-2-8_best_subtitle.http') - expect(episode).to receive(:download_best_subtitle!).twice.and_call_original - episode.download_best_subtitle!('fr') - end - - it 'raises HTTPError when stuck in a HTTP redirections loop' do - stub_request(:get, 'http://www.addic7ed.com/original/68018/4') - .to_return File.new('spec/responses/redirection_loop.http') - expect{ episode.download_best_subtitle!('fr') }.to raise_error Addic7ed::HTTPError - end - - it 'creates a new file on disk' do - file = double('file') - expect(Kernel).to receive(:open).with('The.Walking.Dead.S03E02.720p.HDTV.x264-EVOLVE.fr.srt', 'w').and_yield(file) - expect(file).to receive(:<<) - episode.download_best_subtitle!('fr') - end - - context "when untagged option is set" do - let(:episode) { Addic7ed::Episode.new(@filename, true) } - - it "does not include language code in subtitle filename" do - file = double('file') - expect(Kernel).to receive(:open).with('The.Walking.Dead.S03E02.720p.HDTV.x264-EVOLVE.srt', 'w').and_yield(file) - expect(file).to receive(:<<) - episode.download_best_subtitle!('fr') - end - end - - it 'raises SubtitleCannotBeSaved when a disk error happens' do - expect(Kernel).to receive(:open).with('The.Walking.Dead.S03E02.720p.HDTV.x264-EVOLVE.fr.srt', 'w').and_raise('Persmission denied') - expect{ episode.download_best_subtitle!('fr') }.to raise_error Addic7ed::SubtitleCannotBeSaved - end - end -end diff --git a/spec/lib/addic7ed/models/episode_spec.rb b/spec/lib/addic7ed/models/episode_spec.rb new file mode 100644 index 0000000..05b89ca --- /dev/null +++ b/spec/lib/addic7ed/models/episode_spec.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true + +require "spec_helper" + +describe Addic7ed::Episode do + let(:showname) { "The.Walking.Dead" } + let(:season) { 3 } + let(:episode_nbr) { 2 } + let(:episode) { described_class.new(show: showname, season: season, number: episode_nbr) } + + describe "#page_url(lang)" do + it "returns an episode page URL for given language" do + expect(episode.page_url(:fr)).to eq "http://www.addic7ed.com/serie/The_Walking_Dead/3/2/8" + expect(episode.page_url(:es)).to eq "http://www.addic7ed.com/serie/The_Walking_Dead/3/2/4" + end + + it "uses URLEncodeShowName to generate the localized URLs" do + expect( + Addic7ed::URLEncodeShowName + ).to receive(:call).with(showname).and_return("The_Walking_Dead") + episode.page_url(:fr) + end + + context "when given an unsupported language code" do + it "raises LanguageNotSupported" do + expect { episode.page_url(:aa) }.to raise_error Addic7ed::LanguageNotSupported + end + end + + context "when not given a language code" do + it "returns the URL of the page with subtitles from all languages" do + expect(episode.page_url).to eq "http://www.addic7ed.com/serie/The_Walking_Dead/3/2/0" + end + end + end + + describe "#subtitles" do + xit "should be tested" + end +end diff --git a/spec/lib/addic7ed/models/subtitle_spec.rb b/spec/lib/addic7ed/models/subtitle_spec.rb new file mode 100644 index 0000000..4f0b3a9 --- /dev/null +++ b/spec/lib/addic7ed/models/subtitle_spec.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +require "spec_helper" + +describe Addic7ed::Subtitle, "#initialize" do + let(:version) { "Version DIMENSiON" } + let(:comment) { "Works for LOL" } + + subject { described_class.new(version: version, comment: comment) } + + it "normalizes Addic7ed version" do + expect(Addic7ed::NormalizeVersion).to receive(:call).with(version) + subject + end + + it "normalizes Addic7ed comment" do + expect(Addic7ed::NormalizeComment).to receive(:call).with(comment) + subject + end +end + +describe Addic7ed::Subtitle, "#completed?" do + it "returns true when 'status' is 'Completed'" do + expect(Addic7ed::Subtitle.new(status: "Completed").completed?).to be true + end + + it "returns false otherwise" do + expect(Addic7ed::Subtitle.new(status: "80%").completed?).to be false + end +end diff --git a/spec/lib/addic7ed/models/subtitles_collection_spec.rb b/spec/lib/addic7ed/models/subtitles_collection_spec.rb new file mode 100644 index 0000000..d983f75 --- /dev/null +++ b/spec/lib/addic7ed/models/subtitles_collection_spec.rb @@ -0,0 +1,94 @@ +# frozen_string_literal: true + +require "spec_helper" + +describe Addic7ed::SubtitlesCollection do + it "is an Enumerable" do + expect(subject).to be_a Enumerable + end +end + +describe Addic7ed::SubtitlesCollection, "#compatible_with(group)" do + let(:compatible_subtitle) { double(:compatible_subtitle) } + let(:incompatible_subtitle) { double(:incompatible_subtitle) } + + before do + allow(Addic7ed::CheckCompatibility).to receive(:call) do |subtitle, _| + case subtitle + when compatible_subtitle then true + when incompatible_subtitle then false + end + end + end + + subject { described_class.new([compatible_subtitle, incompatible_subtitle]) } + + it "is chainable" do + expect(subject.compatible_with("group")).to be_a described_class + end + + it "uses Addic7ed::CheckCompatibility" do + subject.compatible_with("group") + expect(Addic7ed::CheckCompatibility).to have_received(:call).twice + end + + it "keeps compatible subtitles" do + expect(subject.compatible_with("group")).to include compatible_subtitle + end + + it "filers out incompatible subtitles" do + expect(subject.compatible_with("group")).to_not include incompatible_subtitle + end +end + +describe Addic7ed::SubtitlesCollection, "#completed" do + let(:completed_subtitle) { double(:completed_subtitle, completed?: true) } + let(:incomplete_subtitle) { double(:incomplete_subtitle, completed?: false) } + + subject { described_class.new([completed_subtitle, incomplete_subtitle]) } + + it "is chainable" do + expect(subject.completed).to be_a described_class + end + + it "keeps completed subtitles" do + expect(subject.completed).to include completed_subtitle + end + + it "filters out incomplete subtitles" do + expect(subject.completed).to_not include incomplete_subtitle + end +end + +describe Addic7ed::SubtitlesCollection, "#for_language(language)" do + let(:english_subtitle) { double(:english_subtitle, language: "English") } + let(:french_subtitle) { double(:french_subtitle, language: "French") } + let(:spanish_subtitle) { double(:spanish_subtitle, language: "Spanish") } + let(:all_subtitles) { [english_subtitle, french_subtitle, spanish_subtitle] } + + subject { described_class.new(all_subtitles).for_language(:en) } + + it "is chainable" do + expect(subject).to be_a described_class + end + + it "keeps requested language subtitles" do + expect(subject).to include english_subtitle + end + + it "filters out other languages subtitles" do + expect(subject).to_not include french_subtitle + expect(subject).to_not include spanish_subtitle + end +end + +describe Addic7ed::SubtitlesCollection, "#most_popular" do + let(:popular_subtitle) { double(:popular_subtitle, downloads: 100) } + let(:unpopular_subtitle) { double(:popular_subtitle, downloads: 20) } + + subject { described_class.new([popular_subtitle, unpopular_subtitle]) } + + it "returns the subtitle with the most downloads" do + expect(subject.most_popular).to eq popular_subtitle + end +end diff --git a/spec/lib/addic7ed/video_file_spec.rb b/spec/lib/addic7ed/models/video_file_spec.rb similarity index 60% rename from spec/lib/addic7ed/video_file_spec.rb rename to spec/lib/addic7ed/models/video_file_spec.rb index 4fec494..feaf7f9 100644 --- a/spec/lib/addic7ed/video_file_spec.rb +++ b/spec/lib/addic7ed/models/video_file_spec.rb @@ -1,5 +1,6 @@ -require 'spec_helper' -require './lib/addic7ed' +# frozen_string_literal: true + +require "spec_helper" describe Addic7ed::VideoFile do let(:file) { Addic7ed::VideoFile.new(filename) } @@ -8,12 +9,12 @@ let(:filename) { filename } it "it detects successfully" do - expect(file.showname ).to eq (expected_show_name || 'Showname') - expect(file.season ).to eq 2 - expect(file.episode ).to eq 1 - expect(file.tags ).to eq ['720P', 'HDTV', 'X264'] - expect(file.group ).to eq 'GROUP' - expect(file.distribution).to satisfy { |d| ['', 'DISTRIBUTION'].include?(d) } + expect(file.showname).to eq(expected_show_name || "Showname") + expect(file.season).to eq 2 + expect(file.episode).to eq 1 + expect(file.tags).to eq %w[720P HDTV X264] + expect(file.group).to eq "GROUP" + expect(file.distribution).to(satisfy { |d| ["", "DISTRIBUTION"].include?(d) }) end end @@ -21,7 +22,7 @@ let(:filename) { filename } it "raises an error" do - expect{file}.to raise_error Addic7ed::InvalidFilename + expect { file }.to raise_error Addic7ed::InvalidFilename end end @@ -34,52 +35,56 @@ it_behaves_like "a media file", "Showname.02x01.720p.HDTV.x264-GROUP.mkv" end - context 'with 3-digits notation' do + context "with 3-digits notation" do it_behaves_like "a media file", "Showname.201.720p.HDTV.x264-GROUP.mkv" end - context 'with brackets notation' do + context "with brackets notation" do it_behaves_like "a media file", "Showname.[S02E01].720p.HDTV.x264-GROUP.mkv" end - context 'with brackets and x notation' do + context "with brackets and x notation" do it_behaves_like "a media file", "Showname.[2x01].720p.HDTV.x264-GROUP.mkv" end - context 'with brackets and 3-digits notation' do + context "with brackets and 3-digits notation" do it_behaves_like "a media file", "Showname.[201].720p.HDTV.x264-GROUP.mkv" end - context 'with brackets and x notation and space separator' do + context "with brackets and x notation and space separator" do it_behaves_like "a media file", "Showname [2x01] 720p.HDTV.x264-GROUP.mkv" end - context 'with brackets and 3-digits notation and space separator' do + context "with brackets and 3-digits notation and space separator" do it_behaves_like "a media file", "Showname [201] 720p.HDTV.x264-GROUP.mkv" end - context 'with lowercase filename' do + context "with lowercase filename" do it_behaves_like "a media file", "showname.s02e01.720p.HDTV.x264-group.mkv", "showname" end - context 'with multiple words in show name' do + context "with multiple words in show name" do it_behaves_like "a media file", "Show.Name.S02E01.720p.HDTV.x264-GROUP.mkv", "Show.Name" end - context 'with multiple words in show name separated by spaces' do + context "with multiple words in show name separated by spaces" do it_behaves_like "a media file", "Show Name.S02E01.720p.HDTV.x264-GROUP.mkv", "Show Name" end - context 'with only numbers in show name' do + context "with only numbers in show name" do it_behaves_like "a media file", "42.S02E01.720p.HDTV.x264-GROUP.mkv", "42" end context "with production year" do - it_behaves_like "a media file", "Showname.2014.S02E01.720p.HDTV.x264-GROUP.mkv", "Showname.2014" + it_behaves_like "a media file", + "Showname.2014.S02E01.720p.HDTV.x264-GROUP.mkv", + "Showname.2014" end context "with an optional distribution group name" do - it_behaves_like "a media file", "Showname.2014.S02E01.720p.HDTV.x264-GROUP[DISTRIBUTION].mkv", "Showname.2014" + it_behaves_like "a media file", + "Showname.2014.S02E01.720p.HDTV.x264-GROUP[DISTRIBUTION].mkv", + "Showname.2014" end context "with a full path" do @@ -129,31 +134,13 @@ context "with no distribution" do it_behaves_like "a media file", "Showname.S02E01.720p.HDTV.x264-GROUP.mkv" end - end - describe '#basename' do - it 'returns only file name given a full path' do - expect(Addic7ed::VideoFile.new("/full/path/to/Showname.S02E01.720p.HDTV.x264-GROUP.mkv").basename).to eq "Showname.S02E01.720p.HDTV.x264-GROUP.mkv" - end - end - - describe '#to_s' do - it 'returns file name as a string' do - expect(Addic7ed::VideoFile.new("/full/path/to/Showname.S02E01.720p.HDTV.x264-GROUP.mkv").to_s).to eq "/full/path/to/Showname.S02E01.720p.HDTV.x264-GROUP.mkv" - end - end + describe "#basename" do + subject { Addic7ed::VideoFile.new("/full/path/to/Showname.S02E01.720p.HDTV.x264-GROUP.mkv") } - describe '#inspect' do - it 'prints a human-readable detailed version' do - expect(Addic7ed::VideoFile.new("Showname.S02E01.720p.HDTV.x264-GROUP[DISTRIBUTION].mkv").inspect).to eq( -'Guesses for Showname.S02E01.720p.HDTV.x264-GROUP[DISTRIBUTION].mkv: - show: Showname - season: 2 - episode: 1 - tags: ["720P", "HDTV", "X264"] - group: GROUP - distribution: DISTRIBUTION') + it "returns only file name given a full path" do + expect(subject.basename).to eq "Showname.S02E01.720p.HDTV.x264-GROUP.mkv" end end end diff --git a/spec/lib/addic7ed/services/check_compatibility_spec.rb b/spec/lib/addic7ed/services/check_compatibility_spec.rb new file mode 100644 index 0000000..005731b --- /dev/null +++ b/spec/lib/addic7ed/services/check_compatibility_spec.rb @@ -0,0 +1,90 @@ +# frozen_string_literal: true + +require "spec_helper" + +describe Addic7ed::CheckCompatibility, "#call(subtitle, group)" do + let(:subtitle) { Addic7ed::Subtitle.new(version: "DIMENSION") } + let(:group) { subtitle.version } + + subject { described_class.call(subtitle, group) } + + context "when group is matching exactly" do + let(:group) { subtitle.version } + + it "returns true" do + expect(subject).to be_truthy + end + end + + context "when group is one of the multiple groups defined for subtitle" do + let(:subtitle) { Addic7ed::Subtitle.new(version: "DIMENSION,FOV") } + let(:group) { "FOV" } + + it "returns true" do + expect(subject).to be_truthy + end + end + + context "when group is the generally compatible 720p version of the subtitle" do + let(:group) { "LOL" } + + it "returns true" do + expect(subject).to be_truthy + end + end + + context "when group is the generally compatible low-def version of the subtitle" do + let(:subtitle) { Addic7ed::Subtitle.new(version: "LOL") } + let(:group) { "DIMENSION" } + + it "returns true" do + expect(subject).to be_truthy + end + end + + context "when group is different" do + let(:group) { "EVOLVE" } + + it "returns false" do + expect(subject).to be_falsey + end + end + + context "when subtitle has a compatibility comment" do + let(:subtitle) { Addic7ed::Subtitle.new(version: "DIMENSION", comment: "Works with FOV") } + + context "when group is mentioned in the comment" do + let(:group) { "FOV" } + + it "returns true" do + expect(subject).to be_truthy + end + end + + context "when group is not mentioned in the comment" do + let(:group) { "EVOLVE" } + + it "returns false" do + expect(subject).to be_falsey + end + end + end + + context "when subtitle has an incompatibility comment" do + let(:subtitle) { Addic7ed::Subtitle.new(version: "DIMENSION", comment: "Doesn't work for FOV") } + let(:group) { "FOV" } + + it "returns false" do + expect(subject).to be_falsey + end + end + + context "when subtitle has an ambiguous comment" do + let(:subtitle) { Addic7ed::Subtitle.new(version: "DIMENSION", comment: "Resync of FOV") } + let(:group) { "FOV" } + + it "returns false" do + expect(subject).to be_falsey + end + end +end diff --git a/spec/lib/addic7ed/services/get_shows_list_spec.rb b/spec/lib/addic7ed/services/get_shows_list_spec.rb new file mode 100644 index 0000000..3701d96 --- /dev/null +++ b/spec/lib/addic7ed/services/get_shows_list_spec.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +require "spec_helper" + +describe Addic7ed::GetShowsList do + before { Singleton.__init__(described_class) } + + it "downloads Addic7ed homepage" do + described_class.call + expect(a_request(:get, "http://www.addic7ed.com")).to have_been_made + end + + it "returns the list of shows names" do + some_shows = ["Game of Thrones", "The Walking Dead", "Californication", "Breaking Bad", "Weeds"] + expect(described_class.call).to include(*some_shows) + end + + it "memoizes to minimize network requests" do + 2.times { described_class.call } + expect(a_request(:get, "http://www.addic7ed.com")).to have_been_made.once + end +end diff --git a/spec/lib/addic7ed/services/addic7ed_comment_normalizer_spec.rb b/spec/lib/addic7ed/services/normalize_comment_spec.rb similarity index 50% rename from spec/lib/addic7ed/services/addic7ed_comment_normalizer_spec.rb rename to spec/lib/addic7ed/services/normalize_comment_spec.rb index a186728..c143268 100644 --- a/spec/lib/addic7ed/services/addic7ed_comment_normalizer_spec.rb +++ b/spec/lib/addic7ed/services/normalize_comment_spec.rb @@ -1,7 +1,8 @@ +# frozen_string_literal: true + require "spec_helper" -require "./lib/addic7ed" -describe Addic7ed::Addic7edCommentNormalizer do +describe Addic7ed::NormalizeComment do def normalized_comment(comment) described_class.call(comment) end @@ -9,4 +10,8 @@ def normalized_comment(comment) it "downcases everything" do expect(normalized_comment("DiMENSiON")).to eq "dimension" end + + it "removes extra heading and trailing whitespaces" do + expect(normalized_comment(" \t AVS\t\r\n ")).to eq "avs" + end end diff --git a/spec/lib/addic7ed/services/addic7ed_version_normalizer_spec.rb b/spec/lib/addic7ed/services/normalize_version_spec.rb similarity index 87% rename from spec/lib/addic7ed/services/addic7ed_version_normalizer_spec.rb rename to spec/lib/addic7ed/services/normalize_version_spec.rb index 06174b5..b7abb65 100644 --- a/spec/lib/addic7ed/services/addic7ed_version_normalizer_spec.rb +++ b/spec/lib/addic7ed/services/normalize_version_spec.rb @@ -1,7 +1,8 @@ +# frozen_string_literal: true + require "spec_helper" -require "./lib/addic7ed" -describe Addic7ed::Addic7edVersionNormalizer do +describe Addic7ed::NormalizeVersion do def normalized_version(version) described_class.call(version) end @@ -67,7 +68,11 @@ def normalized_version(version) expect(normalized_version("Version 720P PROPER X264 HDTV DIMENSION")).to eq "DIMENSION" end - it "supports multiple concatenated versions" do + it "supports comma-separated multiple concatenated versions" do expect(normalized_version("-TLA, -FoV")).to eq "TLA,FOV" end + + it "supports dash-separated multiple concatenated versions" do + expect(normalized_version("KILLERS - AVS")).to eq "KILLERS,AVS" + end end diff --git a/spec/lib/addic7ed/services/parse_page_spec.rb b/spec/lib/addic7ed/services/parse_page_spec.rb new file mode 100644 index 0000000..ce39d34 --- /dev/null +++ b/spec/lib/addic7ed/services/parse_page_spec.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require "spec_helper" + +describe Addic7ed::ParsePage do + it "should be tested" +end diff --git a/spec/lib/addic7ed/services/parse_subtitle_node_child_fields_spec.rb b/spec/lib/addic7ed/services/parse_subtitle_node_child_fields_spec.rb new file mode 100644 index 0000000..2eb1c7e --- /dev/null +++ b/spec/lib/addic7ed/services/parse_subtitle_node_child_fields_spec.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require "spec_helper" + +describe Addic7ed::ParseSubtitleNodeChildFields do + xit "should be tested" +end diff --git a/spec/lib/addic7ed/services/parse_subtitle_node_root_fields_spec.rb b/spec/lib/addic7ed/services/parse_subtitle_node_root_fields_spec.rb new file mode 100644 index 0000000..26fe8f7 --- /dev/null +++ b/spec/lib/addic7ed/services/parse_subtitle_node_root_fields_spec.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require "spec_helper" + +describe Addic7ed::ParseSubtitleNodeRootFields do + xit "should be tested" +end diff --git a/spec/lib/addic7ed/services/parse_subtitle_node_spec.rb b/spec/lib/addic7ed/services/parse_subtitle_node_spec.rb new file mode 100644 index 0000000..3b444b0 --- /dev/null +++ b/spec/lib/addic7ed/services/parse_subtitle_node_spec.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require "spec_helper" + +describe Addic7ed::ParseSubtitleNode do + xit "should be tested" +end diff --git a/spec/lib/addic7ed/services/url_encode_show_name_spec.rb b/spec/lib/addic7ed/services/url_encode_show_name_spec.rb new file mode 100644 index 0000000..408a52f --- /dev/null +++ b/spec/lib/addic7ed/services/url_encode_show_name_spec.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +require "spec_helper" + +describe Addic7ed::URLEncodeShowName do + it "changes all spaces to underscores" do + expect(described_class.call("The.Walking.Dead")).to eq "The_Walking_Dead" + end + + it "wraps country code with parenthesis" do + expect(described_class.call("Shameless.US")).to eq "Shameless_(US)" + expect(described_class.call("Vikings.UK")).to eq "Vikings_(UK)" + end + + it "is case-insensitive" do + expect(described_class.call("shameless.us")).to eq "Shameless_(US)" + end + + it "wraps production year with parenthesis" do + expect(described_class.call("Vikings.2013")).to eq "Vikings_(2013)" + end + + it "returns last show when production year is unspecified" do + expect(described_class.call("Empire")).to eq "Empire_(2015)" + expect(described_class.call("American.Crime")).to eq "American_Crime_(2015)" + end + + it "handles when both country code and production year are present" do + expect(described_class.call("Legacy.2013.UK")).to eq "Legacy_(2013)_(UK)" + end + + it "handles when show name contains a quote" do + expect(described_class.call("Greys.Anatomy")).to eq "Grey's_Anatomy" + end + + it "handles when a show name contains dots" do + expect(described_class.call("The.O.C.")).to eq "The_O.C." + end + + it "raises a ShowNotFound error when no matching show is found" do + expect { described_class.call("Not.an.existing.show") }.to raise_error Addic7ed::ShowNotFound + end +end diff --git a/spec/lib/addic7ed/show_list_spec.rb b/spec/lib/addic7ed/show_list_spec.rb deleted file mode 100644 index d3e5425..0000000 --- a/spec/lib/addic7ed/show_list_spec.rb +++ /dev/null @@ -1,42 +0,0 @@ -require "spec_helper" -require "./lib/addic7ed" - -describe Addic7ed::ShowList, ".url_segment_for" do - it "changes all spaces to underscores" do - expect(Addic7ed::ShowList.url_segment_for("The.Walking.Dead")).to eq "The_Walking_Dead" - end - - it "wraps country code with parenthesis" do - expect(Addic7ed::ShowList.url_segment_for("Shameless.US")).to eq "Shameless_(US)" - expect(Addic7ed::ShowList.url_segment_for("Vikings.UK")).to eq "Vikings_(UK)" - end - - it "is case-insensitive" do - expect(Addic7ed::ShowList.url_segment_for("shameless.us")).to eq "Shameless_(US)" - end - - it "wraps production year with parenthesis" do - expect(Addic7ed::ShowList.url_segment_for("Vikings.2013")).to eq "Vikings_(2013)" - end - - it "returns last show when production year is unspecified" do - expect(Addic7ed::ShowList.url_segment_for("Empire")).to eq "Empire_(2015)" - expect(Addic7ed::ShowList.url_segment_for("American.Crime")).to eq "American_Crime_(2015)" - end - - it "handles when both country code and production year are present" do - expect(Addic7ed::ShowList.url_segment_for("Legacy.2013.UK")).to eq "Legacy_(2013)_(UK)" - end - - it "handles when show name contains a quote" do - expect(Addic7ed::ShowList.url_segment_for("Greys.Anatomy")).to eq "Grey's_Anatomy" - end - - it "handles when a show name contains dots" do - expect(Addic7ed::ShowList.url_segment_for("The.O.C.")).to eq "The_O.C." - end - - it "raises a ShowNotFound error when no matching show is found" do - expect{Addic7ed::ShowList.url_segment_for("Not.an.existing.show")}.to raise_error Addic7ed::ShowNotFound - end -end diff --git a/spec/lib/addic7ed/subtitle_spec.rb b/spec/lib/addic7ed/subtitle_spec.rb deleted file mode 100644 index 187c914..0000000 --- a/spec/lib/addic7ed/subtitle_spec.rb +++ /dev/null @@ -1,182 +0,0 @@ -require "spec_helper" -require "./lib/addic7ed" - -describe Addic7ed::Subtitle, "#initialize" do - let(:version) { "Version DIMENSiON" } - let(:comment) { "Works for LOL" } - - subject { described_class.new(version: version, comment: comment) } - - it "normalizes Addic7ed version" do - expect(Addic7ed::Addic7edVersionNormalizer).to receive(:call).with(version) - subject - end - - it "normalizes Addic7ed comment" do - expect(Addic7ed::Addic7edCommentNormalizer).to receive(:call).with(comment) - subject - end -end - -describe Addic7ed::Subtitle, "#to_s" do - let(:subtitle) { Addic7ed::Subtitle.new(version: "DIMENSION", language: "fr", status: "Completed", url: "http://some.fancy.url", via: "http://addic7ed.com", downloads: "42") } - - it "prints a human readable version" do - expect(subtitle.to_s).to eq "http://some.fancy.url\t->\tDIMENSION (fr, Completed) [42 downloads] (via http://addic7ed.com)" - end -end - -describe Addic7ed::Subtitle, "#works_for?" do - let(:subtitle) { Addic7ed::Subtitle.new(version: "DIMENSION") } - - context "when it is incomplete" do - before { allow(subtitle).to receive(:is_completed?).and_return(false) } - - it "returns false" do - expect(subtitle.works_for? "DIMENSION").to be false - end - end - - context "when it is completed" do - before { allow(subtitle).to receive(:is_completed?).and_return(true) } - - it "returns true given the exact same version" do - expect(subtitle.works_for? "DIMENSION").to be true - end - - it "returns true given a compatible version" do - expect(subtitle.works_for? "LOL").to be true - end - - it "returns false given an incompatible version" do - expect(subtitle.works_for? "EVOLVE").to be false - end - - context "when is has a compatibility comment" do - let(:subtitle) { Addic7ed::Subtitle.new(version: "DIMENSION", comment: "Works with IMMERSE") } - - it "returns true given the same version as comment" do - expect(subtitle.works_for? "IMMERSE").to be true - end - - it "returns true given a compatible version as comment" do - expect(subtitle.works_for? "ASAP").to be true - end - - it "returns false given an incompatible version as comment" do - expect(subtitle.works_for? "KILLERS").to be false - end - end - - context "when is has an incompatibility comment" do - let(:subtitle) { Addic7ed::Subtitle.new(version: "DIMENSION", comment: "Doesn't work with IMMERSE") } - - it "returns false" do - expect(subtitle.works_for? "IMMERSE").to be false - end - end - - context "when is has an ambiguous comment" do - let(:subtitle) { Addic7ed::Subtitle.new(version: "DIMENSION", comment: "Resync from IMMERSE") } - - it "returns false" do - expect(subtitle.works_for? "IMMERSE").to be false - end - end - - context "when it has multiple versions" do - let(:subtitle) { Addic7ed::Subtitle.new(version: "FOV,TLA") } - - it "returns true if it works for one of them" do - expect(subtitle.works_for? "TLA").to be true - expect(subtitle.works_for? "FOV").to be true - end - - it "returns false when none of them work" do - expect(subtitle.works_for? "LOL").to be false - end - end - end -end - -describe Addic7ed::Subtitle, "#can_replace?" do - let(:defaults) { {version: "DIMENSION", language: "fr", status: "Completed", downloads: "10"} } - let(:subtitle) { Addic7ed::Subtitle.new(defaults) } - let(:other_subtitle) { Addic7ed::Subtitle.new(defaults) } - - context "when it is incomplete" do - before { allow(subtitle).to receive(:is_completed?).and_return(false) } - - it "returns false" do - expect(subtitle.can_replace? other_subtitle).to be false - end - end - - context "when it is completed" do - before { allow(subtitle).to receive(:is_completed?).and_return(true) } - - it "returns true given no other_subtitle" do - expect(subtitle.can_replace? nil).to be true - end - - context "when other_subtitle has a different language" do - before { allow(other_subtitle).to receive(:language).and_return("en") } - - it "returns false" do - expect(subtitle.can_replace? other_subtitle).to be false - end - end - - context "when other_subtitle has an incompatible version" do - before { allow(subtitle).to receive(:is_compatible_with?).with(other_subtitle.version).and_return(false) } - - it "returns false" do - expect(subtitle.can_replace? other_subtitle).to be false - end - end - - context "when other_subtitle is featured by Addic7ed" do - before { allow(other_subtitle).to receive(:is_featured?).and_return(true) } - - it "returns false" do - expect(subtitle.can_replace? other_subtitle).to be false - end - end - - context "when other_subtitle has more downloads" do - before { allow(other_subtitle).to receive(:downloads).and_return(subtitle.downloads + 1) } - - it "returns false" do - expect(subtitle.can_replace? other_subtitle).to be false - end - end - - context "when other_subtitle has less downloads" do - before { allow(other_subtitle).to receive(:downloads).and_return(subtitle.downloads - 1) } - - it "returns true" do - expect(subtitle.can_replace? other_subtitle).to be true - end - end - end -end - -describe Addic7ed::Subtitle, "#is_featured?" do - it "returns true when 'via' is 'http://addic7ed.com'" do - expect(Addic7ed::Subtitle.new(via: 'http://addic7ed.com').is_featured?).to be true - end - - it "returns false otherwise" do - expect(Addic7ed::Subtitle.new(via: 'anything else').is_featured?).to be false - end -end - -describe Addic7ed::Subtitle, "#is_completed?" do - it "returns true when 'status' is 'Completed'" do - expect(Addic7ed::Subtitle.new(status: 'Completed').is_completed?).to be true - end - - it "returns false otherwise" do - expect(Addic7ed::Subtitle.new(status: '80%').is_completed?).to be false - end -end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 826fe01..e014b6c 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,10 +1,12 @@ -unless RUBY_ENGINE == 'rbx' - require 'coveralls' +# frozen_string_literal: true + +unless RUBY_ENGINE == "rbx" + require "coveralls" Coveralls.wear! end -require 'webmock/rspec' -require 'pry' +require "webmock/rspec" +require "pry" WebMock.disable_net_connect!(allow_localhost: true) @@ -21,6 +23,9 @@ config.raise_errors_for_deprecations! config.before(:each) do - stub_request(:get, "http://www.addic7ed.com").to_return(File.new("spec/responses/homepage.http")) + stub_request(:get, "http://www.addic7ed.com") + .to_return(File.new("spec/responses/homepage.http")) end end + +require "./lib/addic7ed"