Compare commits
291 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bd61a43b2f | |||
| 7ffa1e6b23 | |||
| f799137483 | |||
| 4dadafb87f | |||
| e85c21f40e | |||
| e5c50242fa | |||
| 2eda69d429 | |||
| 6e027133cc | |||
| eb49003bd6 | |||
| 707b189ab2 | |||
| dfb0b85877 | |||
| e0b7ce46cb | |||
| 5912f366f8 | |||
| 8b3786a875 | |||
| 815cee81c5 | |||
| 3b08b452a0 | |||
| b03f97c91e | |||
| d62a09beba | |||
| 90ebdebe99 | |||
| 2e37b94bd3 | |||
| f10cbc04e2 | |||
| 85de66bcf2 | |||
| a98b5a2a04 | |||
| 51cf652fe2 | |||
| ae117cb383 | |||
| 7ec08b2dcb | |||
| e721d6c295 | |||
| 9d9bf92a4f | |||
| fadf3d935f | |||
| 06aae43d7f | |||
| 9b81449dbd | |||
| c369e29975 | |||
| 1a00f6fe9a | |||
| b2c38e24a2 | |||
| 19b3fe8495 | |||
| 7752b92588 | |||
| cddeb3e552 | |||
| 84eb32a4f1 | |||
| 7779fc0a21 | |||
| 1c8f7c1954 | |||
| 9fc92ab065 | |||
| ea8b646c96 | |||
| bc218fa138 | |||
| 2ef474960b | |||
| fe6cfa663a | |||
| 769b16de83 | |||
| 4e8ea6587b | |||
| 4eb23d6512 | |||
| b756704121 | |||
| 192b7fce1d | |||
| 1c35aac8ce | |||
| 99a071f486 | |||
| 62e71e4c75 | |||
| e44944c538 | |||
| 2dd9409f9c | |||
| 5d2292092f | |||
| 9fb3576bb2 | |||
| 04e3512f71 | |||
| 327a40ea75 | |||
| dc59b44371 | |||
| 979bc39522 | |||
| db1c404a02 | |||
| e05297b09f | |||
| b60cb8a81f | |||
| 835dcd6eec | |||
| 26cb66aa45 | |||
| d4dc59aeba | |||
| 5258ef400f | |||
| 50ef6efcfa | |||
| 4b1cb36343 | |||
| 4324460005 | |||
| 620688d92a | |||
| 89d5ea929b | |||
| 168004dc89 | |||
| 1ad88032f2 | |||
| 4000f9e894 | |||
| 8b825263d4 | |||
| 7247568d96 | |||
| 74d5175152 | |||
| 130d961e72 | |||
| 02dd9a77f0 | |||
| f6f40d81a1 | |||
| 79fb0442dd | |||
| 56a8b2c7cf | |||
| 71a06d5bbc | |||
| 55ac0a941b | |||
| 0aaa4347f8 | |||
| 4c11e2d5c1 | |||
| 3bc239ffee | |||
| e797516468 | |||
| aa67ccd098 | |||
| b1c5ca5a00 | |||
| 050d29a186 | |||
| 7d8ce8bb30 | |||
| 38f5d303f9 | |||
| 38c86b4cf1 | |||
| 1da6d181d5 | |||
| e0788be5af | |||
| 52709a3e25 | |||
| 25cf0ac996 | |||
| 4c3d7d5b9d | |||
| b4cbfc0de2 | |||
| 600393c12a | |||
| faeeeca39a | |||
| 537d33b66a | |||
| 3933db4936 | |||
| 86c6d2c253 | |||
| 75ffe3767f | |||
| 015b7547db | |||
| 2a6d861968 | |||
| 0f188e30b0 | |||
| 5faf8277f1 | |||
| b86b4f1405 | |||
| 98f903174a | |||
| d8df8a4624 | |||
| 0df19e300f | |||
| b26bf1c470 | |||
| 53cd3f6118 | |||
| c23f955b6c | |||
| 5c5b2656ec | |||
| c6278909ff | |||
| 64d599d6f7 | |||
| 90d638e9c6 | |||
| 1dabbf78b2 | |||
| 58b0b0c756 | |||
| 1426d9d62d | |||
| 85db6c7884 | |||
| 43d02c349f | |||
| c7af4573ca | |||
| 73a217eb1b | |||
| b1854222a0 | |||
| 7cb72b2bb2 | |||
| 00245dd44d | |||
| c1972ab26f | |||
| b86254b0b8 | |||
| 00157ee655 | |||
| 6aaece1c44 | |||
| 6445064836 | |||
| 9d0c9d93a0 | |||
| 01a06166ff | |||
| f41fc2bceb | |||
| 5ffa344f1c | |||
| 31c2b21350 | |||
| b2c6562c64 | |||
| 02a36d9cad | |||
| 5dcb1916b2 | |||
| c5623ec868 | |||
| 1c17c1987f | |||
| b6318bfae0 | |||
| 0e8489951d | |||
| 21d3a1c1bb | |||
| 9055021282 | |||
| 10fcfd21b1 | |||
| c142233ff9 | |||
| e660e47265 | |||
| 40c4c0aeec | |||
| 97c9a7b025 | |||
| 9145f2530b | |||
| a1b073e5d6 | |||
| 7425153760 | |||
| c0836a94a9 | |||
| 9dc24951a2 | |||
| f3eaad8d1c | |||
| effde5014e | |||
| 74c4c06a5c | |||
| f10b7683c9 | |||
| 5e26185c9f | |||
| 2d350f5340 | |||
| f0519bbefb | |||
| 7acfb3f027 | |||
| 24621e15e3 | |||
| 3474b2363f | |||
| 560dea3e3e | |||
| f6e5cf91ab | |||
| 57e8770fda | |||
| 7e8f7e41b5 | |||
| 84d890d7b0 | |||
| e57c90b97e | |||
| 236c43b807 | |||
| bb32c286d9 | |||
| f1d4975079 | |||
| 464b783477 | |||
| c4756030c7 | |||
| bf538fee32 | |||
| cc32c29930 | |||
| 27b8703949 | |||
| 0d9bbff534 | |||
| cad60e73a6 | |||
| 1d14d21684 | |||
| 0733ef7d32 | |||
| 143f872166 | |||
| 95abab3c18 | |||
| 2e5fb46ebc | |||
| 0d11092178 | |||
| 80589f325a | |||
| 0b6b3d0905 | |||
| bc97f772b8 | |||
| efe944a10c | |||
| 9d9aed2d4b | |||
| 9cd8b7d593 | |||
| abfd2361d4 | |||
| b10e616ec2 | |||
| 7dc2a90edc | |||
| cb53199748 | |||
| 7b2402c436 | |||
| 0715437888 | |||
| bea95113e7 | |||
| e73e969f58 | |||
| fd30cf7388 | |||
| fa9792b280 | |||
| e93530c7c7 | |||
| 35d4c37d61 | |||
| 4d61d3fc42 | |||
| a24388137e | |||
| 60c7666610 | |||
| e11f1c4b28 | |||
| e1b32f237c | |||
| fe76634d02 | |||
| b499540bed | |||
| 7b4a9c2060 | |||
| a84cc80a88 | |||
| 241cea9729 | |||
| 4b83ddc63e | |||
| 0b431fbb8d | |||
| 3736d921a1 | |||
| 380fb28d2e | |||
| 64c0ee4ccf | |||
| 5977bf69fb | |||
| 179ae6a24e | |||
| 16942ec4c7 | |||
| 6f5378ea40 | |||
| 02ee2039f4 | |||
| e7f89c1a19 | |||
| be4f9d92eb | |||
| ca63b97e79 | |||
| c1ed4a0232 | |||
| b826a0bf08 | |||
| fd0d87d719 | |||
| 094373f3c1 | |||
| 5dac623c9f | |||
| 57d1e772ec | |||
| 983efbfd9b | |||
| 1f11e293c1 | |||
| bfd278ae1c | |||
| dbe1b9d2af | |||
| d71bc4bf09 | |||
| faf2e1dfa4 | |||
| 93360aa1bb | |||
| 8df7780ef9 | |||
| c1fda7f44c | |||
| ce42201eee | |||
| f65131e5b0 | |||
| 8d9efa5dc0 | |||
| 1a54bfb732 | |||
| a15c1f05b2 | |||
| ccfd341fe9 | |||
| aab8e0aa4d | |||
| 9b669c8a3d | |||
| 50960fed24 | |||
| ff61bc8d2d | |||
| e5d9c229ed | |||
| b0e38c7e2c | |||
| c12dade5ea | |||
| cb35dabf31 | |||
| a66cf4b501 | |||
| c355d6a24a | |||
| 60c1e93037 | |||
| 708126aca3 | |||
| bf763a3ad7 | |||
| bb0c3b91a2 | |||
| a7c0cd0d19 | |||
| f315ef9bd0 | |||
| b262a5491c | |||
| d7b30336b6 | |||
| c834bac460 | |||
| 36da0a1204 | |||
| 6ece9271eb | |||
| a465058bb3 | |||
| bad7dbb55c | |||
| 501aaf076e | |||
| 49d27cc7e4 | |||
| e3903f77e9 | |||
| b6ee9b5d7e | |||
| e3301cefd7 | |||
| 74ac38329e | |||
| 50c39382e6 | |||
| 9a65708855 | |||
| 4ebcb2cc95 | |||
| 0c3c41fb4a | |||
| f44942f78e | |||
| d7f2211800 |
+4
-1
@@ -1,5 +1,8 @@
|
||||
[report]
|
||||
exclude_lines =
|
||||
def __repr__
|
||||
pragma: no cover
|
||||
raise NotImplementedError
|
||||
def __repr__
|
||||
if __name__ == .__main__.:
|
||||
omit =
|
||||
subliminal/cli.py
|
||||
|
||||
+48
-27
@@ -1,43 +1,64 @@
|
||||
*.py[co]
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# Packages
|
||||
*.egg
|
||||
*.egg-info
|
||||
dist
|
||||
build
|
||||
eggs
|
||||
parts
|
||||
bin
|
||||
var
|
||||
sdist
|
||||
develop-eggs
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
env/
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.coverage
|
||||
.tox
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*,cover
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Mr Developer
|
||||
.mr.developer.cfg
|
||||
# Django stuff:
|
||||
*.log
|
||||
|
||||
# Pydev
|
||||
.project
|
||||
.pydevproject
|
||||
.settings
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# Rope
|
||||
.ropeproject
|
||||
# PyBuilder
|
||||
target/
|
||||
|
||||
# Sphinx
|
||||
docs/_build
|
||||
# Pycharm
|
||||
.idea
|
||||
|
||||
# Subliminal unittests
|
||||
subliminal/tests/*.srt
|
||||
subliminal/tests/*_files
|
||||
subliminal/tests/*_cache
|
||||
# Subliminal
|
||||
tests/data/mkv/
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
[submodule "docs/_themes"]
|
||||
path = docs/_themes
|
||||
url = git://github.com/Diaoul/diaoul-sphinx-themes.git
|
||||
+36
-16
@@ -1,24 +1,44 @@
|
||||
sudo: false
|
||||
|
||||
language: python
|
||||
|
||||
python:
|
||||
- "2.7"
|
||||
- "3.3"
|
||||
- "3.4"
|
||||
- "3.5"
|
||||
|
||||
env:
|
||||
- PARSER=native
|
||||
- PARSER=lxml
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- python: "3.4"
|
||||
env:
|
||||
- PARSER=native
|
||||
- VCR_RECORD_MODE=all
|
||||
- PYTEST_ADDOPTS="-m integration"
|
||||
allow_failures:
|
||||
- python: "3.4"
|
||||
env:
|
||||
- PARSER=native
|
||||
- VCR_RECORD_MODE=all
|
||||
- PYTEST_ADDOPTS="-m integration"
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.cache/pip
|
||||
- tests/data/mkv
|
||||
|
||||
before_cache:
|
||||
- rm -f $HOME/.cache/pip/log/debug.log
|
||||
|
||||
install:
|
||||
- pip install coveralls --use-mirrors
|
||||
- pip install -r requirements.txt --use-mirrors
|
||||
- pip install -e .[test]
|
||||
- if [ $PARSER = "lxml" ]; then pip install lxml; fi
|
||||
- pip install coveralls
|
||||
|
||||
script:
|
||||
- coverage run --source=subliminal setup.py test
|
||||
script: python setup.py test --addopts "--cov subliminal --verbose $PYTEST_ADDOPTS"
|
||||
|
||||
after_success:
|
||||
- coveralls
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
irc:
|
||||
channels:
|
||||
- "irc.freenode.org#subliminal"
|
||||
on_success: change
|
||||
on_failure: always
|
||||
use_notice: true
|
||||
skip_join: true
|
||||
after_success: coveralls
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
|
||||
[subliminal.subliminal]
|
||||
source_file = examples/i18n/subliminal.pot
|
||||
source_lang = en
|
||||
type = PO
|
||||
file_filter = examples/i18n/<lang>.po
|
||||
@@ -0,0 +1,19 @@
|
||||
Contributing
|
||||
============
|
||||
|
||||
Issues
|
||||
------
|
||||
Issues are intended for bug report and feature requests. For any bug report please make sure to include the complete
|
||||
stack trace and DEBUG level logs as well as reproduce steps.
|
||||
|
||||
If you use the CLI, you can create a debug log file with `subliminal --debug [...] 2> debug.log`.
|
||||
|
||||
Pull Requests
|
||||
-------------
|
||||
You can contribute code and documentation with pull requests. Any code contribution must be unit tested and the pull
|
||||
request open against the *develop* branch.
|
||||
|
||||
Translations
|
||||
------------
|
||||
Contribution to translations can be made on [subliminal's transifex page](https://www.transifex.com/subliminal/subliminal/)
|
||||
Subliminal is configured to work with [transifex-client](http://docs.transifex.com/client/)
|
||||
+118
-14
@@ -1,8 +1,101 @@
|
||||
Changelog
|
||||
=========
|
||||
---------
|
||||
|
||||
1.1.1
|
||||
^^^^^
|
||||
**release date:** 2016-01-03
|
||||
|
||||
* Fix scanning videos on bad MKV files
|
||||
|
||||
|
||||
1.1
|
||||
^^^
|
||||
**release date:** 2015-12-29
|
||||
|
||||
* Fix library usage example in README
|
||||
* Fix for series name with special characters in addic7ed provider
|
||||
* Fix id property in thesubdb provider
|
||||
* Improve matching on titles
|
||||
* Add support for nautilus context menu with translations
|
||||
* Add support for searching subtitles in a separate directory
|
||||
* Add subscenter provider
|
||||
* Add support for python 3.5
|
||||
|
||||
|
||||
1.0.1
|
||||
^^^^^
|
||||
**release date:** 2015-07-23
|
||||
|
||||
* Fix unicode issues in CLI (python 2 only)
|
||||
* Fix score scaling in CLI (python 2 only)
|
||||
* Improve error handling in CLI
|
||||
* Color collect report in CLI
|
||||
|
||||
|
||||
1.0
|
||||
^^^
|
||||
**release date:** 2015-07-22
|
||||
|
||||
* Many changes and fixes
|
||||
* New test suite
|
||||
* New documentation
|
||||
* New CLI
|
||||
* Added support for SubsCenter
|
||||
|
||||
|
||||
0.7.5
|
||||
^^^^^
|
||||
**release date:** 2015-03-04
|
||||
|
||||
* Update requirements
|
||||
* Remove BierDopje provider
|
||||
* Add pre-guessed video optional argument in scan_video
|
||||
* Improve hearing impaired support
|
||||
* Fix TVSubtitles and Podnapisi providers
|
||||
|
||||
|
||||
0.7.4
|
||||
^^^^^
|
||||
**release date:** 2014-01-27
|
||||
|
||||
* Fix requirements for guessit and babelfish
|
||||
|
||||
|
||||
0.7.3
|
||||
^^^^^
|
||||
**release date:** 2013-11-22
|
||||
|
||||
* Fix windows compatibility
|
||||
* Improve subtitle validation
|
||||
* Improve embedded subtitle languages detection
|
||||
* Improve unittests
|
||||
|
||||
|
||||
0.7.2
|
||||
^^^^^
|
||||
**release date:** 2013-11-10
|
||||
|
||||
* Fix TVSubtitles for ambiguous series
|
||||
* Add a CACHE_VERSION to force cache reloading on version change
|
||||
* Set CLI default cache expiration time to 30 days
|
||||
* Add podnapisi provider
|
||||
* Support script for languages e.g. Latn, Cyrl
|
||||
* Improve logging levels
|
||||
* Fix subtitle validation in some rare cases
|
||||
|
||||
|
||||
0.7.1
|
||||
^^^^^
|
||||
**release date:** 2013-11-06
|
||||
|
||||
* Improve CLI
|
||||
* Add login support for Addic7ed
|
||||
* Remove lxml dependency
|
||||
* Many fixes
|
||||
|
||||
|
||||
0.7.0
|
||||
-----
|
||||
^^^^^
|
||||
**release date:** 2013-10-29
|
||||
|
||||
**WARNING:** Complete rewrite of subliminal with backward incompatible changes
|
||||
@@ -19,20 +112,23 @@ Changelog
|
||||
* Drop a few providers
|
||||
* And much more...
|
||||
|
||||
|
||||
0.6.4
|
||||
-----
|
||||
^^^^^
|
||||
**release date:** 2013-05-19
|
||||
|
||||
* Fix requirements due to enzyme 0.3
|
||||
|
||||
|
||||
0.6.3
|
||||
-----
|
||||
^^^^^
|
||||
**release date:** 2013-01-17
|
||||
|
||||
* Fix requirements due to requests 1.0
|
||||
|
||||
|
||||
0.6.2
|
||||
-----
|
||||
^^^^^
|
||||
**release date:** 2012-09-15
|
||||
|
||||
* Fix BierDopje
|
||||
@@ -43,8 +139,9 @@ Changelog
|
||||
* Add possible services in help message of the CLI
|
||||
* Allow existing filenames to be passed without the ./ prefix
|
||||
|
||||
|
||||
0.6.1
|
||||
-----
|
||||
^^^^^
|
||||
**release date:** 2012-06-24
|
||||
|
||||
* Fix subtitle release name in BierDopje
|
||||
@@ -61,9 +158,11 @@ Changelog
|
||||
* Fix guessit.Language in Video.scan
|
||||
* Fix language detection of subtitles
|
||||
|
||||
|
||||
0.6.0
|
||||
-----
|
||||
^^^^^
|
||||
**release date:** 2012-06-16
|
||||
|
||||
**WARNING:** Backward incompatible changes
|
||||
|
||||
* Fix --workers option in CLI
|
||||
@@ -77,13 +176,14 @@ Changelog
|
||||
|
||||
|
||||
0.5.1
|
||||
-----
|
||||
^^^^^
|
||||
**release date:** 2012-03-25
|
||||
|
||||
* Improve error handling of enzyme parsing
|
||||
|
||||
|
||||
0.5
|
||||
---
|
||||
^^^
|
||||
**release date:** 2012-03-25
|
||||
**WARNING:** Backward incompatible changes
|
||||
|
||||
@@ -96,15 +196,17 @@ Changelog
|
||||
* Remove class Subliminal
|
||||
* Remove permissions handling
|
||||
|
||||
|
||||
0.4
|
||||
---
|
||||
^^^
|
||||
**release date:** 2011-11-11
|
||||
|
||||
* Many fixes
|
||||
* Better error handling
|
||||
|
||||
|
||||
0.3
|
||||
---
|
||||
^^^
|
||||
**release date:** 2011-08-18
|
||||
|
||||
* Fix a bug when series is not guessed by guessit
|
||||
@@ -114,16 +216,18 @@ Changelog
|
||||
* Add possibility to choose mode of created files
|
||||
* Add more checks before adjusting permissions
|
||||
|
||||
|
||||
0.2
|
||||
---
|
||||
^^^
|
||||
**release date:** 2011-07-11
|
||||
|
||||
* Fix plugin configuration
|
||||
* Fix some encoding issues
|
||||
* Remove extra logging
|
||||
|
||||
|
||||
0.1
|
||||
---
|
||||
**release date:** not released yet
|
||||
^^^
|
||||
**release date:** *private release*
|
||||
|
||||
* Initial release
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013 Antoine Bertin
|
||||
Copyright (c) 2015 Antoine Bertin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
|
||||
+75
-32
@@ -1,56 +1,99 @@
|
||||
Subliminal
|
||||
==========
|
||||
Subtitles, faster than your thoughts.
|
||||
|
||||
Subliminal is a python library to search and download subtitles.
|
||||
It comes with an easy to use CLI (command-line interface) suitable for direct use or cron jobs.
|
||||
.. image:: https://img.shields.io/pypi/v/subliminal.svg
|
||||
:target: https://pypi.python.org/pypi/subliminal
|
||||
:alt: Latest Version
|
||||
|
||||
.. image:: https://travis-ci.org/Diaoul/subliminal.png?branch=develop
|
||||
:target: https://travis-ci.org/Diaoul/subliminal
|
||||
.. image:: https://travis-ci.org/Diaoul/subliminal.svg?branch=master
|
||||
:target: https://travis-ci.org/Diaoul/subliminal
|
||||
:alt: Travis CI build status
|
||||
|
||||
.. image:: https://coveralls.io/repos/Diaoul/subliminal/badge.png?branch=develop
|
||||
:target: https://coveralls.io/r/Diaoul/subliminal?branch=develop
|
||||
.. image:: https://readthedocs.org/projects/subliminal/badge/?version=latest
|
||||
:target: https://subliminal.readthedocs.org/
|
||||
:alt: Documentation Status
|
||||
|
||||
.. image:: https://coveralls.io/repos/Diaoul/subliminal/badge.svg?branch=master&service=github
|
||||
:target: https://coveralls.io/github/Diaoul/subliminal?branch=master
|
||||
:alt: Code coverage
|
||||
|
||||
.. image:: https://img.shields.io/github/license/Diaoul/subliminal.svg
|
||||
:target: https://github.com/Diaoul/subliminal/blob/master/LICENSE
|
||||
:alt: License
|
||||
|
||||
.. image:: https://img.shields.io/badge/gitter-join%20chat-1dce73.svg
|
||||
:alt: Join the chat at https://gitter.im/Diaoul/subliminal
|
||||
:target: https://gitter.im/Diaoul/subliminal
|
||||
|
||||
|
||||
Providers
|
||||
---------
|
||||
Subliminal uses multiple providers to give users a vast choice and have a better chance to find the
|
||||
best matching subtitles. Providers are extensible through a dedicated entry point.
|
||||
|
||||
* Addic7ed
|
||||
* BierDopje
|
||||
* OpenSubtitles
|
||||
* TheSubDB
|
||||
* TvSubtitles
|
||||
:Project page: https://github.com/Diaoul/subliminal
|
||||
:Documentation: https://subliminal.readthedocs.org/
|
||||
|
||||
|
||||
Usage
|
||||
-----
|
||||
CLI
|
||||
^^^
|
||||
Download english subtitles::
|
||||
Download English subtitles::
|
||||
|
||||
$ subliminal -l en -- The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.mp4
|
||||
1 subtitle downloaded
|
||||
$ subliminal download -l en The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.mp4
|
||||
Collecting videos [####################################] 100%
|
||||
1 video collected / 0 video ignored / 0 error
|
||||
Downloading subtitles [####################################] 100%
|
||||
Downloaded 1 subtitle
|
||||
|
||||
Library
|
||||
^^^^^^^
|
||||
Download best subtitles in French and English for videos less than one week old in a video folder,
|
||||
skipping videos that already have subtitles whether they are embedded or not::
|
||||
Download best subtitles in French and English for videos less than two weeks old in a video folder:
|
||||
|
||||
.. code:: python
|
||||
|
||||
from datetime import timedelta
|
||||
|
||||
from babelfish import Language
|
||||
from datetime import timedelta
|
||||
import subliminal
|
||||
|
||||
from subliminal import download_best_subtitles, region, save_subtitles, scan_videos
|
||||
|
||||
# configure the cache
|
||||
subliminal.cache_region.configure('dogpile.cache.dbm', arguments={'filename': '/path/to/cachefile.dbm'})
|
||||
region.configure('dogpile.cache.dbm', arguments={'filename': 'cachefile.dbm'})
|
||||
|
||||
# scan for videos in the folder and their subtitles
|
||||
videos = scan_videos(['/path/to/video/folder'], subtitles=True, embedded_subtitles=True)
|
||||
# scan for videos newer than 2 weeks and their existing subtitles in a folder
|
||||
videos = [v for v in scan_videos('/video/folder') if v.age < timedelta(weeks=2)]
|
||||
|
||||
# download
|
||||
subliminal.download_best_subtitles(videos, {Language('eng'), Language('fra')}, age=timedelta(week=1))
|
||||
# download best subtitles
|
||||
subtitles = download_best_subtitles(videos, {Language('eng'), Language('fra')})
|
||||
|
||||
# save them to disk, next to the video
|
||||
for v in videos:
|
||||
save_subtitles(v, subtitles[v])
|
||||
|
||||
|
||||
License
|
||||
-------
|
||||
MIT
|
||||
Nautilus integration
|
||||
--------------------
|
||||
Screenshots
|
||||
^^^^^^^^^^^
|
||||
.. image:: http://i.imgur.com/NCwELpB.png
|
||||
:alt: Menu
|
||||
|
||||
.. image:: http://i.imgur.com/Y58ky88.png
|
||||
:alt: Configuration
|
||||
|
||||
.. image:: http://i.imgur.com/qem3DGj.png
|
||||
:alt: Choose subtitles
|
||||
|
||||
Install
|
||||
^^^^^^^
|
||||
1. Install subliminal on your system
|
||||
``sudo pip install -U subliminal``
|
||||
2. Install nautilus-python with your package manager
|
||||
``sudo apt-get install nautilus-python``
|
||||
3. Create the extension directory
|
||||
``mkdir -p ~/.local/share/nautilus-python/extensions/subliminal``
|
||||
4. Copy the script
|
||||
``cp examples/nautilus.py ~/.local/share/nautilus-python/extensions/subliminal-nautilus.py``
|
||||
5. Copy UI files
|
||||
``cp -R examples/ui ~/.local/share/nautilus-python/extensions/subliminal/``
|
||||
6. (Optional) Create a translation directory for your language
|
||||
``mkdir -p ~/.local/share/nautilus-python/extensions/subliminal/locale/fr/LC_MESSAGES``
|
||||
7. (Optional) Install the translation
|
||||
``msgfmt examples/i18n/fr.po -o ~/.local/share/nautilus-python/extensions/subliminal/locale/fr/LC_MESSAGES/subliminal.mo``
|
||||
|
||||
@@ -1,3 +1 @@
|
||||
sympy>=0.7.3
|
||||
sphinx>=1.1.3
|
||||
sphinxcontrib-programoutput>=0.8
|
||||
-e .[dev,test]
|
||||
|
||||
+17
-2
@@ -2,7 +2,7 @@
|
||||
#
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS =
|
||||
SPHINXOPTS = -n -W
|
||||
SPHINXBUILD = sphinx-build
|
||||
PAPER =
|
||||
BUILDDIR = _build
|
||||
@@ -19,7 +19,7 @@ ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
# the i18n builder cannot share the environment and doctrees with the others
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
|
||||
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
|
||||
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext
|
||||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@@ -30,6 +30,7 @@ help:
|
||||
@echo " json to make JSON files"
|
||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||
@echo " qthelp to make HTML files and a qthelp project"
|
||||
@echo " applehelp to make an Apple Help Book"
|
||||
@echo " devhelp to make HTML files and a Devhelp project"
|
||||
@echo " epub to make an epub"
|
||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||
@@ -45,6 +46,7 @@ help:
|
||||
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
|
||||
@echo " linkcheck to check all external links for integrity"
|
||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||
@echo " coverage to run coverage check of the documentation (if enabled)"
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILDDIR)/*
|
||||
@@ -89,6 +91,14 @@ qthelp:
|
||||
@echo "To view the help file:"
|
||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/subliminal.qhc"
|
||||
|
||||
applehelp:
|
||||
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
|
||||
@echo
|
||||
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
|
||||
@echo "N.B. You won't be able to view it unless you put it in" \
|
||||
"~/Library/Documentation/Help or install it in your application" \
|
||||
"bundle."
|
||||
|
||||
devhelp:
|
||||
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
||||
@echo
|
||||
@@ -166,6 +176,11 @@ doctest:
|
||||
@echo "Testing of doctests in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/doctest/output.txt."
|
||||
|
||||
coverage:
|
||||
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
|
||||
@echo "Testing of coverage in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/coverage/python.txt."
|
||||
|
||||
xml:
|
||||
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
|
||||
@echo
|
||||
|
||||
Vendored
-4
@@ -1,4 +0,0 @@
|
||||
<h3>Subliminal</h3>
|
||||
<p>
|
||||
Subliminal is a Python library to search and download subtitles.
|
||||
</p>
|
||||
-1
Submodule docs/_themes deleted from 24aa9748e4
+4
-5
@@ -1,8 +1,7 @@
|
||||
API
|
||||
===
|
||||
.. module:: subliminal.api
|
||||
.. automodule:: subliminal.api
|
||||
|
||||
.. autodata:: PROVIDERS_ENTRY_POINT
|
||||
.. autofunction:: list_subtitles
|
||||
.. autofunction:: download_subtitles
|
||||
.. autofunction:: download_best_subtitles
|
||||
.. data:: provider_manager
|
||||
|
||||
:class:`~stevedore.extension.ExtensionManager` based on the entry point ``subliminal.providers``
|
||||
|
||||
+16
-2
@@ -2,6 +2,20 @@ Cache
|
||||
=====
|
||||
.. module:: subliminal.cache
|
||||
|
||||
.. autodata:: region
|
||||
.. autodata:: CACHE_VERSION
|
||||
:annotation:
|
||||
|
||||
Refer to `dogpile.cache's documentation <http://dogpilecache.readthedocs.org>`_ to see how to configure a region
|
||||
.. autodata:: SHOW_EXPIRATION_TIME
|
||||
:annotation:
|
||||
|
||||
.. autodata:: EPISODE_EXPIRATION_TIME
|
||||
:annotation:
|
||||
|
||||
.. data:: region
|
||||
:annotation:
|
||||
|
||||
The :class:`~dogpile.cache.region.CacheRegion`
|
||||
|
||||
|
||||
Refer to dogpile.cache's `region configuration documentation
|
||||
<http://dogpilecache.readthedocs.org/en/latest/usage.html#region-configuration>`_ to see how to configure the region
|
||||
|
||||
+1
-5
@@ -1,7 +1,3 @@
|
||||
CLI
|
||||
===
|
||||
.. module:: subliminal.cli
|
||||
|
||||
subliminal
|
||||
----------
|
||||
.. program-output:: subliminal --help
|
||||
.. automodule:: subliminal.cli
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
Exceptions
|
||||
==========
|
||||
.. module:: subliminal.exceptions
|
||||
|
||||
.. autoclass:: Error
|
||||
.. autoclass:: ProviderError
|
||||
.. autoclass:: ProviderConfigurationError
|
||||
.. autoclass:: ProviderNotAvailable
|
||||
.. autoclass:: InvalidSubtitle
|
||||
.. automodule:: subliminal.exceptions
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
Providers
|
||||
=========
|
||||
.. module:: subliminal.providers
|
||||
|
||||
.. autoclass:: Provider
|
||||
:members:
|
||||
.. automodule:: subliminal.providers
|
||||
|
||||
+1
-4
@@ -1,6 +1,3 @@
|
||||
Score
|
||||
=====
|
||||
.. module:: subliminal.score
|
||||
|
||||
.. autofunction:: get_episode_equations
|
||||
.. autofunction:: get_movie_equations
|
||||
.. automodule:: subliminal.score
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
Subtitle
|
||||
========
|
||||
.. module:: subliminal.subtitle
|
||||
|
||||
.. autoclass:: Subtitle
|
||||
:members:
|
||||
.. autofunction:: get_subtitle_path
|
||||
.. autofunction:: is_valid_subtitle
|
||||
.. autofunction:: compute_guess_matches
|
||||
.. automodule:: subliminal.subtitle
|
||||
|
||||
+7
-15
@@ -1,18 +1,10 @@
|
||||
Video
|
||||
=====
|
||||
.. module:: subliminal.video
|
||||
.. automodule:: subliminal.video
|
||||
:exclude-members: VIDEO_EXTENSIONS, SUBTITLE_EXTENSIONS
|
||||
|
||||
.. autodata:: VIDEO_EXTENSIONS
|
||||
.. autodata:: SUBTITLE_EXTENSIONS
|
||||
.. autodata:: LANGUAGE_EXTENSIONS
|
||||
.. autoclass:: Video
|
||||
:members:
|
||||
.. autoclass:: Episode
|
||||
:members:
|
||||
.. autoclass:: Movie
|
||||
:members:
|
||||
.. autofunction:: hash_opensubtitles
|
||||
.. autofunction:: hash_thesubdb
|
||||
.. autofunction:: scan_subtitle_languages
|
||||
.. autofunction:: scan_video
|
||||
.. autofunction:: scan_videos
|
||||
.. autodata:: VIDEO_EXTENSIONS
|
||||
:annotation:
|
||||
|
||||
.. autodata:: SUBTITLE_EXTENSIONS
|
||||
:annotation:
|
||||
|
||||
@@ -0,0 +1,280 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/1.0]
|
||||
method: GET
|
||||
uri: http://podnapisi.net/subtitles/search/old?sXML=1&sTS=5&sTE=18&sK=The+Big+Bang+Theory&sL=hu
|
||||
response:
|
||||
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
|
||||
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['160']
|
||||
Content-Type: [text/html]
|
||||
Date: ['Mon, 20 Jul 2015 06:11:37 GMT']
|
||||
Location: ['http://www.podnapisi.net/subtitles/search/old?sXML=1&sTS=5&sTE=18&sK=The+Big+Bang+Theory&sL=hu']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 302, message: Moved Temporarily}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/1.0]
|
||||
method: GET
|
||||
uri: http://www.podnapisi.net/subtitles/search/old?sXML=1&sTS=5&sTE=18&sK=The+Big+Bang+Theory&sL=hu
|
||||
response:
|
||||
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
|
||||
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
|
||||
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
|
||||
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
|
||||
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
|
||||
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
|
||||
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
|
||||
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
|
||||
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
|
||||
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
|
||||
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
|
||||
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
|
||||
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
|
||||
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
|
||||
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
|
||||
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
|
||||
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
|
||||
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>2</results></pagination><subtitle><id>1495142</id><pid>ZtAW</pid><title>The
|
||||
Big Bang Theory</title><year>2007</year><movieId>sY0G</movieId><url>http://www.podnapisi.net/subtitles/hu-the-big-bang-theory-2007-S05E18/ZtAW</url><uploaderId>40156</uploaderId><uploaderName>kvrle</uploaderName><release>The.Big.Bang.Theory.S05E18.HDTV-LOL
|
||||
The.Big.Bang.Theory.S05E18.720p.HDTV.x264-DIMENSION</release><languageId>15</languageId><languageName>Hungarian</languageName><language>hu</language><time>1330213369</time><tvSeason>5</tvSeason><tvEpisode>18</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>497</downloads><exactHashes
|
||||
/></subtitle><subtitle><id>1495096</id><pid>ONAW</pid><title>The Big Bang
|
||||
Theory</title><year>2007</year><movieId>sY0G</movieId><url>http://www.podnapisi.net/subtitles/hu-the-big-bang-theory-2007-S05E18/ONAW</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>The.Big.Bang.Theory.S05E18.HDTV.XviD-FQM</release><languageId>15</languageId><languageName>Hungarian</languageName><language>hu</language><time>1330134575</time><tvSeason>5</tvSeason><tvEpisode>18</tvEpisode><tvSpecial>0</tvSpecial><cds
|
||||
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
|
||||
/><downloads>347</downloads><exactHashes /></subtitle></results>"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['2792']
|
||||
Content-Type: [text/xml;charset=utf-8]
|
||||
Date: ['Mon, 20 Jul 2015 06:11:37 GMT']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/1.0]
|
||||
method: GET
|
||||
uri: http://podnapisi.net/subtitles/ZtAW/download?container=zip
|
||||
response:
|
||||
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
|
||||
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
|
||||
headers:
|
||||
Connection: [keep-alive]
|
||||
Content-Length: ['160']
|
||||
Content-Type: [text/html]
|
||||
Date: ['Mon, 20 Jul 2015 06:11:37 GMT']
|
||||
Location: ['http://www.podnapisi.net/subtitles/ZtAW/download?container=zip']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 302, message: Moved Temporarily}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/1.0]
|
||||
method: GET
|
||||
uri: http://www.podnapisi.net/subtitles/ZtAW/download?container=zip
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
headers:
|
||||
Accept-Ranges: [bytes]
|
||||
Connection: [keep-alive]
|
||||
Content-Disposition: [attachment; filename="e638ea178f406cb584f48051501e2cb4db4fce1d.zip"]
|
||||
Content-Length: ['10541']
|
||||
Content-Type: [application/octet-stream]
|
||||
Date: ['Mon, 20 Jul 2015 06:11:37 GMT']
|
||||
ETag: ['"4f497ffb-292d"']
|
||||
Last-Modified: ['Sun, 26 Feb 2012 00:42:35 GMT']
|
||||
Server: [nginx/1.8.0]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
+90
-44
@@ -1,9 +1,11 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# subliminal documentation build configuration file, created by
|
||||
# sphinx-quickstart on Wed Oct 23 23:24:28 2013.
|
||||
# sphinx-quickstart on Sat Jul 11 00:40:28 2015.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its containing dir.
|
||||
# This file is execfile()d with the current directory set to its
|
||||
# containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
@@ -11,28 +13,37 @@
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import sys, os
|
||||
import sys
|
||||
import os
|
||||
import shlex
|
||||
import sphinx_rtd_theme
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
sys.path.insert(0, os.path.abspath('..'))
|
||||
sys.path.append(os.path.abspath('_themes'))
|
||||
import subliminal
|
||||
|
||||
# -- General configuration -----------------------------------------------------
|
||||
# -- General configuration ------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be extensions
|
||||
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
||||
extensions = ['sphinx.ext.autodoc', 'sphinxcontrib.programoutput']
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = [
|
||||
'sphinx.ext.autodoc',
|
||||
'sphinx.ext.intersphinx',
|
||||
'sphinx.ext.viewcode',
|
||||
]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# The suffix of source filenames.
|
||||
# The suffix(es) of source filenames.
|
||||
# You can specify multiple suffix as a list of string:
|
||||
# source_suffix = ['.rst', '.md']
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
@@ -44,19 +55,23 @@ master_doc = 'index'
|
||||
# General information about the project.
|
||||
project = subliminal.__title__
|
||||
copyright = ' '.join(subliminal.__copyright__.split()[1:])
|
||||
author = subliminal.__copyright__.split(', ')[1]
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = subliminal.__version__
|
||||
version = subliminal.__version__.split('-')[0]
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = subliminal.__version__
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
#language = None
|
||||
#
|
||||
# This is also used if you do content translation via gettext catalogs.
|
||||
# Usually you set "language" from the command line for these cases.
|
||||
language = None
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
@@ -68,7 +83,8 @@ release = subliminal.__version__
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = ['_build']
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all documents.
|
||||
# The reST default role (used for this markup: `text`) to use for all
|
||||
# documents.
|
||||
#default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
@@ -91,29 +107,29 @@ pygments_style = 'sphinx'
|
||||
# If true, keep warnings as "system message" paragraphs in the built documents.
|
||||
#keep_warnings = False
|
||||
|
||||
# If true, `todo` and `todoList` produce output, else they produce nothing.
|
||||
todo_include_todos = False
|
||||
|
||||
# -- Options for HTML output ---------------------------------------------------
|
||||
|
||||
# -- Options for HTML output ----------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'diaoul'
|
||||
html_theme = 'sphinx_rtd_theme'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
html_theme_options = {'github_user': 'Diaoul',
|
||||
'github_repo': 'subliminal',
|
||||
'github_branch': 'master',
|
||||
'fork_me': 1,
|
||||
'flattr': 0,
|
||||
'gittip': 'Diaoul',
|
||||
'pypi_downloads': 1,
|
||||
'pypi_version': 0,
|
||||
'travis': 0,
|
||||
'coveralls': 0}
|
||||
#html_theme_options = {}
|
||||
# html_theme_options = {
|
||||
# 'github_user': 'Diaoul',
|
||||
# 'github_repo': project,
|
||||
# 'travis_button': True,
|
||||
# 'gratipay_user': 'Diaoul'
|
||||
# }
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
html_theme_path = ['_themes']
|
||||
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
@@ -136,6 +152,11 @@ html_theme_path = ['_themes']
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
html_static_path = ['_static']
|
||||
|
||||
# Add any extra paths that contain custom files (such as robots.txt or
|
||||
# .htaccess) here, relative to this directory. These files are copied
|
||||
# directly to the root of the documentation.
|
||||
#html_extra_path = []
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
#html_last_updated_fmt = '%b %d, %Y'
|
||||
@@ -145,12 +166,7 @@ html_static_path = ['_static']
|
||||
#html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
html_sidebars = {
|
||||
'index': ['sidebar-intro.html', 'sidebar-star.html', 'sidebar-pypi.html', 'sidebar-donate.html',
|
||||
'sourcelink.html', 'searchbox.html'],
|
||||
'**': ['sidebar-intro.html', 'sidebar-star.html', 'sidebar-pypi.html', 'sidebar-donate.html',
|
||||
'localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html']
|
||||
}
|
||||
#html_sidebars = {}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
@@ -182,11 +198,24 @@ html_sidebars = {
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
#html_file_suffix = None
|
||||
|
||||
# Language to be used for generating the HTML full-text search index.
|
||||
# Sphinx supports the following languages:
|
||||
# 'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja'
|
||||
# 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr'
|
||||
#html_search_language = 'en'
|
||||
|
||||
# A dictionary with options for the search language support, empty by default.
|
||||
# Now only 'ja' uses this config value
|
||||
#html_search_options = {'type': 'default'}
|
||||
|
||||
# The name of a javascript file (relative to the configuration directory) that
|
||||
# implements a search results scorer. If empty, the default will be used.
|
||||
#html_search_scorer = 'scorer.js'
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'subliminaldoc'
|
||||
htmlhelp_basename = project + 'doc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output --------------------------------------------------
|
||||
# -- Options for LaTeX output ---------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
@@ -197,13 +226,17 @@ latex_elements = {
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#'preamble': '',
|
||||
|
||||
# Latex figure (float) alignment
|
||||
#'figure_align': 'htbp',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title, author, documentclass [howto/manual]).
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
('index', 'subliminal.tex', u'subliminal Documentation',
|
||||
u'Antoine Bertin', 'manual'),
|
||||
(master_doc, project + '.tex', project + ' Documentation',
|
||||
author, 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
@@ -227,28 +260,28 @@ latex_documents = [
|
||||
#latex_domain_indices = True
|
||||
|
||||
|
||||
# -- Options for manual page output --------------------------------------------
|
||||
# -- Options for manual page output ---------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
('index', 'subliminal', u'subliminal Documentation',
|
||||
[u'Antoine Bertin'], 1)
|
||||
(master_doc, project, project + ' Documentation',
|
||||
[author], 1)
|
||||
]
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#man_show_urls = False
|
||||
|
||||
|
||||
# -- Options for Texinfo output ------------------------------------------------
|
||||
# -- Options for Texinfo output -------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
('index', 'subliminal', u'subliminal Documentation',
|
||||
u'Antoine Bertin', 'subliminal', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
(master_doc, project, project + ' Documentation',
|
||||
author, project, 'Subtitles, faster than your thoughts',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
@@ -264,6 +297,19 @@ texinfo_documents = [
|
||||
#texinfo_no_detailmenu = False
|
||||
|
||||
|
||||
# Example configuration for intersphinx: refer to the Python standard library.
|
||||
intersphinx_mapping = {
|
||||
'python': ('http://docs.python.org/3.4', None),
|
||||
'guessit': ('http://guessit.readthedocs.org/en/latest', None),
|
||||
'babelfish': ('http://babelfish.readthedocs.org/en/latest', None),
|
||||
'dogpilecache': ('http://dogpilecache.readthedocs.org/en/latest', None),
|
||||
'dogpilecore': ('http://dogpilecore.readthedocs.org/en/latest', None),
|
||||
'stevedore': ('http://docs.openstack.org/developer/stevedore', None),
|
||||
'click': ('http://click.pocoo.org/4', None)
|
||||
}
|
||||
|
||||
|
||||
# -- Options for autodoc -------------------------------------------------------
|
||||
autodoc_member_order = 'bysource'
|
||||
|
||||
autodoc_default_flags = ['members']
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import os
|
||||
import sys
|
||||
|
||||
import pytest
|
||||
try:
|
||||
from unittest.mock import Mock
|
||||
except ImportError:
|
||||
from mock import Mock
|
||||
from vcr import VCR
|
||||
|
||||
from subliminal.cache import region
|
||||
|
||||
vcr = VCR(path_transformer=lambda path: path + '.yaml',
|
||||
match_on=['method', 'scheme', 'host', 'port', 'path', 'query', 'body'],
|
||||
cassette_library_dir=os.path.join('docs', 'cassettes'))
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True, scope='session')
|
||||
def configure_region():
|
||||
region.configure('dogpile.cache.null')
|
||||
region.configure = Mock()
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def chdir(tmpdir, monkeypatch):
|
||||
monkeypatch.chdir(str(tmpdir))
|
||||
|
||||
|
||||
@pytest.yield_fixture(autouse=True)
|
||||
def use_cassette(request):
|
||||
with vcr.use_cassette('test_' + request.fspath.purebasename):
|
||||
yield
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def skip_python_2():
|
||||
if sys.version_info < (3, 0):
|
||||
return pytest.skip('Requires python 3')
|
||||
+24
-77
@@ -1,76 +1,12 @@
|
||||
.. subliminal documentation master file, created by
|
||||
sphinx-quickstart on Wed Oct 23 23:24:28 2013.
|
||||
sphinx-quickstart on Sat Jul 11 00:40:28 2015.
|
||||
You can adapt this file completely to your liking, but it should at least
|
||||
contain the root `toctree` directive.
|
||||
|
||||
Subliminal
|
||||
==========
|
||||
Release v\ |version|
|
||||
|
||||
Welcome to subliminal!
|
||||
======================
|
||||
Subliminal is a python library to search and download subtitles.
|
||||
It comes with an easy to use :abbr:`CLI (command-line interface)` suitable for direct use or cron jobs.
|
||||
|
||||
|
||||
Providers
|
||||
---------
|
||||
Subliminal uses multiple providers to give users a vast choice and have a better chance to find the
|
||||
best matching subtitles. Providers are extensible through a dedicated entry point.
|
||||
|
||||
* Addic7ed
|
||||
* BierDopje
|
||||
* OpenSubtitles
|
||||
* TheSubDB
|
||||
* TvSubtitles
|
||||
|
||||
|
||||
Usage
|
||||
-----
|
||||
CLI
|
||||
^^^
|
||||
Download english subtitles::
|
||||
|
||||
$ subliminal -l en -- The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.mp4
|
||||
1 subtitle downloaded
|
||||
|
||||
See :mod:`subliminal.cli`
|
||||
|
||||
Library
|
||||
^^^^^^^
|
||||
Download best subtitles in French and English for videos less than one week old in a video folder,
|
||||
skipping videos that already have subtitles whether they are embedded or not::
|
||||
|
||||
from babelfish import Language
|
||||
from datetime import timedelta
|
||||
import subliminal
|
||||
|
||||
# configure the cache
|
||||
subliminal.cache_region.configure('dogpile.cache.dbm', arguments={'filename': '/path/to/cachefile.dbm'})
|
||||
|
||||
# scan for videos in the folder and their subtitles
|
||||
videos = scan_videos(['/path/to/video/folder'], subtitles=True, embedded_subtitles=True)
|
||||
|
||||
# download
|
||||
subliminal.download_best_subtitles(videos, {Language('eng'), Language('fra')}, age=timedelta(week=1))
|
||||
|
||||
See :mod:`subliminal.api`, :func:`~subliminal.video.scan_videos` and :func:`~subliminal.video.scan_video`
|
||||
|
||||
How it works
|
||||
------------
|
||||
Subliminal makes use of various libraries to achieve its goal:
|
||||
|
||||
* `enzyme <http://enzyme.readthedocs.org>`_ to detect embedded subtitles in videos and retrieve metadata
|
||||
* `guessit <http://guessit.readthedocs.org>`_ to guess informations from filenames
|
||||
* `babelfish <http://babelfish.readthedocs.org>`_ to work with languages
|
||||
* `requests <http://docs.python-requests.org>`_ to make human readable HTTP requests
|
||||
* `BeautifulSoup <http://www.crummy.com/software/BeautifulSoup>`_ to parse HTML and XML
|
||||
* `dogpile.cache <http://dogpilecache.readthedocs.org>`_ to cache intermediate search data
|
||||
* `charade <https://github.com/sigmavirus24/charade>`_ to detect subtitles' encoding
|
||||
* `pysrt <https://github.com/byroot/pysrt>`_ to validate downloaded subtitles
|
||||
|
||||
|
||||
License
|
||||
-------
|
||||
MIT
|
||||
It comes with an easy to use yet powerful :abbr:`CLI (command-line interface)` suitable for direct use or cron jobs.
|
||||
|
||||
|
||||
Documentation
|
||||
@@ -78,25 +14,36 @@ Documentation
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
provider_guide
|
||||
user/usage
|
||||
user/how_it_works
|
||||
user/cli
|
||||
user/provider_guide
|
||||
|
||||
|
||||
API Documentation
|
||||
-----------------
|
||||
If you are looking for information on a specific function, class or method,
|
||||
this part of the documentation is for you.
|
||||
If you are looking for information on a specific function, class or method, this part of the documentation is for you.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:maxdepth: 1
|
||||
|
||||
api/api
|
||||
api/video
|
||||
api/subtitle
|
||||
api/providers
|
||||
api/cache
|
||||
api/score
|
||||
api/cli
|
||||
api/exceptions
|
||||
api/providers
|
||||
api/score
|
||||
api/subtitle
|
||||
api/video
|
||||
|
||||
|
||||
.. include:: ../HISTORY.rst
|
||||
License
|
||||
-------
|
||||
MIT
|
||||
|
||||
|
||||
Indices and tables
|
||||
==================
|
||||
* :ref:`genindex`
|
||||
* :ref:`modindex`
|
||||
* :ref:`search`
|
||||
|
||||
+263
@@ -0,0 +1,263 @@
|
||||
@ECHO OFF
|
||||
|
||||
REM Command file for Sphinx documentation
|
||||
|
||||
if "%SPHINXBUILD%" == "" (
|
||||
set SPHINXBUILD=sphinx-build
|
||||
)
|
||||
set BUILDDIR=_build
|
||||
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
|
||||
set I18NSPHINXOPTS=%SPHINXOPTS% .
|
||||
if NOT "%PAPER%" == "" (
|
||||
set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
|
||||
set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
|
||||
)
|
||||
|
||||
if "%1" == "" goto help
|
||||
|
||||
if "%1" == "help" (
|
||||
:help
|
||||
echo.Please use `make ^<target^>` where ^<target^> is one of
|
||||
echo. html to make standalone HTML files
|
||||
echo. dirhtml to make HTML files named index.html in directories
|
||||
echo. singlehtml to make a single large HTML file
|
||||
echo. pickle to make pickle files
|
||||
echo. json to make JSON files
|
||||
echo. htmlhelp to make HTML files and a HTML help project
|
||||
echo. qthelp to make HTML files and a qthelp project
|
||||
echo. devhelp to make HTML files and a Devhelp project
|
||||
echo. epub to make an epub
|
||||
echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
|
||||
echo. text to make text files
|
||||
echo. man to make manual pages
|
||||
echo. texinfo to make Texinfo files
|
||||
echo. gettext to make PO message catalogs
|
||||
echo. changes to make an overview over all changed/added/deprecated items
|
||||
echo. xml to make Docutils-native XML files
|
||||
echo. pseudoxml to make pseudoxml-XML files for display purposes
|
||||
echo. linkcheck to check all external links for integrity
|
||||
echo. doctest to run all doctests embedded in the documentation if enabled
|
||||
echo. coverage to run coverage check of the documentation if enabled
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "clean" (
|
||||
for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
|
||||
del /q /s %BUILDDIR%\*
|
||||
goto end
|
||||
)
|
||||
|
||||
|
||||
REM Check if sphinx-build is available and fallback to Python version if any
|
||||
%SPHINXBUILD% 2> nul
|
||||
if errorlevel 9009 goto sphinx_python
|
||||
goto sphinx_ok
|
||||
|
||||
:sphinx_python
|
||||
|
||||
set SPHINXBUILD=python -m sphinx.__init__
|
||||
%SPHINXBUILD% 2> nul
|
||||
if errorlevel 9009 (
|
||||
echo.
|
||||
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
|
||||
echo.installed, then set the SPHINXBUILD environment variable to point
|
||||
echo.to the full path of the 'sphinx-build' executable. Alternatively you
|
||||
echo.may add the Sphinx directory to PATH.
|
||||
echo.
|
||||
echo.If you don't have Sphinx installed, grab it from
|
||||
echo.http://sphinx-doc.org/
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
:sphinx_ok
|
||||
|
||||
|
||||
if "%1" == "html" (
|
||||
%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "dirhtml" (
|
||||
%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "singlehtml" (
|
||||
%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "pickle" (
|
||||
%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; now you can process the pickle files.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "json" (
|
||||
%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; now you can process the JSON files.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "htmlhelp" (
|
||||
%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; now you can run HTML Help Workshop with the ^
|
||||
.hhp project file in %BUILDDIR%/htmlhelp.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "qthelp" (
|
||||
%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; now you can run "qcollectiongenerator" with the ^
|
||||
.qhcp project file in %BUILDDIR%/qthelp, like this:
|
||||
echo.^> qcollectiongenerator %BUILDDIR%\qthelp\subliminal.qhcp
|
||||
echo.To view the help file:
|
||||
echo.^> assistant -collectionFile %BUILDDIR%\qthelp\subliminal.ghc
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "devhelp" (
|
||||
%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "epub" (
|
||||
%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The epub file is in %BUILDDIR%/epub.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "latex" (
|
||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "latexpdf" (
|
||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
||||
cd %BUILDDIR%/latex
|
||||
make all-pdf
|
||||
cd %~dp0
|
||||
echo.
|
||||
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "latexpdfja" (
|
||||
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
|
||||
cd %BUILDDIR%/latex
|
||||
make all-pdf-ja
|
||||
cd %~dp0
|
||||
echo.
|
||||
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "text" (
|
||||
%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The text files are in %BUILDDIR%/text.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "man" (
|
||||
%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The manual pages are in %BUILDDIR%/man.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "texinfo" (
|
||||
%SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "gettext" (
|
||||
%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "changes" (
|
||||
%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.The overview file is in %BUILDDIR%/changes.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "linkcheck" (
|
||||
%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Link check complete; look for any errors in the above output ^
|
||||
or in %BUILDDIR%/linkcheck/output.txt.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "doctest" (
|
||||
%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Testing of doctests in the sources finished, look at the ^
|
||||
results in %BUILDDIR%/doctest/output.txt.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "coverage" (
|
||||
%SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Testing of coverage in the sources finished, look at the ^
|
||||
results in %BUILDDIR%/coverage/python.txt.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "xml" (
|
||||
%SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The XML files are in %BUILDDIR%/xml.
|
||||
goto end
|
||||
)
|
||||
|
||||
if "%1" == "pseudoxml" (
|
||||
%SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml
|
||||
if errorlevel 1 exit /b 1
|
||||
echo.
|
||||
echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml.
|
||||
goto end
|
||||
)
|
||||
|
||||
:end
|
||||
@@ -0,0 +1,79 @@
|
||||
.. _cli:
|
||||
|
||||
CLI
|
||||
===
|
||||
|
||||
subliminal
|
||||
----------
|
||||
.. code-block:: none
|
||||
|
||||
$ subliminal --help
|
||||
Usage: subliminal [OPTIONS] COMMAND [ARGS]...
|
||||
|
||||
Subtitles, faster than your thoughts.
|
||||
|
||||
Options:
|
||||
--addic7ed USERNAME PASSWORD Addic7ed configuration.
|
||||
--opensubtitles USERNAME PASSWORD
|
||||
OpenSubtitles configuration.
|
||||
--cache-dir DIRECTORY Path to the cache directory. [default:
|
||||
~/.config/subliminal]
|
||||
--debug Print useful information for debugging subliminal and for
|
||||
reporting bugs.
|
||||
--version Show the version and exit.
|
||||
--help Show this message and exit.
|
||||
|
||||
Commands:
|
||||
cache Cache management.
|
||||
download Download best subtitles.
|
||||
|
||||
Suggestions and bug reports are greatly appreciated: https://github.com/Diaoul/subliminal/
|
||||
|
||||
|
||||
subliminal download
|
||||
-------------------
|
||||
.. code-block:: none
|
||||
|
||||
$ subliminal download --help
|
||||
Usage: subliminal download [OPTIONS] PATH...
|
||||
|
||||
Download best subtitles.
|
||||
|
||||
PATH can be an directory containing videos, a video file path or a video file name. It can be
|
||||
used multiple times.
|
||||
|
||||
If an existing subtitle is detected (external or embedded) in the correct language, the
|
||||
download is skipped for the associated video.
|
||||
|
||||
Options:
|
||||
-l, --language LANGUAGE Language as IETF code, e.g. en, pt-BR (can be used multiple
|
||||
times). [required]
|
||||
-p, --provider [addic7ed|napiprojekt|opensubtitles|podnapisi|subscenter|thesubdb|tvsubtitles]
|
||||
Provider to use (can be used multiple times).
|
||||
-a, --age AGE Filter videos newer than AGE, e.g. 12h, 1w2d.
|
||||
-d, --directory DIR Directory where to save subtitles, default is next to the video
|
||||
file.
|
||||
-e, --encoding ENC Subtitle file encoding, default is to preserve original
|
||||
encoding.
|
||||
-s, --single Save subtitle without language code in the file name, i.e. use
|
||||
.srt extension.
|
||||
-f, --force Force download even if a subtitle already exist.
|
||||
-hi, --hearing-impaired Prefer hearing impaired subtitles.
|
||||
-m, --min-score INTEGER RANGE Minimum score for a subtitle to be downloaded (0 to 100).
|
||||
-v, --verbose Increase verbosity.
|
||||
--help Show this message and exit.
|
||||
|
||||
|
||||
subliminal cache
|
||||
----------------
|
||||
.. code-block:: none
|
||||
|
||||
$ subliminal cache --help
|
||||
Usage: subliminal cache [OPTIONS]
|
||||
|
||||
Cache management.
|
||||
|
||||
Options:
|
||||
--clear-subliminal Clear subliminal's cache. Use this ONLY if your cache is corrupted or if
|
||||
you experience issues.
|
||||
--help Show this message and exit.
|
||||
@@ -0,0 +1,50 @@
|
||||
How it works
|
||||
============
|
||||
|
||||
Providers
|
||||
---------
|
||||
Subliminal uses multiple providers to give users a vast choice and have a better chance to find the best matching
|
||||
subtitles. Current supported providers are:
|
||||
|
||||
* Addic7ed
|
||||
* NapiProjekt
|
||||
* OpenSubtitles
|
||||
* Podnapisi
|
||||
* SubsCenter
|
||||
* TheSubDB
|
||||
* TvSubtitles
|
||||
|
||||
Providers all inherit the same :class:`~subliminal.providers.Provider` base class and thus share the same API.
|
||||
They are registered on the ``subliminal.providers`` entry point and are exposed through the
|
||||
:data:`~subliminal.api.provider_manager` for easy access.
|
||||
|
||||
To make working with multiple providers seamlessly, the :class:`~subliminal.api.ProviderPool` exposes the same API but
|
||||
distributes it to its providers.
|
||||
|
||||
.. _scoring:
|
||||
|
||||
Scoring
|
||||
-------
|
||||
Rating subtitles and comparing them is probably the most difficult part and this is where subliminal excels with its
|
||||
powerful scoring algorithm.
|
||||
|
||||
Using `guessit <http://guessit.readthedocs.org>`_ and `enzyme <http://enzyme.readthedocs.org>`_, subliminal extracts
|
||||
properties of the video and match them with the properties of the subtitles found with the providers.
|
||||
|
||||
Equations in :mod:`subliminal.score` give a score to each property (called a match). The more matches the video and
|
||||
the subtitle have the higher the score computed with :func:`~subliminal.subtitle.compute_score` gets.
|
||||
|
||||
|
||||
Libraries
|
||||
---------
|
||||
Various libraries are used by subliminal and are key to its success:
|
||||
|
||||
* `guessit <http://guessit.readthedocs.org>`_ to guess informations from filenames
|
||||
* `enzyme <http://enzyme.readthedocs.org>`_ to detect embedded subtitles in videos and read other video metadata
|
||||
* `babelfish <http://babelfish.readthedocs.org>`_ to work with languages
|
||||
* `requests <http://docs.python-requests.org>`_ to make human readable HTTP requests
|
||||
* `BeautifulSoup <http://www.crummy.com/software/BeautifulSoup>`_ to parse HTML and XML
|
||||
* `dogpile.cache <http://dogpilecache.readthedocs.org>`_ to cache intermediate search results
|
||||
* `stevedore <http://docs.openstack.org/developer/stevedore/>`_ to manage the provider entry point
|
||||
* `chardet <http://chardet.readthedocs.org>`_ to detect subtitles' encoding
|
||||
* `pysrt <https://github.com/byroot/pysrt>`_ to validate downloaded subtitles
|
||||
@@ -1,6 +1,7 @@
|
||||
Provider Guide
|
||||
==============
|
||||
This guide is going to explain how to add a :class:`~subliminal.providers.Provider` to subliminal
|
||||
This guide is going to explain how to add a :class:`~subliminal.providers.Provider` to subliminal. You are encouraged
|
||||
to take a look at the existing providers, it can be a nice base to start your own provider.
|
||||
|
||||
|
||||
Requirements
|
||||
@@ -33,11 +34,12 @@ Per-user authentication is allowed and must be configured at instantiation as ke
|
||||
will be done by the user through the `provider_configs` argument of the :func:`~subliminal.api.list_subtitles` and
|
||||
:func:`~subliminal.api.download_best_subtitles` functions. No network operation must be done during instantiation,
|
||||
only configuration. Any error in the configuration must raise a
|
||||
:class:`~subliminal.exceptions.ProviderConfigurationError`.
|
||||
:class:`~subliminal.exceptions.ConfigurationError`.
|
||||
|
||||
|
||||
Beyond this point, if a network error occurs, a :class:`~subliminal.exceptions.ProviderNotAvailable` exception
|
||||
must be raised and an unexpected behavior must raise a :class:`~subliminal.exceptions.ProviderError` exception.
|
||||
Beyond this point, if an error occurs, a generic :class:`~subliminal.exceptions.ProviderError` exception
|
||||
must be raised. You can also use more explicit exception classes :class:`~subliminal.exceptions.AuthenticationError`
|
||||
and :class:`~subliminal.exceptions.DownloadLimitExceeded`.
|
||||
|
||||
|
||||
Initialization / Termination
|
||||
@@ -51,14 +53,16 @@ Caching policy
|
||||
--------------
|
||||
To save bandwidth and improve querying time, intermediate data should be cached when possible. Typical use case is
|
||||
when a query to retrieve show ids is required prior to the query to actually search for subtitles. In that case
|
||||
the function that gets the show id from the show name must be cached.
|
||||
the function that gets the show id from the show name must be cached.
|
||||
Expiration time should be :data:`~subliminal.cache.SHOW_EXPIRATION_TIME` for shows and
|
||||
:data:`~subliminal.cache.EPISODE_EXPIRATION_TIME` for episodes.
|
||||
|
||||
|
||||
Language
|
||||
--------
|
||||
To be able to handle various language codes, subliminal makes use of `babelfish <http://babelfish.readthedocs.org>`_
|
||||
Language and converters. You must set the attribute :attr:`~subliminal.providers.Provider.languages` with a set of
|
||||
supported :class:`babelfish.Language`.
|
||||
supported :class:`~babelfish.language.Language`.
|
||||
|
||||
If you cannot find a suitable converter for your provider, you can `make one of your own
|
||||
<http://babelfish.readthedocs.org/en/latest/#custom-converters>`_.
|
||||
@@ -67,7 +71,7 @@ If you cannot find a suitable converter for your provider, you can `make one of
|
||||
Querying
|
||||
--------
|
||||
The :meth:`~subliminal.providers.Provider.query` method parameters must include all aspects of provider's querying with
|
||||
simple types.
|
||||
primary types.
|
||||
|
||||
|
||||
Subtitle
|
||||
@@ -79,12 +83,11 @@ It must have relevant attributes that can be used to compute the matches of the
|
||||
|
||||
Score computation
|
||||
-----------------
|
||||
|
||||
To be able to compare subtitles coming from different providers between them, the
|
||||
:meth:`~subliminal.subtitle.Subtitle.compute_matches` method must be implemented.
|
||||
:meth:`~subliminal.subtitle.Subtitle.get_matches` method must be implemented.
|
||||
If `guessit <http://guessit.readthedocs.org>`_ is used to extract data from the
|
||||
:class:`~subliminal.subtitle.Subtitle` subclass, you can use :func:`~subliminal.subtitle.compute_guess_matches`
|
||||
as a helper to compute matches between the :class:`~subliminal.video.Video` and the :class:`guessit.Guess`.
|
||||
:class:`~subliminal.subtitle.Subtitle` subclass, you can use :func:`~subliminal.subtitle.guess_matches`
|
||||
as a helper to compute matches between the :class:`~subliminal.video.Video` and the :class:`~guessit.guess.Guess`.
|
||||
|
||||
Refer to the `scores` attribute of :class:`~subliminal.video.Episode` and :class:`~subliminal.video.Movie`
|
||||
for a list of possible matches.
|
||||
@@ -92,12 +95,8 @@ for a list of possible matches.
|
||||
|
||||
Unittesting
|
||||
-----------
|
||||
All possible uses of the :meth:`~subliminal.providers.Provider.query` method must be unittested including the uses
|
||||
that produce exceptions other than :class:`~subliminal.exceptions.ProviderNotAvailable`.
|
||||
The :meth:`~subliminal.subtitle.Subtitle.compute_matches` is used to validate the unittests.
|
||||
|
||||
As it is not possible to unittest all uses of the :meth:`~subliminal.providers.Provider.list_subtitles`
|
||||
and :meth:`~subliminal.providers.Provider.download_subtitle` methods, unitests are only required to cover most common
|
||||
use cases.
|
||||
|
||||
See existing unittests for more details on how to proceed.
|
||||
All possible uses of :meth:`~subliminal.providers.Provider.query`,
|
||||
:meth:`~subliminal.providers.Provider.list_subtitles` and :meth:`~subliminal.providers.Provider.download_subtitle`
|
||||
methods must have integration tests. Use `vcrpy <https://github.com/kevin1024/vcrpy>`_ for recording and playback
|
||||
of network activity.
|
||||
Other functions must be unittested. If necessary, you can use :mod:`unittest.mock` to mock some functions.
|
||||
@@ -0,0 +1,144 @@
|
||||
Usage
|
||||
=====
|
||||
CLI
|
||||
---
|
||||
Download English subtitles::
|
||||
|
||||
$ subliminal download -l en The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.mp4
|
||||
Collecting videos [####################################] 100%
|
||||
1 video collected / 0 video ignored
|
||||
Downloading subtitles [####################################] 100%
|
||||
Downloaded 1 subtitle
|
||||
|
||||
.. warning::
|
||||
|
||||
For cron usage, make sure to specify a maximum age (with ``--age``) so subtitles are searched for recent videos
|
||||
only. Otherwise you will get banned from the providers for abuse due to too many requests. If subliminal didn't
|
||||
find subtitles for an old video, it's unlikely it will find subtitles for that video ever anyway.
|
||||
|
||||
See :ref:`cli` for more details on the available commands and options.
|
||||
|
||||
|
||||
High level API
|
||||
--------------
|
||||
You can call subliminal in many different ways depending on how much control you want over the process. For most use
|
||||
cases, you can stick to the standard API.
|
||||
|
||||
Common
|
||||
^^^^^^
|
||||
Let's start by importing subliminal:
|
||||
|
||||
>>> from __future__ import unicode_literals
|
||||
>>> import os
|
||||
>>> from babelfish import *
|
||||
>>> from subliminal import *
|
||||
|
||||
Before going further, there are a few things to know about subliminal.
|
||||
|
||||
Video
|
||||
^^^^^
|
||||
The :class:`~subliminal.video.Movie` and :class:`~subliminal.video.Episode` classes represent a video,
|
||||
existing or not. You can create a video by name (or path) with :meth:`Video.fromname <subliminal.video.Video.fromname>`,
|
||||
use :func:`~subliminal.video.scan_video` on an existing file path to get even more information about the video or
|
||||
use :func:`~subliminal.video.scan_videos` on an existing directory path to scan a whole directory for videos.
|
||||
|
||||
>>> video = Video.fromname('The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.mp4')
|
||||
>>> video
|
||||
<Episode ['The Big Bang Theory', 5x18]>
|
||||
|
||||
Here video informations were guessed based on the name of the video, you can access some video attributes:
|
||||
|
||||
>>> video.video_codec
|
||||
'h264'
|
||||
>>> video.release_group
|
||||
'LOL'
|
||||
|
||||
Configuration
|
||||
^^^^^^^^^^^^^
|
||||
Before proceeding to listing and downloading subtitles, you need to configure the cache. Subliminal uses a cache to
|
||||
reduce repeated queries to providers and improve overall performance with no impact on search quality. For the sake
|
||||
of this example, we're going to use a memory backend.
|
||||
|
||||
>>> my_region = region.configure('dogpile.cache.memory')
|
||||
|
||||
.. warning::
|
||||
|
||||
Choose a cache that fits your application and prefer persistent over volatile backends. The ``file`` backend is
|
||||
usually a good choice.
|
||||
See `dogpile.cache's documentation <http://dogpilecache.readthedocs.org>`_ for more details on backends.
|
||||
|
||||
Now that we're done with the basics, let's have some *real* fun.
|
||||
|
||||
Listing
|
||||
^^^^^^^
|
||||
To list subtitles, subliminal provides a :func:`~subliminal.api.list_subtitles` function that will return all found
|
||||
subtitles:
|
||||
|
||||
>>> subtitles = list_subtitles([video], {Language('hun')}, providers=['podnapisi'])
|
||||
>>> subtitles[video]
|
||||
[<PodnapisiSubtitle 'ZtAW' [hu]>, <PodnapisiSubtitle 'ONAW' [hu]>]
|
||||
|
||||
.. note::
|
||||
|
||||
As you noticed, all parameters are iterables but only contain one item which means you can deal with a lot of
|
||||
videos, languages and providers at the same time. For the sake of this example, we filter providers to use only one,
|
||||
pass ``providers=None`` (default) to search on all providers.
|
||||
|
||||
Scoring
|
||||
^^^^^^^
|
||||
It's usual you have multiple candidates for subtitles. To help you chose which one to download, subliminal can compare
|
||||
them to the video and tell you exactly what matches with :meth:`~subliminal.subtitle.Subtitle.get_matches`:
|
||||
|
||||
>>> for s in subtitles[video]:
|
||||
... sorted(s.get_matches(video))
|
||||
['episode', 'format', 'hearing_impaired', 'release_group', 'season', 'series', 'video_codec', 'year']
|
||||
['episode', 'format', 'hearing_impaired', 'season', 'series', 'year']
|
||||
|
||||
And then compute a score with those matches with :func:`~subliminal.subtitle.compute_score`:
|
||||
|
||||
>>> for s in subtitles[video]:
|
||||
... {s: compute_score(s.get_matches(video), video)}
|
||||
{<PodnapisiSubtitle 'ZtAW' [hu]>: 132}
|
||||
{<PodnapisiSubtitle 'ONAW' [hu]>: 117}
|
||||
|
||||
Now you should have a better idea about which one you should choose.
|
||||
|
||||
Downloading
|
||||
^^^^^^^^^^^
|
||||
We can settle on the first subtitle and download its content using :func:`~subliminal.api.download_subtitles`:
|
||||
|
||||
>>> subtitle = subtitles[video][0]
|
||||
>>> subtitle.content is None
|
||||
True
|
||||
>>> download_subtitles([subtitle])
|
||||
>>> subtitle.content.split(b'\n')[2]
|
||||
b'Elszaladok a boltba'
|
||||
|
||||
If you want a string instead of bytes, you can access decoded content with the
|
||||
:attr:`~subliminal.subtitle.Subtitle.text` property:
|
||||
|
||||
>>> subtitle.text.split('\n')[3]
|
||||
'néhány apróságért.'
|
||||
|
||||
Downloading best subtitles
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Downloading best subtitles is what you want to do in almost all cases, as a shortcut for listing, scoring and
|
||||
downloading you can use :func:`~subliminal.api.download_best_subtitles`:
|
||||
|
||||
>>> best_subtitles = download_best_subtitles([video], {Language('hun')}, providers=['podnapisi'])
|
||||
>>> best_subtitles[video]
|
||||
[<PodnapisiSubtitle 'ZtAW' [hu]>]
|
||||
>>> best_subtitle = best_subtitles[video][0]
|
||||
>>> best_subtitle.content.split(b'\n')[2]
|
||||
b'Elszaladok a boltba'
|
||||
|
||||
We end up with the same subtitle but with one line of code. Neat.
|
||||
|
||||
Save
|
||||
^^^^
|
||||
We got ourselves a nice subtitle now we can save it on the file system using :func:`~subliminal.api.save_subtitles`:
|
||||
|
||||
>>> save_subtitles(video, [best_subtitle])
|
||||
[<PodnapisiSubtitle 'ZtAW' [hu]>]
|
||||
>>> os.listdir()
|
||||
['The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.hu.srt']
|
||||
@@ -0,0 +1,18 @@
|
||||
Examples
|
||||
========
|
||||
This directory contains various examples, UI files and translations files.
|
||||
Refer to subliminal's main README for install instructions.
|
||||
|
||||
Translations
|
||||
------------
|
||||
This is how to generate the po template file::
|
||||
|
||||
# extract strings from ui files
|
||||
intltool-extract --type=gettext/glade ui/config.glade
|
||||
intltool-extract --type=gettext/glade ui/choose.glade
|
||||
|
||||
# generate subliminal.pot
|
||||
xgettext -k_ -kN_ -w 120 --from-code=utf-8 -o i18n/subliminal.pot ui/config.glade.h ui/choose.glade.h nautilus.py
|
||||
|
||||
# clean up
|
||||
rm ui/*.h
|
||||
@@ -0,0 +1,117 @@
|
||||
# Subliminal language file
|
||||
#
|
||||
# Translators:
|
||||
# Andrej Ebert <mask@mask.ms>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: subliminal\n"
|
||||
"Report-Msgid-Bugs-To: diaoulael@gmail.com\n"
|
||||
"POT-Creation-Date: 2015-10-30 18:54+0100\n"
|
||||
"PO-Revision-Date: 2015-09-09 18:28+0000\n"
|
||||
"Last-Translator: Antoine Bertin <diaoulael@gmail.com>\n"
|
||||
"Language-Team: German (http://www.transifex.com/subliminal/subliminal/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ui/config.glade.h:1
|
||||
msgid "Subtitles, faster than your thoughts."
|
||||
msgstr "Untertitel, schneller als Gedanken"
|
||||
|
||||
#: ui/config.glade.h:2
|
||||
msgid "Name"
|
||||
msgstr "Name"
|
||||
|
||||
#: ui/config.glade.h:3
|
||||
msgid "Code"
|
||||
msgstr "Code"
|
||||
|
||||
#: ui/config.glade.h:4
|
||||
msgid "Languages"
|
||||
msgstr "Sprachen"
|
||||
|
||||
#: ui/config.glade.h:5
|
||||
msgid "Configuration"
|
||||
msgstr "Konfiguration"
|
||||
|
||||
#: ui/config.glade.h:6
|
||||
msgid "Providers"
|
||||
msgstr "Anbieter"
|
||||
|
||||
#: ui/config.glade.h:7
|
||||
msgid "Do not use this unless your media player requires it"
|
||||
msgstr "Nicht benutzen, außer ihr Mediaplayer braucht dies"
|
||||
|
||||
#: ui/config.glade.h:8
|
||||
msgid ""
|
||||
"Save subtitle without language code in the filename\n"
|
||||
"i.e. use .srt extension"
|
||||
msgstr "Untertitel ohne Sprachcode im Dateinamen speichern, also mit .srt Erweiterung "
|
||||
|
||||
#: ui/config.glade.h:10
|
||||
msgid "Ignore videos with embedded subtitles"
|
||||
msgstr "Videos mit eingebetteten Untertiteln ignorieren"
|
||||
|
||||
#: ui/config.glade.h:11
|
||||
msgid ""
|
||||
"Ignore videos older than this number of days\n"
|
||||
"when scanning folders"
|
||||
msgstr "Videos älter als diese Anzahl an Tagen ignorieren"
|
||||
|
||||
#: ui/config.glade.h:13
|
||||
msgid "Prefer hearing impaired subtitles"
|
||||
msgstr "Untertitel für hörgeschädigte vorziehen"
|
||||
|
||||
#: ui/config.glade.h:14
|
||||
msgid "Minimum matching score"
|
||||
msgstr "Minimale Bewertung"
|
||||
|
||||
#: ui/config.glade.h:15
|
||||
msgid "General"
|
||||
msgstr "Allgemein"
|
||||
|
||||
#: ui/config.glade.h:16
|
||||
msgid "About"
|
||||
msgstr "Über"
|
||||
|
||||
#: ui/choose.glade.h:1
|
||||
msgid "Subliminal - Choose subtitles"
|
||||
msgstr "Subliminal - Untertitel auswählen"
|
||||
|
||||
#: ui/choose.glade.h:2
|
||||
msgid "Video: "
|
||||
msgstr "Video:"
|
||||
|
||||
#: ui/choose.glade.h:3
|
||||
msgid "Language"
|
||||
msgstr "Sprache"
|
||||
|
||||
#: ui/choose.glade.h:4
|
||||
msgid "Score"
|
||||
msgstr "Bewertung"
|
||||
|
||||
#: ui/choose.glade.h:5
|
||||
msgid "Provider"
|
||||
msgstr "Anbieter"
|
||||
|
||||
#: ui/choose.glade.h:6
|
||||
msgid "Hearing Impaired"
|
||||
msgstr "Hörgeschädigt"
|
||||
|
||||
#: ui/choose.glade.h:7
|
||||
msgid "Downloaded"
|
||||
msgstr "Runtergeladen"
|
||||
|
||||
#: nautilus.py:141
|
||||
msgid "Choose subtitles"
|
||||
msgstr "Untertitel auswählen"
|
||||
|
||||
#: nautilus.py:146
|
||||
msgid "Download subtitles"
|
||||
msgstr "Untertitel runterladen"
|
||||
|
||||
#: nautilus.py:151
|
||||
msgid "Configure..."
|
||||
msgstr "Einstellen..."
|
||||
@@ -0,0 +1,117 @@
|
||||
# Subliminal language file
|
||||
#
|
||||
# Translators:
|
||||
# Kike Isidoro <heisba@gmail.com>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: subliminal\n"
|
||||
"Report-Msgid-Bugs-To: diaoulael@gmail.com\n"
|
||||
"POT-Creation-Date: 2015-10-30 18:54+0100\n"
|
||||
"PO-Revision-Date: 2015-10-27 17:05+0000\n"
|
||||
"Last-Translator: Antoine Bertin <diaoulael@gmail.com>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/subliminal/subliminal/language/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ui/config.glade.h:1
|
||||
msgid "Subtitles, faster than your thoughts."
|
||||
msgstr "Subtítulos, más rápido de lo que piensas."
|
||||
|
||||
#: ui/config.glade.h:2
|
||||
msgid "Name"
|
||||
msgstr "Nombre"
|
||||
|
||||
#: ui/config.glade.h:3
|
||||
msgid "Code"
|
||||
msgstr "Código"
|
||||
|
||||
#: ui/config.glade.h:4
|
||||
msgid "Languages"
|
||||
msgstr "Idiomas"
|
||||
|
||||
#: ui/config.glade.h:5
|
||||
msgid "Configuration"
|
||||
msgstr "Configuración"
|
||||
|
||||
#: ui/config.glade.h:6
|
||||
msgid "Providers"
|
||||
msgstr "Proveedores"
|
||||
|
||||
#: ui/config.glade.h:7
|
||||
msgid "Do not use this unless your media player requires it"
|
||||
msgstr "Utilizar esto solamente si tu reproductor multimedia lo requiere"
|
||||
|
||||
#: ui/config.glade.h:8
|
||||
msgid ""
|
||||
"Save subtitle without language code in the filename\n"
|
||||
"i.e. use .srt extension"
|
||||
msgstr "Guardar subtítulos sin código de idioma en el nombre del archivo\np.e. utilizar la extensión .srt"
|
||||
|
||||
#: ui/config.glade.h:10
|
||||
msgid "Ignore videos with embedded subtitles"
|
||||
msgstr "Ignorar vídeos con subtítulos incrustados"
|
||||
|
||||
#: ui/config.glade.h:11
|
||||
msgid ""
|
||||
"Ignore videos older than this number of days\n"
|
||||
"when scanning folders"
|
||||
msgstr "Ignorar vídeos con fecha de modificación superior a este número de días\ncuando se escaneen directorios"
|
||||
|
||||
#: ui/config.glade.h:13
|
||||
msgid "Prefer hearing impaired subtitles"
|
||||
msgstr "Priorizar subtítulos para personas con discapacidad auditiva"
|
||||
|
||||
#: ui/config.glade.h:14
|
||||
msgid "Minimum matching score"
|
||||
msgstr "Puntuación de resultados mínima"
|
||||
|
||||
#: ui/config.glade.h:15
|
||||
msgid "General"
|
||||
msgstr "General"
|
||||
|
||||
#: ui/config.glade.h:16
|
||||
msgid "About"
|
||||
msgstr "Sobre"
|
||||
|
||||
#: ui/choose.glade.h:1
|
||||
msgid "Subliminal - Choose subtitles"
|
||||
msgstr "Subliminal - Elegir subtítulos"
|
||||
|
||||
#: ui/choose.glade.h:2
|
||||
msgid "Video: "
|
||||
msgstr "Vídeo: "
|
||||
|
||||
#: ui/choose.glade.h:3
|
||||
msgid "Language"
|
||||
msgstr "Idioma"
|
||||
|
||||
#: ui/choose.glade.h:4
|
||||
msgid "Score"
|
||||
msgstr "Puntuación"
|
||||
|
||||
#: ui/choose.glade.h:5
|
||||
msgid "Provider"
|
||||
msgstr "Proveedor"
|
||||
|
||||
#: ui/choose.glade.h:6
|
||||
msgid "Hearing Impaired"
|
||||
msgstr "Personas con discapacidad auditiva"
|
||||
|
||||
#: ui/choose.glade.h:7
|
||||
msgid "Downloaded"
|
||||
msgstr "Descargado"
|
||||
|
||||
#: nautilus.py:141
|
||||
msgid "Choose subtitles"
|
||||
msgstr "Elegir subtítulos"
|
||||
|
||||
#: nautilus.py:146
|
||||
msgid "Download subtitles"
|
||||
msgstr "Descargar subtítulos"
|
||||
|
||||
#: nautilus.py:151
|
||||
msgid "Configure..."
|
||||
msgstr "Configurar..."
|
||||
@@ -0,0 +1,117 @@
|
||||
# Subliminal language file
|
||||
#
|
||||
# Translators:
|
||||
# Antoine Bertin <diaoulael@gmail.com>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: subliminal\n"
|
||||
"Report-Msgid-Bugs-To: diaoulael@gmail.com\n"
|
||||
"POT-Creation-Date: 2015-10-30 18:54+0100\n"
|
||||
"PO-Revision-Date: 2015-08-27 14:44+0000\n"
|
||||
"Last-Translator: Antoine Bertin <diaoulael@gmail.com>\n"
|
||||
"Language-Team: French (http://www.transifex.com/subliminal/subliminal/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: ui/config.glade.h:1
|
||||
msgid "Subtitles, faster than your thoughts."
|
||||
msgstr "Des sous-titres, sans y penser."
|
||||
|
||||
#: ui/config.glade.h:2
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#: ui/config.glade.h:3
|
||||
msgid "Code"
|
||||
msgstr "Code"
|
||||
|
||||
#: ui/config.glade.h:4
|
||||
msgid "Languages"
|
||||
msgstr "Langues"
|
||||
|
||||
#: ui/config.glade.h:5
|
||||
msgid "Configuration"
|
||||
msgstr "Configuration"
|
||||
|
||||
#: ui/config.glade.h:6
|
||||
msgid "Providers"
|
||||
msgstr "Fournisseurs"
|
||||
|
||||
#: ui/config.glade.h:7
|
||||
msgid "Do not use this unless your media player requires it"
|
||||
msgstr "Ne pas utiliser à moins que le lecteur multimédia ne le requiert"
|
||||
|
||||
#: ui/config.glade.h:8
|
||||
msgid ""
|
||||
"Save subtitle without language code in the filename\n"
|
||||
"i.e. use .srt extension"
|
||||
msgstr "Sauvegarder les sous-titres sans code de langue dans\nle nom du fichier, c.-a-d. utiliser .srt comme extension"
|
||||
|
||||
#: ui/config.glade.h:10
|
||||
msgid "Ignore videos with embedded subtitles"
|
||||
msgstr "Ignorer les vidéos avec des sous-titres intégrés"
|
||||
|
||||
#: ui/config.glade.h:11
|
||||
msgid ""
|
||||
"Ignore videos older than this number of days\n"
|
||||
"when scanning folders"
|
||||
msgstr "Ignorer les vidéos plus vieilles que ce nombre\nde jours lors du scan de dossiers"
|
||||
|
||||
#: ui/config.glade.h:13
|
||||
msgid "Prefer hearing impaired subtitles"
|
||||
msgstr "Préférer les sous-titres pour malentendants"
|
||||
|
||||
#: ui/config.glade.h:14
|
||||
msgid "Minimum matching score"
|
||||
msgstr "Score de correspondance minimum"
|
||||
|
||||
#: ui/config.glade.h:15
|
||||
msgid "General"
|
||||
msgstr "Général"
|
||||
|
||||
#: ui/config.glade.h:16
|
||||
msgid "About"
|
||||
msgstr "À propos"
|
||||
|
||||
#: ui/choose.glade.h:1
|
||||
msgid "Subliminal - Choose subtitles"
|
||||
msgstr "Subliminal - Choisir les sous-titres"
|
||||
|
||||
#: ui/choose.glade.h:2
|
||||
msgid "Video: "
|
||||
msgstr "Vidéo: "
|
||||
|
||||
#: ui/choose.glade.h:3
|
||||
msgid "Language"
|
||||
msgstr "Langue"
|
||||
|
||||
#: ui/choose.glade.h:4
|
||||
msgid "Score"
|
||||
msgstr "Score"
|
||||
|
||||
#: ui/choose.glade.h:5
|
||||
msgid "Provider"
|
||||
msgstr "Fournisseur"
|
||||
|
||||
#: ui/choose.glade.h:6
|
||||
msgid "Hearing Impaired"
|
||||
msgstr "Malentendant"
|
||||
|
||||
#: ui/choose.glade.h:7
|
||||
msgid "Downloaded"
|
||||
msgstr "Téléchargé"
|
||||
|
||||
#: nautilus.py:141
|
||||
msgid "Choose subtitles"
|
||||
msgstr "Choisir les sous-titres"
|
||||
|
||||
#: nautilus.py:146
|
||||
msgid "Download subtitles"
|
||||
msgstr "Télécharger les sous-titres"
|
||||
|
||||
#: nautilus.py:151
|
||||
msgid "Configure..."
|
||||
msgstr "Configurer..."
|
||||
@@ -0,0 +1,117 @@
|
||||
# Subliminal language file
|
||||
#
|
||||
# Translators:
|
||||
# Stefano Vetrini <stvnove@gmail.com>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: subliminal\n"
|
||||
"Report-Msgid-Bugs-To: diaoulael@gmail.com\n"
|
||||
"POT-Creation-Date: 2015-10-30 18:54+0100\n"
|
||||
"PO-Revision-Date: 2015-09-09 18:28+0000\n"
|
||||
"Last-Translator: Antoine Bertin <diaoulael@gmail.com>\n"
|
||||
"Language-Team: Italian (http://www.transifex.com/subliminal/subliminal/language/it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ui/config.glade.h:1
|
||||
msgid "Subtitles, faster than your thoughts."
|
||||
msgstr "Sottotitola, più veloce della luce."
|
||||
|
||||
#: ui/config.glade.h:2
|
||||
msgid "Name"
|
||||
msgstr "Nome"
|
||||
|
||||
#: ui/config.glade.h:3
|
||||
msgid "Code"
|
||||
msgstr "Codice"
|
||||
|
||||
#: ui/config.glade.h:4
|
||||
msgid "Languages"
|
||||
msgstr "Lingue"
|
||||
|
||||
#: ui/config.glade.h:5
|
||||
msgid "Configuration"
|
||||
msgstr "Configurazione"
|
||||
|
||||
#: ui/config.glade.h:6
|
||||
msgid "Providers"
|
||||
msgstr "Fornitori"
|
||||
|
||||
#: ui/config.glade.h:7
|
||||
msgid "Do not use this unless your media player requires it"
|
||||
msgstr "Non usare a meno che il tuo player video lo richieda"
|
||||
|
||||
#: ui/config.glade.h:8
|
||||
msgid ""
|
||||
"Save subtitle without language code in the filename\n"
|
||||
"i.e. use .srt extension"
|
||||
msgstr "Salva il sottotitolo senza il codice del linguaggio nel nome del file\nes. solo estensione .srt"
|
||||
|
||||
#: ui/config.glade.h:10
|
||||
msgid "Ignore videos with embedded subtitles"
|
||||
msgstr "Ignora i video con sottotitoli incorporati"
|
||||
|
||||
#: ui/config.glade.h:11
|
||||
msgid ""
|
||||
"Ignore videos older than this number of days\n"
|
||||
"when scanning folders"
|
||||
msgstr "Ignora i video più vecchi di questo numero di giorni\nquando ricerchi nelle cartelle"
|
||||
|
||||
#: ui/config.glade.h:13
|
||||
msgid "Prefer hearing impaired subtitles"
|
||||
msgstr "Preferisci i sottotitoli per non udenti"
|
||||
|
||||
#: ui/config.glade.h:14
|
||||
msgid "Minimum matching score"
|
||||
msgstr "Valore minimo per il punteggio dell'abbinamento"
|
||||
|
||||
#: ui/config.glade.h:15
|
||||
msgid "General"
|
||||
msgstr "Generale"
|
||||
|
||||
#: ui/config.glade.h:16
|
||||
msgid "About"
|
||||
msgstr "Informazioni"
|
||||
|
||||
#: ui/choose.glade.h:1
|
||||
msgid "Subliminal - Choose subtitles"
|
||||
msgstr "Subliminal - Scegli i sottotitoli"
|
||||
|
||||
#: ui/choose.glade.h:2
|
||||
msgid "Video: "
|
||||
msgstr "Video: "
|
||||
|
||||
#: ui/choose.glade.h:3
|
||||
msgid "Language"
|
||||
msgstr "Lingua"
|
||||
|
||||
#: ui/choose.glade.h:4
|
||||
msgid "Score"
|
||||
msgstr "Punteggio"
|
||||
|
||||
#: ui/choose.glade.h:5
|
||||
msgid "Provider"
|
||||
msgstr "Fornitore"
|
||||
|
||||
#: ui/choose.glade.h:6
|
||||
msgid "Hearing Impaired"
|
||||
msgstr "Non Udenti"
|
||||
|
||||
#: ui/choose.glade.h:7
|
||||
msgid "Downloaded"
|
||||
msgstr "Scaricati"
|
||||
|
||||
#: nautilus.py:141
|
||||
msgid "Choose subtitles"
|
||||
msgstr "Scegli i sottotitoli"
|
||||
|
||||
#: nautilus.py:146
|
||||
msgid "Download subtitles"
|
||||
msgstr "Scarica i sottotitoli"
|
||||
|
||||
#: nautilus.py:151
|
||||
msgid "Configure..."
|
||||
msgstr "Configura..."
|
||||
@@ -0,0 +1,117 @@
|
||||
# Subliminal language file
|
||||
#
|
||||
# Translators:
|
||||
# João Silva <asmodeo.pt@gmail.com>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: subliminal\n"
|
||||
"Report-Msgid-Bugs-To: diaoulael@gmail.com\n"
|
||||
"POT-Creation-Date: 2015-10-30 18:54+0100\n"
|
||||
"PO-Revision-Date: 2015-10-25 18:47+0000\n"
|
||||
"Last-Translator: João Silva <asmodeo.pt@gmail.com>\n"
|
||||
"Language-Team: Portuguese (http://www.transifex.com/subliminal/subliminal/language/pt/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: pt\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ui/config.glade.h:1
|
||||
msgid "Subtitles, faster than your thoughts."
|
||||
msgstr "Legendas, mais rápido do que os seus pensamentos."
|
||||
|
||||
#: ui/config.glade.h:2
|
||||
msgid "Name"
|
||||
msgstr "Nome"
|
||||
|
||||
#: ui/config.glade.h:3
|
||||
msgid "Code"
|
||||
msgstr "Código"
|
||||
|
||||
#: ui/config.glade.h:4
|
||||
msgid "Languages"
|
||||
msgstr "Idiomas"
|
||||
|
||||
#: ui/config.glade.h:5
|
||||
msgid "Configuration"
|
||||
msgstr "Configuração"
|
||||
|
||||
#: ui/config.glade.h:6
|
||||
msgid "Providers"
|
||||
msgstr "Fornecedores"
|
||||
|
||||
#: ui/config.glade.h:7
|
||||
msgid "Do not use this unless your media player requires it"
|
||||
msgstr "Não use isto a menos que o seu leitor multimédia o exija"
|
||||
|
||||
#: ui/config.glade.h:8
|
||||
msgid ""
|
||||
"Save subtitle without language code in the filename\n"
|
||||
"i.e. use .srt extension"
|
||||
msgstr "Gravar legenda sem código de idioma no nome de ficheiro\nou seja, usar extensão .srt"
|
||||
|
||||
#: ui/config.glade.h:10
|
||||
msgid "Ignore videos with embedded subtitles"
|
||||
msgstr "Ignorar vídeos com legendas embutidas"
|
||||
|
||||
#: ui/config.glade.h:11
|
||||
msgid ""
|
||||
"Ignore videos older than this number of days\n"
|
||||
"when scanning folders"
|
||||
msgstr "Ignorar vídeos com mais do que este número de dias\nquando a verificar pastas"
|
||||
|
||||
#: ui/config.glade.h:13
|
||||
msgid "Prefer hearing impaired subtitles"
|
||||
msgstr "Preferir legendas para deficientes auditivos"
|
||||
|
||||
#: ui/config.glade.h:14
|
||||
msgid "Minimum matching score"
|
||||
msgstr "Pontuação mínima correspondente"
|
||||
|
||||
#: ui/config.glade.h:15
|
||||
msgid "General"
|
||||
msgstr "Geral"
|
||||
|
||||
#: ui/config.glade.h:16
|
||||
msgid "About"
|
||||
msgstr "Acerca"
|
||||
|
||||
#: ui/choose.glade.h:1
|
||||
msgid "Subliminal - Choose subtitles"
|
||||
msgstr "Subliminal - Escolher legendas"
|
||||
|
||||
#: ui/choose.glade.h:2
|
||||
msgid "Video: "
|
||||
msgstr "Vídeo:"
|
||||
|
||||
#: ui/choose.glade.h:3
|
||||
msgid "Language"
|
||||
msgstr "Idioma"
|
||||
|
||||
#: ui/choose.glade.h:4
|
||||
msgid "Score"
|
||||
msgstr "Pontuação"
|
||||
|
||||
#: ui/choose.glade.h:5
|
||||
msgid "Provider"
|
||||
msgstr "Fornecedor"
|
||||
|
||||
#: ui/choose.glade.h:6
|
||||
msgid "Hearing Impaired"
|
||||
msgstr "Deficientes Auditivos"
|
||||
|
||||
#: ui/choose.glade.h:7
|
||||
msgid "Downloaded"
|
||||
msgstr "Transferida"
|
||||
|
||||
#: nautilus.py:141
|
||||
msgid "Choose subtitles"
|
||||
msgstr "Escolher legendas"
|
||||
|
||||
#: nautilus.py:146
|
||||
msgid "Download subtitles"
|
||||
msgstr "Transferir legendas"
|
||||
|
||||
#: nautilus.py:151
|
||||
msgid "Configure..."
|
||||
msgstr "Configurar..."
|
||||
@@ -0,0 +1,116 @@
|
||||
# Subliminal language file
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: subliminal\n"
|
||||
"Report-Msgid-Bugs-To: diaoulael@gmail.com\n"
|
||||
"POT-Creation-Date: 2015-10-30 18:54+0100\n"
|
||||
"PO-Revision-Date: 2015-10-27 17:05+0000\n"
|
||||
"Last-Translator: Antoine Bertin <diaoulael@gmail.com>\n"
|
||||
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/subliminal/subliminal/language/pt_BR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: pt_BR\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: ui/config.glade.h:1
|
||||
msgid "Subtitles, faster than your thoughts."
|
||||
msgstr "Legendas, mais rápido do que você imagina."
|
||||
|
||||
#: ui/config.glade.h:2
|
||||
msgid "Name"
|
||||
msgstr "Nome"
|
||||
|
||||
#: ui/config.glade.h:3
|
||||
msgid "Code"
|
||||
msgstr "Código"
|
||||
|
||||
#: ui/config.glade.h:4
|
||||
msgid "Languages"
|
||||
msgstr "Idiomas"
|
||||
|
||||
#: ui/config.glade.h:5
|
||||
msgid "Configuration"
|
||||
msgstr "Configuração"
|
||||
|
||||
#: ui/config.glade.h:6
|
||||
msgid "Providers"
|
||||
msgstr "Fornecedores"
|
||||
|
||||
#: ui/config.glade.h:7
|
||||
msgid "Do not use this unless your media player requires it"
|
||||
msgstr "Usar isto somente se o seu media player precisar"
|
||||
|
||||
#: ui/config.glade.h:8
|
||||
msgid ""
|
||||
"Save subtitle without language code in the filename\n"
|
||||
"i.e. use .srt extension"
|
||||
msgstr "Salvar legenda sem código de idioma no nome do arquivo\np.e. usar extensão .srt"
|
||||
|
||||
#: ui/config.glade.h:10
|
||||
msgid "Ignore videos with embedded subtitles"
|
||||
msgstr "Ignorar vídeos com legendas gravadas"
|
||||
|
||||
#: ui/config.glade.h:11
|
||||
msgid ""
|
||||
"Ignore videos older than this number of days\n"
|
||||
"when scanning folders"
|
||||
msgstr "Ignorar vídeos mais antigos que este número de días\nquando se escaneiem pastas"
|
||||
|
||||
#: ui/config.glade.h:13
|
||||
msgid "Prefer hearing impaired subtitles"
|
||||
msgstr "Priorizar legendas para pessoas com deficiência auditiva"
|
||||
|
||||
#: ui/config.glade.h:14
|
||||
msgid "Minimum matching score"
|
||||
msgstr "Nota mínima de resultados"
|
||||
|
||||
#: ui/config.glade.h:15
|
||||
msgid "General"
|
||||
msgstr "Geral"
|
||||
|
||||
#: ui/config.glade.h:16
|
||||
msgid "About"
|
||||
msgstr "Acerca"
|
||||
|
||||
#: ui/choose.glade.h:1
|
||||
msgid "Subliminal - Choose subtitles"
|
||||
msgstr "Subliminal - Escolher legendas"
|
||||
|
||||
#: ui/choose.glade.h:2
|
||||
msgid "Video: "
|
||||
msgstr "Vídeo: "
|
||||
|
||||
#: ui/choose.glade.h:3
|
||||
msgid "Language"
|
||||
msgstr "Idioma"
|
||||
|
||||
#: ui/choose.glade.h:4
|
||||
msgid "Score"
|
||||
msgstr "Nota"
|
||||
|
||||
#: ui/choose.glade.h:5
|
||||
msgid "Provider"
|
||||
msgstr "Fornecedor"
|
||||
|
||||
#: ui/choose.glade.h:6
|
||||
msgid "Hearing Impaired"
|
||||
msgstr "Pessoas com deficiência auditiva"
|
||||
|
||||
#: ui/choose.glade.h:7
|
||||
msgid "Downloaded"
|
||||
msgstr "Baixado"
|
||||
|
||||
#: nautilus.py:141
|
||||
msgid "Choose subtitles"
|
||||
msgstr "Escolher legendas"
|
||||
|
||||
#: nautilus.py:146
|
||||
msgid "Download subtitles"
|
||||
msgstr "Baixar legendas"
|
||||
|
||||
#: nautilus.py:151
|
||||
msgid "Configure..."
|
||||
msgstr "Configurar..."
|
||||
@@ -0,0 +1,117 @@
|
||||
# Subliminal language file
|
||||
#
|
||||
# Translators:
|
||||
# Andrej Ebert <mask@mask.ms>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: subliminal\n"
|
||||
"Report-Msgid-Bugs-To: diaoulael@gmail.com\n"
|
||||
"POT-Creation-Date: 2015-10-30 18:54+0100\n"
|
||||
"PO-Revision-Date: 2015-09-09 18:28+0000\n"
|
||||
"Last-Translator: Antoine Bertin <diaoulael@gmail.com>\n"
|
||||
"Language-Team: Russian (http://www.transifex.com/subliminal/subliminal/language/ru/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ru\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
|
||||
#: ui/config.glade.h:1
|
||||
msgid "Subtitles, faster than your thoughts."
|
||||
msgstr "Субтитры - быстрее мысли"
|
||||
|
||||
#: ui/config.glade.h:2
|
||||
msgid "Name"
|
||||
msgstr "Имя"
|
||||
|
||||
#: ui/config.glade.h:3
|
||||
msgid "Code"
|
||||
msgstr "Код"
|
||||
|
||||
#: ui/config.glade.h:4
|
||||
msgid "Languages"
|
||||
msgstr "Языки"
|
||||
|
||||
#: ui/config.glade.h:5
|
||||
msgid "Configuration"
|
||||
msgstr "Настройки"
|
||||
|
||||
#: ui/config.glade.h:6
|
||||
msgid "Providers"
|
||||
msgstr "Провайдеры(сайты)"
|
||||
|
||||
#: ui/config.glade.h:7
|
||||
msgid "Do not use this unless your media player requires it"
|
||||
msgstr "Не нужно, если ваш медиаплеер не требует этого"
|
||||
|
||||
#: ui/config.glade.h:8
|
||||
msgid ""
|
||||
"Save subtitle without language code in the filename\n"
|
||||
"i.e. use .srt extension"
|
||||
msgstr "Сохранять субтитры без кода языка в имени файла, т.е. просто .srt"
|
||||
|
||||
#: ui/config.glade.h:10
|
||||
msgid "Ignore videos with embedded subtitles"
|
||||
msgstr "Игнорировать видеофайлы со вшитыми субтитрами"
|
||||
|
||||
#: ui/config.glade.h:11
|
||||
msgid ""
|
||||
"Ignore videos older than this number of days\n"
|
||||
"when scanning folders"
|
||||
msgstr "Игнорировать видеофайлы старше этого количества дней"
|
||||
|
||||
#: ui/config.glade.h:13
|
||||
msgid "Prefer hearing impaired subtitles"
|
||||
msgstr "Предпочитать субтитры для слабослышащих/глухонемых"
|
||||
|
||||
#: ui/config.glade.h:14
|
||||
msgid "Minimum matching score"
|
||||
msgstr "Минимальный рейтинг"
|
||||
|
||||
#: ui/config.glade.h:15
|
||||
msgid "General"
|
||||
msgstr "Общее"
|
||||
|
||||
#: ui/config.glade.h:16
|
||||
msgid "About"
|
||||
msgstr "О программе"
|
||||
|
||||
#: ui/choose.glade.h:1
|
||||
msgid "Subliminal - Choose subtitles"
|
||||
msgstr "Subliminal - выбор субтитров"
|
||||
|
||||
#: ui/choose.glade.h:2
|
||||
msgid "Video: "
|
||||
msgstr "Видео:"
|
||||
|
||||
#: ui/choose.glade.h:3
|
||||
msgid "Language"
|
||||
msgstr "Язык"
|
||||
|
||||
#: ui/choose.glade.h:4
|
||||
msgid "Score"
|
||||
msgstr "Рейтинг"
|
||||
|
||||
#: ui/choose.glade.h:5
|
||||
msgid "Provider"
|
||||
msgstr "Провайдер(сайт)"
|
||||
|
||||
#: ui/choose.glade.h:6
|
||||
msgid "Hearing Impaired"
|
||||
msgstr "Для сабослышащих/глухонемых"
|
||||
|
||||
#: ui/choose.glade.h:7
|
||||
msgid "Downloaded"
|
||||
msgstr "Скачано"
|
||||
|
||||
#: nautilus.py:141
|
||||
msgid "Choose subtitles"
|
||||
msgstr "Выбор субтитров"
|
||||
|
||||
#: nautilus.py:146
|
||||
msgid "Download subtitles"
|
||||
msgstr "Скачать субтитры"
|
||||
|
||||
#: nautilus.py:151
|
||||
msgid "Configure..."
|
||||
msgstr "Настроить..."
|
||||
@@ -0,0 +1,117 @@
|
||||
# Subliminal language file
|
||||
#
|
||||
# Translators:
|
||||
# Özgür BASKIN, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: subliminal\n"
|
||||
"Report-Msgid-Bugs-To: diaoulael@gmail.com\n"
|
||||
"POT-Creation-Date: 2015-10-30 18:54+0100\n"
|
||||
"PO-Revision-Date: 2015-08-28 12:30+0000\n"
|
||||
"Last-Translator: Özgür BASKIN\n"
|
||||
"Language-Team: Turkish (http://www.transifex.com/subliminal/subliminal/language/tr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: tr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: ui/config.glade.h:1
|
||||
msgid "Subtitles, faster than your thoughts."
|
||||
msgstr "Altyazı, düşüncelerinizden daha hızlı."
|
||||
|
||||
#: ui/config.glade.h:2
|
||||
msgid "Name"
|
||||
msgstr "Ad"
|
||||
|
||||
#: ui/config.glade.h:3
|
||||
msgid "Code"
|
||||
msgstr "Kod"
|
||||
|
||||
#: ui/config.glade.h:4
|
||||
msgid "Languages"
|
||||
msgstr "Dil"
|
||||
|
||||
#: ui/config.glade.h:5
|
||||
msgid "Configuration"
|
||||
msgstr "Yapılandırma"
|
||||
|
||||
#: ui/config.glade.h:6
|
||||
msgid "Providers"
|
||||
msgstr "Sağlayıcılar"
|
||||
|
||||
#: ui/config.glade.h:7
|
||||
msgid "Do not use this unless your media player requires it"
|
||||
msgstr "Medya oynatıcınız için gerekli olmadığı sürece bunu kullanmayın"
|
||||
|
||||
#: ui/config.glade.h:8
|
||||
msgid ""
|
||||
"Save subtitle without language code in the filename\n"
|
||||
"i.e. use .srt extension"
|
||||
msgstr "Altyazıları dosya adına dil kodunu eklemeden kaydet\nyani .srt eklentisini kullan"
|
||||
|
||||
#: ui/config.glade.h:10
|
||||
msgid "Ignore videos with embedded subtitles"
|
||||
msgstr "Gömülü altyazıları olan videoları yoksay"
|
||||
|
||||
#: ui/config.glade.h:11
|
||||
msgid ""
|
||||
"Ignore videos older than this number of days\n"
|
||||
"when scanning folders"
|
||||
msgstr "Klasörleri tararken bu gün sayısından daha eski\nvideoları yoksay"
|
||||
|
||||
#: ui/config.glade.h:13
|
||||
msgid "Prefer hearing impaired subtitles"
|
||||
msgstr "İşitme engelli altyazılarını tercih et"
|
||||
|
||||
#: ui/config.glade.h:14
|
||||
msgid "Minimum matching score"
|
||||
msgstr "En düşük eşleşme puanı"
|
||||
|
||||
#: ui/config.glade.h:15
|
||||
msgid "General"
|
||||
msgstr "Genel"
|
||||
|
||||
#: ui/config.glade.h:16
|
||||
msgid "About"
|
||||
msgstr "Hakkında"
|
||||
|
||||
#: ui/choose.glade.h:1
|
||||
msgid "Subliminal - Choose subtitles"
|
||||
msgstr "Subliminal - Altyazı seç"
|
||||
|
||||
#: ui/choose.glade.h:2
|
||||
msgid "Video: "
|
||||
msgstr "Video: "
|
||||
|
||||
#: ui/choose.glade.h:3
|
||||
msgid "Language"
|
||||
msgstr "Dil"
|
||||
|
||||
#: ui/choose.glade.h:4
|
||||
msgid "Score"
|
||||
msgstr "Puan"
|
||||
|
||||
#: ui/choose.glade.h:5
|
||||
msgid "Provider"
|
||||
msgstr "Sağlayıcı"
|
||||
|
||||
#: ui/choose.glade.h:6
|
||||
msgid "Hearing Impaired"
|
||||
msgstr "İşitme Engelliler"
|
||||
|
||||
#: ui/choose.glade.h:7
|
||||
msgid "Downloaded"
|
||||
msgstr "İndirildi"
|
||||
|
||||
#: nautilus.py:141
|
||||
msgid "Choose subtitles"
|
||||
msgstr "Altyazıyı seç"
|
||||
|
||||
#: nautilus.py:146
|
||||
msgid "Download subtitles"
|
||||
msgstr "Altyazıyı indir"
|
||||
|
||||
#: nautilus.py:151
|
||||
msgid "Configure..."
|
||||
msgstr "Yapılandır..."
|
||||
Executable
+322
@@ -0,0 +1,322 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import division
|
||||
from collections import defaultdict
|
||||
from datetime import timedelta
|
||||
import locale
|
||||
from locale import gettext as _
|
||||
import os
|
||||
|
||||
from babelfish import Language
|
||||
from gi.repository import GObject, Gtk, Nautilus
|
||||
from subliminal import (VIDEO_EXTENSIONS, ProviderPool, __copyright__, __version__, check_video, compute_score,
|
||||
provider_manager, region, save_subtitles, scan_video, scan_videos)
|
||||
from subliminal.cli import Config, MutexLock, app_dir, cache_file, config_file
|
||||
|
||||
locale.bindtextdomain('subliminal', os.path.join(os.path.dirname(__file__), 'subliminal', 'locale'))
|
||||
locale.textdomain('subliminal')
|
||||
|
||||
ignored_languages = {Language(l) for l in (
|
||||
'ang', 'arc', 'dsb', 'dum', 'enm', 'frm', 'fro', 'gmh', 'goh', 'grc', 'ina', 'mga', 'mis', 'nds', 'non', 'ota',
|
||||
'peo', 'pro', 'sga', 'und'
|
||||
)}
|
||||
|
||||
|
||||
class ChooseHandler(object):
|
||||
"""Signal handler for the choose window.
|
||||
|
||||
This class will download the selected subtitle on row-activated signal.
|
||||
|
||||
:param config: a configuration object.
|
||||
:type config: :class:`~subliminal.cli.Config`
|
||||
:param video: the video.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:param subtitles: the available of subtitles.
|
||||
:type subtitles: list of :class:`~subliminal.subtitle.Subtitle`
|
||||
|
||||
"""
|
||||
def __init__(self, config, video, subtitles):
|
||||
self.config = config
|
||||
self.video = video
|
||||
self.subtitles = {s.provider_name + '-' + s.id: s for s in subtitles}
|
||||
|
||||
def on_subtitles_treeview_row_activated(self, treeview, path, view_column):
|
||||
model = treeview.get_model()
|
||||
iter = model.get_iter(path)
|
||||
|
||||
# return if already downloaded
|
||||
if model.get_value(iter, 6):
|
||||
return
|
||||
|
||||
# get the subtitle object
|
||||
subtitle = self.subtitles[model.get_value(iter, 3).lower() + '-' + model.get_value(iter, 0)]
|
||||
|
||||
# download the subtitle
|
||||
with ProviderPool(providers=self.config.providers, provider_configs=self.config.provider_configs) as pool:
|
||||
pool.download_subtitle(subtitle)
|
||||
|
||||
# save the subtitle
|
||||
save_subtitles(self.video, [subtitle], single=self.config.single)
|
||||
|
||||
# mark the subtitle as downloaded
|
||||
model.set_value(iter, 6, True)
|
||||
|
||||
def on_subtitles_scrolledwindow_delete_event(self, *args):
|
||||
Gtk.main_quit(*args)
|
||||
|
||||
|
||||
class ConfigHandler(object):
|
||||
"""Signal handler for the configuration window.
|
||||
|
||||
This class converts the values from the window and forward them to the configuration object. When the window is
|
||||
closed, the configuration is written.
|
||||
|
||||
:param config: a configuration object.
|
||||
:type config: :class:`~subliminal.cli.Config`
|
||||
|
||||
"""
|
||||
def __init__(self, config):
|
||||
self.config = config
|
||||
|
||||
def on_languages_treeview_selection_changed(self, selection):
|
||||
model, paths = selection.get_selected_rows()
|
||||
languages = {Language.fromietf(model.get_value(model.get_iter(p), 1)) for p in paths}
|
||||
if languages:
|
||||
self.config.languages = languages
|
||||
|
||||
def on_providers_treeview_selection_changed(self, selection):
|
||||
model, paths = selection.get_selected_rows()
|
||||
providers = [model.get_value(model.get_iter(p), 0).lower() for p in paths]
|
||||
if providers:
|
||||
self.config.providers = providers
|
||||
|
||||
def on_single_switch_active_notify(self, switch, gparam):
|
||||
self.config.single = switch.get_active()
|
||||
|
||||
def on_embedded_subtitles_switch_active_notify(self, switch, gparam):
|
||||
self.config.embedded_subtitles = switch.get_active()
|
||||
|
||||
def on_age_spinbutton_value_changed(self, spin_button):
|
||||
self.config.age = timedelta(days=spin_button.get_value())
|
||||
|
||||
def on_hearing_impaired_switch_active_notify(self, switch, gparam):
|
||||
self.config.hearing_impaired = switch.get_active()
|
||||
|
||||
def on_min_score_spinbutton_value_changed(self, spin_button):
|
||||
self.config.min_score = spin_button.get_value()
|
||||
|
||||
def on_config_window_delete_event(self, *args):
|
||||
self.config.write()
|
||||
Gtk.main_quit(*args)
|
||||
|
||||
|
||||
class SubliminalExtension(GObject.GObject, Nautilus.MenuProvider):
|
||||
def __init__(self):
|
||||
# create app directory
|
||||
try:
|
||||
os.makedirs(app_dir)
|
||||
except OSError:
|
||||
if not os.path.isdir(app_dir):
|
||||
raise
|
||||
|
||||
# open config file
|
||||
self.config = Config(os.path.join(app_dir, config_file))
|
||||
self.config.read()
|
||||
|
||||
# configure cache
|
||||
region.configure('dogpile.cache.dbm', expiration_time=timedelta(days=30),
|
||||
arguments={'filename': os.path.join(app_dir, cache_file), 'lock_factory': MutexLock})
|
||||
|
||||
def get_file_items(self, window, files):
|
||||
# lightweight filter on file type and extension
|
||||
if not any(f.is_directory() or f.get_name().endswith(VIDEO_EXTENSIONS) for f in files):
|
||||
return
|
||||
|
||||
# create subliminal menu
|
||||
subliminal_menuitem = Nautilus.MenuItem(name='SubliminalMenu::Subliminal', label='Subliminal')
|
||||
sub_menus = Nautilus.Menu()
|
||||
subliminal_menuitem.set_submenu(sub_menus)
|
||||
|
||||
# create choose submenu on single file
|
||||
if len(files) == 1 and not files[0].is_directory():
|
||||
choose_menuitem = Nautilus.MenuItem(name='SubliminalSubMenu::Choose', label=_('Choose subtitles'))
|
||||
choose_menuitem.connect('activate', self.choose_callback, files)
|
||||
sub_menus.append_item(choose_menuitem)
|
||||
|
||||
# create download submenu
|
||||
download_menuitem = Nautilus.MenuItem(name='SubliminalSubMenu::Download', label=_('Download subtitles'))
|
||||
download_menuitem.connect('activate', self.download_callback, files)
|
||||
sub_menus.append_item(download_menuitem)
|
||||
|
||||
# create configure submenu
|
||||
configure_menuitem = Nautilus.MenuItem(name='SubliminalSubMenu::Configure', label=_('Configure...'))
|
||||
configure_menuitem.connect('activate', self.config_callback)
|
||||
sub_menus.append_item(configure_menuitem)
|
||||
|
||||
return subliminal_menuitem,
|
||||
|
||||
def get_background_items(self, window, current_folder):
|
||||
return []
|
||||
|
||||
def choose_callback(self, menuitem, files):
|
||||
# scan and check the video
|
||||
video = scan_video(files[0].get_location().get_path(), subtitles=True,
|
||||
embedded_subtitles=self.config.embedded_subtitles)
|
||||
if not check_video(video, languages=self.config.languages, undefined=self.config.single):
|
||||
return
|
||||
|
||||
# list subtitles
|
||||
with ProviderPool(providers=self.config.providers, provider_configs=self.config.provider_configs) as pool:
|
||||
subtitles = pool.list_subtitles(video, self.config.languages)
|
||||
|
||||
# load the interface
|
||||
builder = Gtk.Builder()
|
||||
builder.set_translation_domain('subliminal')
|
||||
builder.add_from_file(os.path.join(os.path.dirname(__file__), 'subliminal', 'ui', 'choose.glade'))
|
||||
|
||||
# set the video filename
|
||||
video_filename = builder.get_object('video_filename_label')
|
||||
video_filename.set_text(files[0].get_name())
|
||||
|
||||
# fill the subtitle liststore
|
||||
subtitle_liststore = builder.get_object('subtitle_liststore')
|
||||
for s in subtitles:
|
||||
matches = s.get_matches(video, hearing_impaired=self.config.hearing_impaired)
|
||||
scaled_score = compute_score(matches, video)
|
||||
if s.hearing_impaired == self.config.hearing_impaired:
|
||||
scaled_score -= video.scores['hearing_impaired']
|
||||
scaled_score *= 100 / video.scores['hash']
|
||||
subtitle_liststore.append([s.id, nice_language(s.language), scaled_score, s.provider_name.capitalize(),
|
||||
s.hearing_impaired, s.page_link, False])
|
||||
subtitle_liststore.set_sort_column_id(2, Gtk.SortType.DESCENDING)
|
||||
|
||||
# connect signals
|
||||
builder.connect_signals(ChooseHandler(self.config, video, subtitles))
|
||||
|
||||
# display window
|
||||
window = builder.get_object('subtitle_window')
|
||||
window.show_all()
|
||||
Gtk.main()
|
||||
|
||||
def download_callback(self, menuitem, files):
|
||||
# scan videos
|
||||
videos = []
|
||||
for f in files:
|
||||
# ignore non-writable locations
|
||||
if not f.can_write():
|
||||
continue
|
||||
|
||||
# directories
|
||||
if f.is_directory():
|
||||
try:
|
||||
scanned_videos = scan_videos(f.get_location().get_path(), subtitles=True,
|
||||
embedded_subtitles=self.config.embedded_subtitles)
|
||||
except:
|
||||
continue
|
||||
for video in scanned_videos:
|
||||
if check_video(video, languages=self.config.languages, age=self.config.age,
|
||||
undefined=self.config.single):
|
||||
videos.append(video)
|
||||
continue
|
||||
|
||||
# other inputs
|
||||
try:
|
||||
video = scan_video(f.get_location().get_path(), subtitles=True,
|
||||
embedded_subtitles=self.config.embedded_subtitles)
|
||||
except:
|
||||
continue
|
||||
if check_video(video, languages=self.config.languages, undefined=self.config.single):
|
||||
videos.append(video)
|
||||
|
||||
# download best subtitles
|
||||
downloaded_subtitles = defaultdict(list)
|
||||
with ProviderPool(providers=self.config.providers, provider_configs=self.config.provider_configs) as pool:
|
||||
for v in videos:
|
||||
subtitles = pool.download_best_subtitles(
|
||||
pool.list_subtitles(v, self.config.languages - v.subtitle_languages),
|
||||
v, self.config.languages, min_score=v.scores['hash'] * self.config.min_score / 100,
|
||||
hearing_impaired=self.config.hearing_impaired, only_one=self.config.single
|
||||
)
|
||||
downloaded_subtitles[v] = subtitles
|
||||
|
||||
# save subtitles
|
||||
for v, subtitles in downloaded_subtitles.items():
|
||||
save_subtitles(v, subtitles, single=self.config.single)
|
||||
|
||||
def config_callback(self, *args, **kwargs):
|
||||
# load the interface
|
||||
builder = Gtk.Builder()
|
||||
builder.set_translation_domain('subliminal')
|
||||
builder.add_from_file(os.path.join(os.path.dirname(__file__), 'subliminal', 'ui', 'config.glade'))
|
||||
|
||||
# configure the about page
|
||||
aboutdialog = builder.get_object('aboutdialog')
|
||||
aboutdialog.set_version(__version__)
|
||||
aboutdialog.set_copyright(__copyright__)
|
||||
aboutdialog.vbox.reparent(builder.get_object('about_box'))
|
||||
|
||||
# fill the language liststore
|
||||
available_languages = set()
|
||||
for provider in provider_manager:
|
||||
available_languages |= provider.plugin.languages
|
||||
language_liststore = builder.get_object('language_liststore')
|
||||
for language in sorted(available_languages - ignored_languages, key=nice_language):
|
||||
language_liststore.append([nice_language(language), str(language)])
|
||||
|
||||
# set language selection
|
||||
language_treeselection = builder.get_object('language_treeselection')
|
||||
for language in language_liststore:
|
||||
if Language.fromietf(language[1]) in self.config.languages:
|
||||
language_treeselection.select_path(language.path)
|
||||
|
||||
# fill the provider liststore
|
||||
provider_liststore = builder.get_object('provider_liststore')
|
||||
for provider in sorted([p.name for p in provider_manager]):
|
||||
provider_liststore.append([provider.capitalize(), str(self.config.provider_configs.get(provider, ''))])
|
||||
|
||||
# set provider selection
|
||||
provider_treeselection = builder.get_object('provider_treeselection')
|
||||
for provider in provider_liststore:
|
||||
if provider[0].lower() in self.config.providers:
|
||||
provider_treeselection.select_iter(provider.iter)
|
||||
|
||||
# set single state
|
||||
single_switch = builder.get_object('single_switch')
|
||||
single_switch.set_active(self.config.single)
|
||||
|
||||
# set embedded subtitles state
|
||||
embedded_subtitles_switch = builder.get_object('embedded_subtitles_switch')
|
||||
embedded_subtitles_switch.set_active(self.config.embedded_subtitles)
|
||||
|
||||
# set age value
|
||||
age_spinbutton = builder.get_object('age_spinbutton')
|
||||
age_spinbutton.set_value(self.config.age.days)
|
||||
|
||||
# set hearing impaired state
|
||||
hearing_impaired_switch = builder.get_object('hearing_impaired_switch')
|
||||
hearing_impaired_switch.set_active(self.config.hearing_impaired)
|
||||
|
||||
# set min score value
|
||||
min_score_spinbutton = builder.get_object('min_score_spinbutton')
|
||||
min_score_spinbutton.set_value(self.config.min_score)
|
||||
|
||||
# connect signals
|
||||
builder.connect_signals(ConfigHandler(self.config))
|
||||
|
||||
# display window
|
||||
window = builder.get_object('config_window')
|
||||
window.show_all()
|
||||
Gtk.main()
|
||||
|
||||
|
||||
def nice_language(language):
|
||||
"""Format a :class:`~babelfish.Language` in a nice string with country name if any.
|
||||
|
||||
:param language: the language.
|
||||
:type language: :class:`~babelfish.Language`
|
||||
:return: a nice representation of the language.
|
||||
:rtype: str
|
||||
|
||||
"""
|
||||
if language.country is not None:
|
||||
return '{name} ({country})'.format(name=language.name, country=language.country.name.capitalize())
|
||||
return language.name
|
||||
@@ -0,0 +1,193 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.18.3
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 Antoine Bertin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
Author: Antoine Bertin
|
||||
|
||||
-->
|
||||
<interface domain="subliminal">
|
||||
<requires lib="gtk+" version="3.12"/>
|
||||
<!-- interface-license-type mit -->
|
||||
<!-- interface-name subliminal -->
|
||||
<!-- interface-description Subtitles, faster than your thoughts -->
|
||||
<!-- interface-copyright 2015 Antoine Bertin -->
|
||||
<!-- interface-authors Antoine Bertin -->
|
||||
<object class="GtkListStore" id="subtitle_liststore">
|
||||
<columns>
|
||||
<!-- column-name id -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name language -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name score -->
|
||||
<column type="gint"/>
|
||||
<!-- column-name provider -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name hearing_impaired -->
|
||||
<column type="gboolean"/>
|
||||
<!-- column-name page_link -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name downloaded -->
|
||||
<column type="gboolean"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="GtkWindow" id="subtitle_window">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="title" translatable="yes">Subliminal - Choose subtitles</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="subtitle_box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="video_box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="margin_start">6</property>
|
||||
<property name="margin_top">5</property>
|
||||
<property name="margin_bottom">5</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="video_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Video: </property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="video_filename_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label">Video filename</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="subtitle_scrolledwindow">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="hscrollbar_policy">never</property>
|
||||
<property name="shadow_type">in</property>
|
||||
<property name="min_content_height">350</property>
|
||||
<signal name="delete-event" handler="on_subtitles_scrolledwindow_delete_event" swapped="no"/>
|
||||
<child>
|
||||
<object class="GtkTreeView" id="subtitle_treeview">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="model">subtitle_liststore</property>
|
||||
<signal name="row-activated" handler="on_subtitles_treeview_row_activated" swapped="no"/>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection" id="subtitle_treeview_selection"/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="language_treeviewcolumn">
|
||||
<property name="min_width">250</property>
|
||||
<property name="title" translatable="yes">Language</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="sort_column_id">1</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="language_cellrenderertext"/>
|
||||
<attributes>
|
||||
<attribute name="text">1</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="score_treeviewcolumn">
|
||||
<property name="title" translatable="yes">Score</property>
|
||||
<property name="sort_column_id">2</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="score_cellrenderertext"/>
|
||||
<attributes>
|
||||
<attribute name="text">2</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="provider_treeviewcolumn">
|
||||
<property name="min_width">140</property>
|
||||
<property name="title" translatable="yes">Provider</property>
|
||||
<property name="sort_column_id">3</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="provider_cellrenderertext"/>
|
||||
<attributes>
|
||||
<attribute name="text">3</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="hearing_impaired_treeviewcolumn">
|
||||
<property name="title" translatable="yes">Hearing Impaired</property>
|
||||
<property name="sort_column_id">4</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererToggle" id="hearing_impaired_cellrenderertoggle"/>
|
||||
<attributes>
|
||||
<attribute name="active">4</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="downloaded_treeviewcolumn">
|
||||
<property name="title" translatable="yes">Downloaded</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererToggle" id="downloaded_cellrenderertoggle"/>
|
||||
<attributes>
|
||||
<attribute name="active">6</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
@@ -0,0 +1,410 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.18.3
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 Antoine Bertin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
Author: Antoine Bertin
|
||||
|
||||
-->
|
||||
<interface domain="subliminal">
|
||||
<requires lib="gtk+" version="3.12"/>
|
||||
<!-- interface-license-type mit -->
|
||||
<!-- interface-name subliminal -->
|
||||
<!-- interface-description Subtitles, faster than your thoughts -->
|
||||
<!-- interface-copyright 2015 Antoine Bertin -->
|
||||
<!-- interface-authors Antoine Bertin -->
|
||||
<object class="GtkAboutDialog" id="aboutdialog">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="type">popup</property>
|
||||
<property name="type_hint">dialog</property>
|
||||
<property name="program_name">Subliminal</property>
|
||||
<property name="comments" translatable="yes">Subtitles, faster than your thoughts.</property>
|
||||
<property name="website">https://github.com/Diaoul/subliminal</property>
|
||||
<property name="authors">Antoine Bertin</property>
|
||||
<property name="logo_icon_name">emblem-favorite</property>
|
||||
<property name="license_type">mit-x11</property>
|
||||
<child internal-child="vbox">
|
||||
<object class="GtkBox" id="aboutdialog_vbox">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">2</property>
|
||||
<child internal-child="action_area">
|
||||
<object class="GtkButtonBox" id="aboutdialog-action_area1">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="layout_style">end</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkAdjustment" id="age_adjustment">
|
||||
<property name="upper">30</property>
|
||||
<property name="step_increment">1</property>
|
||||
<property name="page_increment">10</property>
|
||||
</object>
|
||||
<object class="GtkListStore" id="language_liststore">
|
||||
<columns>
|
||||
<!-- column-name name -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name code -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="GtkAdjustment" id="min_score_adjustment">
|
||||
<property name="upper">100</property>
|
||||
<property name="step_increment">1</property>
|
||||
<property name="page_increment">10</property>
|
||||
</object>
|
||||
<object class="GtkListStore" id="provider_liststore">
|
||||
<columns>
|
||||
<!-- column-name name -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name configuration -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="GtkWindow" id="config_window">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="title">Subliminal - Configuration</property>
|
||||
<signal name="delete-event" handler="on_config_window_delete_event" swapped="no"/>
|
||||
<child>
|
||||
<object class="GtkNotebook" id="config_notebook">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="show_border">False</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="language_scrolledwindow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="hscrollbar_policy">never</property>
|
||||
<property name="min_content_height">100</property>
|
||||
<child>
|
||||
<object class="GtkTreeView" id="language_treeview">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="model">language_liststore</property>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection" id="language_treeselection">
|
||||
<property name="mode">multiple</property>
|
||||
<signal name="changed" handler="on_languages_treeview_selection_changed" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="language_name_treeviewcolumn">
|
||||
<property name="min_width">250</property>
|
||||
<property name="title" translatable="yes">Name</property>
|
||||
<property name="expand">True</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="language_name_cellrenderertext"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="language_code_treeviewcolumn">
|
||||
<property name="min_width">100</property>
|
||||
<property name="title" translatable="yes">Code</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="language_code_cellrenderertext"/>
|
||||
<attributes>
|
||||
<attribute name="text">1</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="tab">
|
||||
<object class="GtkLabel" id="languages_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Languages</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="tab_fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="provider_scrolledwindow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="hscrollbar_policy">never</property>
|
||||
<property name="min_content_height">100</property>
|
||||
<child>
|
||||
<object class="GtkTreeView" id="provider_treeview">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="model">provider_liststore</property>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection" id="provider_treeselection">
|
||||
<property name="mode">multiple</property>
|
||||
<signal name="changed" handler="on_providers_treeview_selection_changed" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="provider_name_treeviewcolumn">
|
||||
<property name="min_width">140</property>
|
||||
<property name="title" translatable="yes">Name</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="provider_name_cellrenderertext"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="provider_configuration_treeviewcolumn">
|
||||
<property name="min_width">250</property>
|
||||
<property name="title" translatable="yes">Configuration</property>
|
||||
<property name="expand">True</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="provider_configuration_cellrenderertext"/>
|
||||
<attributes>
|
||||
<attribute name="text">1</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="tab">
|
||||
<object class="GtkLabel" id="providers_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Providers</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
<property name="tab_fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkGrid" id="general_grid">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="margin_start">10</property>
|
||||
<property name="margin_end">10</property>
|
||||
<property name="margin_top">15</property>
|
||||
<property name="margin_bottom">15</property>
|
||||
<property name="row_spacing">20</property>
|
||||
<property name="column_spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="single_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="tooltip_text" translatable="yes">Do not use this unless your media player requires it</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="label" translatable="yes">Save subtitle without language code in the filename
|
||||
i.e. use .srt extension</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="single_switch">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">center</property>
|
||||
<signal name="notify::active" handler="on_single_switch_active_notify" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="embedded_subtitles_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="label" translatable="yes">Ignore videos with embedded subtitles</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="embedded_subtitles_switch">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">center</property>
|
||||
<signal name="notify::active" handler="on_embedded_subtitles_switch_active_notify" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="age_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="label" translatable="yes">Ignore videos older than this number of days
|
||||
when scanning folders</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSpinButton" id="age_spinbutton">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="adjustment">age_adjustment</property>
|
||||
<property name="numeric">True</property>
|
||||
<signal name="value-changed" handler="on_age_spinbutton_value_changed" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="hearing_impaired_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="label" translatable="yes">Prefer hearing impaired subtitles</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="hearing_impaired_switch">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">center</property>
|
||||
<signal name="notify::active" handler="on_hearing_impaired_switch_active_notify" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="min_score_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="label" translatable="yes">Minimum matching score</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSpinButton" id="min_score_spinbutton">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="adjustment">min_score_adjustment</property>
|
||||
<property name="numeric">True</property>
|
||||
<signal name="value-changed" handler="on_min_score_spinbutton_value_changed" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="tab">
|
||||
<object class="GtkLabel" id="general_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">General</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">2</property>
|
||||
<property name="tab_fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="about_box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="tab">
|
||||
<object class="GtkLabel" id="about_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">About</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">3</property>
|
||||
<property name="tab_fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
[pytest]
|
||||
norecursedirs = build dist env .tox .eggs
|
||||
addopts = --pep8 --flakes --doctest-glob='*.rst'
|
||||
pep8maxlinelength = 120
|
||||
pep8ignore =
|
||||
docs/conf.py ALL
|
||||
subliminal/__init__.py E402
|
||||
flakes-ignore =
|
||||
docs/conf.py ALL
|
||||
subliminal/__init__.py UnusedImport
|
||||
doctest_optionflags= NORMALIZE_WHITESPACE IGNORE_EXCEPTION_DETAIL
|
||||
+1
-10
@@ -1,10 +1 @@
|
||||
beautifulsoup4>=4.3.2
|
||||
guessit>=0.6.1
|
||||
requests>=2.0.0
|
||||
enzyme>=0.3.1
|
||||
html5lib>=0.99
|
||||
dogpile.cache>=0.5.1
|
||||
babelfish>=0.1.5
|
||||
lxml>=3.2.3
|
||||
charade>=1.0.3
|
||||
pysrt>=0.5.0
|
||||
-e .
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
[aliases]
|
||||
test=pytest
|
||||
|
||||
[build_sphinx]
|
||||
source-dir = docs/
|
||||
build-dir = docs/_build
|
||||
|
||||
@@ -1,38 +1,86 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
import io
|
||||
import re
|
||||
import sys
|
||||
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
|
||||
# requirements
|
||||
setup_requirements = ['pytest-runner'] if {'pytest', 'test', 'ptr'}.intersection(sys.argv) else []
|
||||
|
||||
install_requirements = ['guessit>=0.9.1,<2.0', 'babelfish>=0.5.2', 'enzyme>=0.4.1', 'beautifulsoup4>=4.2.0',
|
||||
'requests>=2.0', 'click>=4.0', 'dogpile.cache>=0.5.4', 'stevedore>=1.0.0',
|
||||
'chardet>=2.3.0', 'pysrt>=1.0.1', 'six>=1.9.0']
|
||||
|
||||
test_requirements = ['sympy', 'vcrpy>=1.6.1', 'pytest', 'pytest-pep8', 'pytest-flakes', 'pytest-cov']
|
||||
if sys.version_info < (3, 3):
|
||||
test_requirements.append('mock')
|
||||
|
||||
dev_requirements = ['tox', 'sphinx', 'transifex-client', 'wheel']
|
||||
|
||||
# package informations
|
||||
with io.open('subliminal/__init__.py', 'r') as f:
|
||||
version = re.search(r'^__version__\s*=\s*[\'"]([^\'"]*)[\'"]$', f.read(), re.MULTILINE).group(1)
|
||||
|
||||
if not version:
|
||||
raise RuntimeError('Cannot find version information')
|
||||
|
||||
with io.open('README.rst', 'r', encoding='utf-8') as f:
|
||||
readme = f.read()
|
||||
|
||||
with io.open('HISTORY.rst', 'r', encoding='utf-8') as f:
|
||||
history = f.read()
|
||||
|
||||
|
||||
setup(name='subliminal',
|
||||
version='0.7.0',
|
||||
license='MIT',
|
||||
description='Subtitles, faster than your thoughts',
|
||||
long_description=open('README.rst').read() + '\n\n' + open('HISTORY.rst').read(),
|
||||
keywords='subtitle subtitles video movie episode tv show',
|
||||
url='https://github.com/Diaoul/subliminal',
|
||||
author='Antoine Bertin',
|
||||
author_email='diaoulael@gmail.com',
|
||||
packages=find_packages(),
|
||||
classifiers=['Development Status :: 4 - Beta',
|
||||
'Intended Audience :: Developers',
|
||||
'License :: OSI Approved :: MIT License',
|
||||
'Operating System :: OS Independent',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 2',
|
||||
'Programming Language :: Python :: 2.7',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.3',
|
||||
'Topic :: Software Development :: Libraries :: Python Modules',
|
||||
'Topic :: Multimedia :: Video'],
|
||||
entry_points={
|
||||
'console_scripts': ['subliminal = subliminal.cli:subliminal'],
|
||||
'subliminal.providers': ['addic7ed = subliminal.providers.addic7ed:Addic7edProvider',
|
||||
'bierdopje = subliminal.providers.bierdopje:BierDopjeProvider',
|
||||
'opensubtitles = subliminal.providers.opensubtitles:OpenSubtitlesProvider',
|
||||
'thesubdb = subliminal.providers.thesubdb:TheSubDBProvider',
|
||||
'tvsubtitles = subliminal.providers.tvsubtitles:TVsubtitlesProvider'],
|
||||
'babelfish.converters': ['addic7ed = subliminal.converters.addic7ed:Addic7edConverter',
|
||||
'tvsubtitles = subliminal.converters.tvsubtitles:TVsubtitlesConverter']
|
||||
},
|
||||
install_requires=open('requirements.txt').readlines(),
|
||||
test_suite='subliminal.tests.suite')
|
||||
version=version,
|
||||
license='MIT',
|
||||
description='Subtitles, faster than your thoughts',
|
||||
long_description=readme + '\n\n' + history,
|
||||
keywords='subtitle subtitles video movie episode tv show',
|
||||
url='https://github.com/Diaoul/subliminal',
|
||||
author='Antoine Bertin',
|
||||
author_email='diaoulael@gmail.com',
|
||||
packages=find_packages(),
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Intended Audience :: Developers',
|
||||
'License :: OSI Approved :: MIT License',
|
||||
'Operating System :: OS Independent',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 2',
|
||||
'Programming Language :: Python :: 2.7',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.3',
|
||||
'Programming Language :: Python :: 3.4',
|
||||
'Programming Language :: Python :: 3.5',
|
||||
'Topic :: Software Development :: Libraries :: Python Modules',
|
||||
'Topic :: Multimedia :: Video'
|
||||
],
|
||||
entry_points={
|
||||
'subliminal.providers': [
|
||||
'addic7ed = subliminal.providers.addic7ed:Addic7edProvider',
|
||||
'opensubtitles = subliminal.providers.opensubtitles:OpenSubtitlesProvider',
|
||||
'podnapisi = subliminal.providers.podnapisi:PodnapisiProvider',
|
||||
'subscenter = subliminal.providers.subscenter:SubsCenterProvider',
|
||||
'thesubdb = subliminal.providers.thesubdb:TheSubDBProvider',
|
||||
'tvsubtitles = subliminal.providers.tvsubtitles:TVsubtitlesProvider'
|
||||
],
|
||||
'babelfish.language_converters': [
|
||||
'addic7ed = subliminal.converters.addic7ed:Addic7edConverter',
|
||||
'thesubdb = subliminal.converters.thesubdb:TheSubDBConverter',
|
||||
'tvsubtitles = subliminal.converters.tvsubtitles:TVsubtitlesConverter'
|
||||
],
|
||||
'console_scripts': [
|
||||
'subliminal = subliminal.cli:subliminal'
|
||||
]
|
||||
},
|
||||
setup_requires=setup_requirements,
|
||||
install_requires=install_requirements,
|
||||
tests_require=test_requirements,
|
||||
extras_require={
|
||||
'test': test_requirements,
|
||||
'dev': dev_requirements
|
||||
})
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
__title__ = 'subliminal'
|
||||
__version__ = '0.7.0'
|
||||
__version__ = '1.1.1'
|
||||
__author__ = 'Antoine Bertin'
|
||||
__license__ = 'MIT'
|
||||
__copyright__ = 'Copyright 2013 Antoine Bertin'
|
||||
__copyright__ = 'Copyright 2015, Antoine Bertin'
|
||||
|
||||
import logging
|
||||
from .api import PROVIDERS_ENTRY_POINT, list_subtitles, download_subtitles, download_best_subtitles
|
||||
from .cache import region as cache_region
|
||||
from .exceptions import Error, ProviderError, ProviderConfigurationError, ProviderNotAvailable, InvalidSubtitle
|
||||
from .subtitle import Subtitle
|
||||
from .video import VIDEO_EXTENSIONS, SUBTITLE_EXTENSIONS, Video, Episode, Movie, scan_videos, scan_video
|
||||
|
||||
from .api import (ProviderPool, check_video, provider_manager, download_best_subtitles, download_subtitles,
|
||||
list_subtitles, save_subtitles)
|
||||
from .cache import region
|
||||
from .exceptions import Error, ProviderError
|
||||
from .providers import Provider
|
||||
from .subtitle import Subtitle, compute_score
|
||||
from .video import SUBTITLE_EXTENSIONS, VIDEO_EXTENSIONS, Episode, Movie, Video, scan_video, scan_videos
|
||||
|
||||
logging.getLogger(__name__).addHandler(logging.NullHandler())
|
||||
|
||||
+389
-225
@@ -1,250 +1,414 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import collections
|
||||
from collections import defaultdict
|
||||
import io
|
||||
import logging
|
||||
import operator
|
||||
import pkg_resources
|
||||
from .exceptions import ProviderNotAvailable, InvalidSubtitle
|
||||
from .subtitle import get_subtitle_path
|
||||
import os.path
|
||||
import socket
|
||||
|
||||
from babelfish import Language
|
||||
import requests
|
||||
from stevedore import EnabledExtensionManager, ExtensionManager
|
||||
|
||||
from .subtitle import compute_score, get_subtitle_path
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
#: Entry point for the providers
|
||||
PROVIDERS_ENTRY_POINT = 'subliminal.providers'
|
||||
provider_manager = ExtensionManager('subliminal.providers')
|
||||
|
||||
|
||||
def list_subtitles(videos, languages, providers=None, provider_configs=None):
|
||||
"""List subtitles for `videos` with the given `languages` using the specified `providers`
|
||||
class ProviderPool(object):
|
||||
"""A pool of providers with the same API as a single :class:`~subliminal.providers.Provider`.
|
||||
|
||||
:param videos: videos to list subtitles for
|
||||
:type videos: set of :class:`~subliminal.video.Video`
|
||||
:param languages: languages of subtitles to search for
|
||||
:type languages: set of :class:`babelfish.Language`
|
||||
:param providers: providers to use for the search, if not all
|
||||
:type providers: list of string or None
|
||||
:param provider_configs: configuration for providers
|
||||
:type provider_configs: dict of provider name => provider constructor kwargs
|
||||
:return: found subtitles
|
||||
:rtype: dict of :class:`~subliminal.video.Video` => [:class:`~subliminal.subtitle.Subtitle`]
|
||||
It has a few extra features:
|
||||
|
||||
* Lazy loads providers when needed and supports the :keyword:`with` statement to :meth:`terminate`
|
||||
the providers on exit.
|
||||
* Automatically discard providers on failure.
|
||||
|
||||
:param providers: name of providers to use, if not all.
|
||||
:type providers: list
|
||||
:param dict provider_configs: provider configuration as keyword arguments per provider name to pass when
|
||||
instanciating the :class:`~subliminal.providers.Provider`.
|
||||
|
||||
"""
|
||||
provider_configs = provider_configs or {}
|
||||
subtitles = collections.defaultdict(list)
|
||||
# filter videos
|
||||
videos = [v for v in videos if v.subtitle_languages != languages]
|
||||
if not videos:
|
||||
logger.info('No video to download subtitles for with languages %r', languages)
|
||||
return subtitles
|
||||
for provider_entry_point in pkg_resources.iter_entry_points(PROVIDERS_ENTRY_POINT):
|
||||
# filter and initialize provider
|
||||
if providers is not None and provider_entry_point.name not in providers:
|
||||
logger.debug('Skipping provider %r: not in the list', provider_entry_point.name)
|
||||
continue
|
||||
Provider = provider_entry_point.load()
|
||||
provider_languages = Provider.languages & languages
|
||||
if not provider_languages:
|
||||
logger.debug('Skipping provider %r: no language to search for', provider_entry_point.name)
|
||||
continue
|
||||
provider_videos = [v for v in videos if Provider.check(v)]
|
||||
if not provider_videos:
|
||||
logger.debug('Skipping provider %r: no video to search for', provider_entry_point.name)
|
||||
continue
|
||||
def __init__(self, providers=None, provider_configs=None):
|
||||
#: Name of providers to use
|
||||
self.providers = providers or provider_manager.names()
|
||||
|
||||
# list subtitles with the provider
|
||||
with Provider(**provider_configs.get(provider_entry_point.name, {})) as provider:
|
||||
for provider_video in provider_videos:
|
||||
logger.info('Listing subtitles with provider %r for video %r with languages %r',
|
||||
provider_entry_point.name, provider_video, provider_languages)
|
||||
try:
|
||||
provider_subtitles = provider.list_subtitles(provider_video, provider_languages)
|
||||
except ProviderNotAvailable:
|
||||
logger.warning('Provider %r is not available, discarding it', provider_entry_point.name)
|
||||
break
|
||||
except:
|
||||
logger.exception('Unexpected error in provider %r', provider_entry_point.name)
|
||||
continue
|
||||
logger.info('Found %d subtitles', len(provider_subtitles))
|
||||
subtitles[provider_video].extend(provider_subtitles)
|
||||
return subtitles
|
||||
#: Provider configuration
|
||||
self.provider_configs = provider_configs or {}
|
||||
|
||||
#: Initialized providers
|
||||
self.initialized_providers = {}
|
||||
|
||||
def download_subtitles(subtitles, provider_configs=None, single=False):
|
||||
"""Download subtitles
|
||||
#: Discarded providers
|
||||
self.discarded_providers = set()
|
||||
|
||||
:param subtitles: subtitles to download
|
||||
:type subtitles: dict of :class:`~subliminal.video.Video` => [:class:`~subliminal.subtitle.Subtitle`]
|
||||
:param provider_configs: configuration for providers
|
||||
:type provider_configs: dict of provider name => provider constructor kwargs
|
||||
:param bool single: download with .srt extension if `True`, add language identifier otherwise
|
||||
#: Dedicated :data:`provider_manager` as :class:`~stevedore.enabled.EnabledExtensionManager`
|
||||
self.manager = EnabledExtensionManager(provider_manager.namespace, lambda e: e.name in self.providers)
|
||||
|
||||
"""
|
||||
provider_configs = provider_configs or {}
|
||||
discarded_providers = set()
|
||||
providers_by_name = {ep.name: ep.load() for ep in pkg_resources.iter_entry_points(PROVIDERS_ENTRY_POINT)}
|
||||
initialized_providers = {}
|
||||
try:
|
||||
for video, video_subtitles in subtitles.items():
|
||||
languages = {subtitle.language for subtitle in video_subtitles}
|
||||
downloaded_languages = set()
|
||||
for subtitle in video_subtitles:
|
||||
# filter
|
||||
if subtitle.language in downloaded_languages:
|
||||
continue
|
||||
if subtitle.provider_name in discarded_providers:
|
||||
logger.debug('Skipping subtitle from discarded provider %r', subtitle.provider_name)
|
||||
continue
|
||||
def __enter__(self):
|
||||
return self
|
||||
|
||||
# initialize provider
|
||||
if subtitle.provider_name in initialized_providers:
|
||||
provider = initialized_providers[subtitle.provider_name]
|
||||
else:
|
||||
provider = providers_by_name[subtitle.provider_name](**provider_configs.get(subtitle.provider_name, {}))
|
||||
try:
|
||||
provider.initialize()
|
||||
except ProviderNotAvailable:
|
||||
logger.warning('Provider %r is not available, discarding it', subtitle.provider_name)
|
||||
discarded_providers.add(subtitle.provider_name)
|
||||
continue
|
||||
initialized_providers[subtitle.provider_name] = provider
|
||||
def __exit__(self, exc_type, exc_value, traceback):
|
||||
self.terminate()
|
||||
|
||||
# download subtitles
|
||||
subtitle_path = get_subtitle_path(video.name, None if single else subtitle.language)
|
||||
logger.info('Downloading subtitle %r into %r', subtitle, subtitle_path)
|
||||
try:
|
||||
subtitle_text = provider.download_subtitle(subtitle)
|
||||
except ProviderNotAvailable:
|
||||
logger.warning('Provider %r is not available, discarding it', subtitle.provider_name)
|
||||
discarded_providers.add(subtitle.provider_name)
|
||||
continue
|
||||
except InvalidSubtitle:
|
||||
logger.info('Invalid subtitle, skipping it')
|
||||
continue
|
||||
except:
|
||||
logger.exception('Unexpected error in provider %r', subtitle.provider_name)
|
||||
continue
|
||||
with io.open(subtitle_path, 'w') as f:
|
||||
f.write(subtitle_text)
|
||||
downloaded_languages.add(subtitle.language)
|
||||
if single or downloaded_languages == languages:
|
||||
break
|
||||
finally: # terminate providers
|
||||
for provider in initialized_providers.values():
|
||||
provider.terminate()
|
||||
|
||||
|
||||
def download_best_subtitles(videos, languages, providers=None, provider_configs=None, single=False, min_score=0,
|
||||
hearing_impaired=False):
|
||||
"""Download the best subtitles for `videos` with the given `languages` using the specified `providers`
|
||||
|
||||
:param videos: videos to download subtitles for
|
||||
:type videos: set of :class:`~subliminal.video.Video`
|
||||
:param languages: languages of subtitles to download
|
||||
:type languages: set of :class:`babelfish.Language`
|
||||
:param providers: providers to use for the search, if not all
|
||||
:type providers: list of string or None
|
||||
:param provider_configs: configuration for providers
|
||||
:type provider_configs: dict of provider name => provider constructor kwargs
|
||||
:param bool single: download with .srt extension if `True`, add language identifier otherwise
|
||||
:param int min_score: minimum score for subtitles to download
|
||||
:param bool hearing_impaired: download hearing impaired subtitles
|
||||
|
||||
"""
|
||||
provider_configs = provider_configs or {}
|
||||
discarded_providers = set()
|
||||
downloaded_subtitles = collections.defaultdict(list)
|
||||
# filter videos
|
||||
videos = [v for v in videos if v.subtitle_languages != languages]
|
||||
if not videos:
|
||||
logger.info('No video to download subtitles for with languages %r', languages)
|
||||
return downloaded_subtitles
|
||||
# filter and initialize providers
|
||||
initialized_providers = {}
|
||||
for provider_entry_point in pkg_resources.iter_entry_points(PROVIDERS_ENTRY_POINT):
|
||||
if providers is not None and provider_entry_point.name not in providers:
|
||||
logger.debug('Skipping provider %r: not in the list', provider_entry_point.name)
|
||||
continue
|
||||
Provider = provider_entry_point.load()
|
||||
if not Provider.languages & languages:
|
||||
logger.debug('Skipping provider %r: no language to search for', provider_entry_point.name)
|
||||
continue
|
||||
if not [v for v in videos if Provider.check(v)]:
|
||||
logger.debug('Skipping provider %r: no video to search for', provider_entry_point.name)
|
||||
continue
|
||||
provider = Provider(**provider_configs.get(provider_entry_point.name, {}))
|
||||
try:
|
||||
def __getitem__(self, name):
|
||||
if name not in self.initialized_providers:
|
||||
logger.info('Initializing provider %s', name)
|
||||
provider = self.manager[name].plugin(**self.provider_configs.get(name, {}))
|
||||
provider.initialize()
|
||||
except ProviderNotAvailable:
|
||||
logger.warning('Provider %r is not available, discarding it', provider_entry_point.name)
|
||||
self.initialized_providers[name] = provider
|
||||
|
||||
return self.initialized_providers[name]
|
||||
|
||||
def __delitem__(self, name):
|
||||
if name not in self.initialized_providers:
|
||||
raise KeyError(name)
|
||||
|
||||
try:
|
||||
logger.info('Terminating provider %s', name)
|
||||
self.initialized_providers[name].terminate()
|
||||
except (requests.Timeout, socket.timeout):
|
||||
logger.error('Provider %r timed out, improperly terminated', name)
|
||||
except:
|
||||
logger.exception('Provider %r terminated unexpectedly', name)
|
||||
|
||||
del self.initialized_providers[name]
|
||||
|
||||
def __iter__(self):
|
||||
return iter(self.initialized_providers)
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
"""List subtitles.
|
||||
|
||||
:param video: video to list subtitles for.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:param languages: languages to search for.
|
||||
:type languages: set of :class:`~babelfish.language.Language`
|
||||
:return: found subtitles.
|
||||
:rtype: list of :class:`~subliminal.subtitle.Subtitle`
|
||||
|
||||
"""
|
||||
subtitles = []
|
||||
|
||||
for name in self.providers:
|
||||
# check discarded providers
|
||||
if name in self.discarded_providers:
|
||||
logger.debug('Skipping discarded provider %r', name)
|
||||
continue
|
||||
|
||||
# check video validity
|
||||
if not self.manager[name].plugin.check(video):
|
||||
logger.info('Skipping provider %r: not a valid video', name)
|
||||
continue
|
||||
|
||||
# check supported languages
|
||||
provider_languages = self.manager[name].plugin.languages & languages
|
||||
if not provider_languages:
|
||||
logger.info('Skipping provider %r: no language to search for', name)
|
||||
continue
|
||||
|
||||
# list subtitles
|
||||
logger.info('Listing subtitles with provider %r and languages %r', name, provider_languages)
|
||||
try:
|
||||
provider_subtitles = self[name].list_subtitles(video, provider_languages)
|
||||
except (requests.Timeout, socket.timeout):
|
||||
logger.error('Provider %r timed out, discarding it', name)
|
||||
self.discarded_providers.add(name)
|
||||
continue
|
||||
except:
|
||||
logger.exception('Unexpected error in provider %r, discarding it', name)
|
||||
self.discarded_providers.add(name)
|
||||
continue
|
||||
subtitles.extend(provider_subtitles)
|
||||
|
||||
return subtitles
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
"""Download `subtitle`'s :attr:`~subliminal.subtitle.Subtitle.content`.
|
||||
|
||||
:param subtitle: subtitle to download.
|
||||
:type subtitle: :class:`~subliminal.subtitle.Subtitle`
|
||||
:return: `True` if the subtitle has been successfully downloaded, `False` otherwise.
|
||||
:rtype: bool
|
||||
|
||||
"""
|
||||
# check discarded providers
|
||||
if subtitle.provider_name in self.discarded_providers:
|
||||
logger.warning('Provider %r is discarded', subtitle.provider_name)
|
||||
return False
|
||||
|
||||
logger.info('Downloading subtitle %r', subtitle)
|
||||
try:
|
||||
self[subtitle.provider_name].download_subtitle(subtitle)
|
||||
except (requests.Timeout, socket.timeout):
|
||||
logger.error('Provider %r timed out, discarding it', subtitle.provider_name)
|
||||
self.discarded_providers.add(subtitle.provider_name)
|
||||
return False
|
||||
except:
|
||||
logger.exception('Unexpected error in provider %r, discarding it', subtitle.provider_name)
|
||||
self.discarded_providers.add(subtitle.provider_name)
|
||||
return False
|
||||
|
||||
# check subtitle validity
|
||||
if not subtitle.is_valid():
|
||||
logger.error('Invalid subtitle')
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def download_best_subtitles(self, subtitles, video, languages, min_score=0, hearing_impaired=False, only_one=False,
|
||||
scores=None):
|
||||
"""Download the best matching subtitles.
|
||||
|
||||
:param subtitles: the subtitles to use.
|
||||
:type subtitles: list of :class:`~subliminal.subtitle.Subtitle`
|
||||
:param video: video to download subtitles for.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:param languages: languages to download.
|
||||
:type languages: set of :class:`~babelfish.language.Language`
|
||||
:param int min_score: minimum score for a subtitle to be downloaded.
|
||||
:param bool hearing_impaired: hearing impaired preference.
|
||||
:param bool only_one: download only one subtitle, not one per language.
|
||||
:param dict scores: scores to use, if `None`, the :attr:`~subliminal.video.Video.scores` from the video are
|
||||
used.
|
||||
:return: downloaded subtitles.
|
||||
:rtype: list of :class:`~subliminal.subtitle.Subtitle`
|
||||
|
||||
"""
|
||||
# sort subtitles by score
|
||||
scored_subtitles = sorted([(s, compute_score(s.get_matches(video, hearing_impaired=hearing_impaired), video,
|
||||
scores=scores))
|
||||
for s in subtitles], key=operator.itemgetter(1), reverse=True)
|
||||
|
||||
# download best subtitles, falling back on the next on error
|
||||
downloaded_subtitles = []
|
||||
for subtitle, score in scored_subtitles:
|
||||
# check score
|
||||
if score < min_score:
|
||||
logger.info('Score %d is below min_score (%d)', score, min_score)
|
||||
break
|
||||
|
||||
# check downloaded languages
|
||||
if subtitle.language in set(s.language for s in downloaded_subtitles):
|
||||
logger.debug('Skipping subtitle: %r already downloaded', subtitle.language)
|
||||
continue
|
||||
|
||||
# download
|
||||
logger.info('Downloading subtitle %r with score %d', subtitle, score)
|
||||
if self.download_subtitle(subtitle):
|
||||
downloaded_subtitles.append(subtitle)
|
||||
|
||||
# stop when all languages are downloaded
|
||||
if set(s.language for s in downloaded_subtitles) == languages:
|
||||
logger.debug('All languages downloaded')
|
||||
break
|
||||
|
||||
# stop if only one subtitle is requested
|
||||
if only_one:
|
||||
logger.debug('Only one subtitle downloaded')
|
||||
break
|
||||
|
||||
return downloaded_subtitles
|
||||
|
||||
def terminate(self):
|
||||
"""Terminate all the :attr:`initialized_providers`."""
|
||||
logger.debug('Terminating initialized providers')
|
||||
for name in list(self.initialized_providers):
|
||||
del self[name]
|
||||
|
||||
|
||||
def check_video(video, languages=None, age=None, undefined=False):
|
||||
"""Perform some checks on the `video`.
|
||||
|
||||
All the checks are optional. Return `False` if any of this check fails:
|
||||
|
||||
* `languages` already exist in `video`'s :attr:`~subliminal.video.Video.subtitle_languages`.
|
||||
* `video` is older than `age`.
|
||||
* `video` has an `undefined` language in :attr:`~subliminal.video.Video.subtitle_languages`.
|
||||
|
||||
:param video: video to check.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:param languages: desired languages.
|
||||
:type languages: set of :class:`~babelfish.language.Language`
|
||||
:param datetime.timedelta age: maximum age of the video.
|
||||
:param bool undefined: fail on existing undefined language.
|
||||
:return: `True` if the video passes the checks, `False` otherwise.
|
||||
:rtype: bool
|
||||
|
||||
"""
|
||||
# language test
|
||||
if languages and not (languages - video.subtitle_languages):
|
||||
logger.debug('All languages %r exist', languages)
|
||||
return False
|
||||
|
||||
# age test
|
||||
if age and video.age > age:
|
||||
logger.debug('Video is older than %r', age)
|
||||
return False
|
||||
|
||||
# undefined test
|
||||
if undefined and Language('und') in video.subtitle_languages:
|
||||
logger.debug('Undefined language found')
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def list_subtitles(videos, languages, **kwargs):
|
||||
"""List subtitles.
|
||||
|
||||
The `videos` must pass the `languages` check of :func:`check_video`.
|
||||
|
||||
All other parameters are passed onwards to the :class:`ProviderPool` constructor.
|
||||
|
||||
:param videos: videos to list subtitles for.
|
||||
:type videos: set of :class:`~subliminal.video.Video`
|
||||
:param languages: languages to search for.
|
||||
:type languages: set of :class:`~babelfish.language.Language`
|
||||
:return: found subtitles per video.
|
||||
:rtype: dict of :class:`~subliminal.video.Video` to list of :class:`~subliminal.subtitle.Subtitle`
|
||||
|
||||
"""
|
||||
listed_subtitles = defaultdict(list)
|
||||
|
||||
# check videos
|
||||
checked_videos = []
|
||||
for video in videos:
|
||||
if not check_video(video, languages=languages):
|
||||
logger.info('Skipping video %r', video)
|
||||
continue
|
||||
initialized_providers[provider_entry_point.name] = provider
|
||||
try:
|
||||
for video in videos:
|
||||
# search for subtitles
|
||||
subtitles = []
|
||||
for provider_name, provider in initialized_providers.items():
|
||||
if provider.check(video):
|
||||
if provider_name in discarded_providers:
|
||||
logger.debug('Skipping discarded provider %r', provider_name)
|
||||
continue
|
||||
provider_languages = provider.languages & languages
|
||||
logger.info('Listing subtitles with provider %r for video %r with languages %r',
|
||||
provider_name, video, provider_languages)
|
||||
try:
|
||||
provider_subtitles = provider.list_subtitles(video, provider_languages)
|
||||
except ProviderNotAvailable:
|
||||
logger.warning('Provider %r is not available, discarding it', provider_name)
|
||||
discarded_providers.add(provider_name)
|
||||
continue
|
||||
except:
|
||||
logger.exception('Unexpected error in provider %r', provider_name)
|
||||
continue
|
||||
logger.info('Found %d subtitles', len(provider_subtitles))
|
||||
subtitles.extend(provider_subtitles)
|
||||
checked_videos.append(video)
|
||||
|
||||
# find the best subtitles and download them
|
||||
downloaded_languages = set()
|
||||
for subtitle, score in sorted([(s, s.compute_score(video)) for s in subtitles],
|
||||
key=operator.itemgetter(1), reverse=True):
|
||||
# filter
|
||||
if subtitle.provider_name in discarded_providers:
|
||||
logger.debug('Skipping subtitle from discarded provider %r', subtitle.provider_name)
|
||||
continue
|
||||
if subtitle.hearing_impaired != hearing_impaired:
|
||||
logger.debug('Skipping subtitle: hearing impaired != %r', hearing_impaired)
|
||||
continue
|
||||
if score < min_score:
|
||||
logger.debug('Skipping subtitle: score < %d', min_score)
|
||||
continue
|
||||
if subtitle.language in downloaded_languages:
|
||||
logger.debug('Skipping subtitle: %r already downloaded', subtitle.language)
|
||||
continue
|
||||
# return immediatly if no video passed the checks
|
||||
if not checked_videos:
|
||||
return listed_subtitles
|
||||
|
||||
# list subtitles
|
||||
with ProviderPool(**kwargs) as pool:
|
||||
for video in checked_videos:
|
||||
logger.info('Listing subtitles for %r', video)
|
||||
subtitles = pool.list_subtitles(video, languages - video.subtitle_languages)
|
||||
listed_subtitles[video].extend(subtitles)
|
||||
logger.info('Found %d subtitle(s)', len(subtitles))
|
||||
|
||||
return listed_subtitles
|
||||
|
||||
|
||||
def download_subtitles(subtitles, **kwargs):
|
||||
"""Download :attr:`~subliminal.subtitle.Subtitle.content` of `subtitles`.
|
||||
|
||||
All other parameters are passed onwards to the :class:`ProviderPool` constructor.
|
||||
|
||||
:param subtitles: subtitles to download.
|
||||
:type subtitles: list of :class:`~subliminal.subtitle.Subtitle`
|
||||
|
||||
"""
|
||||
with ProviderPool(**kwargs) as pool:
|
||||
for subtitle in subtitles:
|
||||
logger.info('Downloading subtitle %r', subtitle)
|
||||
pool.download_subtitle(subtitle)
|
||||
|
||||
|
||||
def download_best_subtitles(videos, languages, min_score=0, hearing_impaired=False, only_one=False, scores=None,
|
||||
**kwargs):
|
||||
"""List and download the best matching subtitles.
|
||||
|
||||
The `videos` must pass the `languages` and `undefined` (`only_one`) checks of :func:`check_video`.
|
||||
|
||||
All other parameters are passed onwards to the :class:`ProviderPool` constructor.
|
||||
|
||||
:param videos: videos to download subtitles for.
|
||||
:type videos: set of :class:`~subliminal.video.Video`
|
||||
:param languages: languages to download.
|
||||
:type languages: set of :class:`~babelfish.language.Language`
|
||||
:param int min_score: minimum score for a subtitle to be downloaded.
|
||||
:param bool hearing_impaired: hearing impaired preference.
|
||||
:param bool only_one: download only one subtitle, not one per language.
|
||||
:param dict scores: scores to use, if `None`, the :attr:`~subliminal.video.Video.scores` from the video are used.
|
||||
:return: downloaded subtitles per video.
|
||||
:rtype: dict of :class:`~subliminal.video.Video` to list of :class:`~subliminal.subtitle.Subtitle`
|
||||
|
||||
"""
|
||||
downloaded_subtitles = defaultdict(list)
|
||||
|
||||
# check videos
|
||||
checked_videos = []
|
||||
for video in videos:
|
||||
if not check_video(video, languages=languages, undefined=only_one):
|
||||
logger.info('Skipping video %r', video)
|
||||
continue
|
||||
checked_videos.append(video)
|
||||
|
||||
# return immediatly if no video passed the checks
|
||||
if not checked_videos:
|
||||
return downloaded_subtitles
|
||||
|
||||
# download best subtitles
|
||||
with ProviderPool(**kwargs) as pool:
|
||||
for video in checked_videos:
|
||||
logger.info('Downloading best subtitles for %r', video)
|
||||
subtitles = pool.download_best_subtitles(pool.list_subtitles(video, languages - video.subtitle_languages),
|
||||
video, languages, min_score=min_score,
|
||||
hearing_impaired=hearing_impaired, only_one=only_one,
|
||||
scores=scores)
|
||||
logger.info('Downloaded %d subtitle(s)', len(subtitles))
|
||||
downloaded_subtitles[video].extend(subtitles)
|
||||
|
||||
# download
|
||||
provider = initialized_providers[subtitle.provider_name]
|
||||
subtitle_path = get_subtitle_path(video.name, None if single else subtitle.language)
|
||||
logger.info('Downloading subtitle %r with score %d into %r', subtitle, score, subtitle_path)
|
||||
try:
|
||||
subtitle_text = provider.download_subtitle(subtitle)
|
||||
downloaded_subtitles[video].append(subtitle)
|
||||
except ProviderNotAvailable:
|
||||
logger.warning('Provider %r is not available, discarding it', subtitle.provider_name)
|
||||
discarded_providers.add(subtitle.provider_name)
|
||||
continue
|
||||
except InvalidSubtitle:
|
||||
logger.info('Invalid subtitle, skipping it')
|
||||
continue
|
||||
except:
|
||||
logger.exception('Unexpected error in provider %r', subtitle.provider_name)
|
||||
continue
|
||||
with io.open(subtitle_path, 'w') as f:
|
||||
f.write(subtitle_text)
|
||||
downloaded_languages.add(subtitle.language)
|
||||
if single or downloaded_languages == languages:
|
||||
logger.debug('All languages downloaded')
|
||||
break
|
||||
finally: # terminate providers
|
||||
for provider in initialized_providers.values():
|
||||
provider.terminate()
|
||||
return downloaded_subtitles
|
||||
|
||||
|
||||
def save_subtitles(video, subtitles, single=False, directory=None, encoding=None):
|
||||
"""Save subtitles on filesystem.
|
||||
|
||||
Subtitles are saved in the order of the list. If a subtitle with a language has already been saved, other subtitles
|
||||
with the same language are silently ignored.
|
||||
|
||||
The extension used is `.lang.srt` by default or `.srt` is `single` is `True`, with `lang` being the IETF code for
|
||||
the :attr:`~subliminal.subtitle.Subtitle.language` of the subtitle.
|
||||
|
||||
:param video: video of the subtitles.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:param subtitles: subtitles to save.
|
||||
:type subtitles: list of :class:`~subliminal.subtitle.Subtitle`
|
||||
:param bool single: save a single subtitle, default is to save one subtitle per language.
|
||||
:param str directory: path to directory where to save the subtitles, default is next to the video.
|
||||
:param str encoding: encoding in which to save the subtitles, default is to keep original encoding.
|
||||
:return: the saved subtitles
|
||||
:rtype: list of :class:`~subliminal.subtitle.Subtitle`
|
||||
|
||||
"""
|
||||
saved_subtitles = []
|
||||
for subtitle in subtitles:
|
||||
# check content
|
||||
if subtitle.content is None:
|
||||
logger.error('Skipping subtitle %r: no content', subtitle)
|
||||
continue
|
||||
|
||||
# check language
|
||||
if subtitle.language in set(s.language for s in saved_subtitles):
|
||||
logger.debug('Skipping subtitle %r: language already saved', subtitle)
|
||||
continue
|
||||
|
||||
# create subtitle path
|
||||
subtitle_path = get_subtitle_path(video.name, None if single else subtitle.language)
|
||||
if directory is not None:
|
||||
subtitle_path = os.path.join(directory, os.path.split(subtitle_path)[1])
|
||||
|
||||
# save content as is or in the specified encoding
|
||||
logger.info('Saving %r to %r', subtitle, subtitle_path)
|
||||
if encoding is None:
|
||||
with io.open(subtitle_path, 'wb') as f:
|
||||
f.write(subtitle.content)
|
||||
else:
|
||||
with io.open(subtitle_path, 'w', encoding=encoding) as f:
|
||||
f.write(subtitle.text)
|
||||
saved_subtitles.append(subtitle)
|
||||
|
||||
# check single
|
||||
if single:
|
||||
break
|
||||
|
||||
return saved_subtitles
|
||||
|
||||
+14
-3
@@ -1,6 +1,17 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import dogpile.cache
|
||||
import datetime
|
||||
|
||||
from dogpile.cache import make_region
|
||||
|
||||
|
||||
#: The subliminal's dogpile.cache region
|
||||
region = dogpile.cache.make_region()
|
||||
#: Subliminal's cache version
|
||||
CACHE_VERSION = 1
|
||||
|
||||
#: Expiration time for show caching
|
||||
SHOW_EXPIRATION_TIME = datetime.timedelta(weeks=3).total_seconds()
|
||||
|
||||
#: Expiration time for episode caching
|
||||
EPISODE_EXPIRATION_TIME = datetime.timedelta(days=3).total_seconds()
|
||||
|
||||
|
||||
region = make_region()
|
||||
|
||||
+403
-68
@@ -1,91 +1,426 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals, print_function
|
||||
import argparse
|
||||
import datetime
|
||||
"""
|
||||
Subliminal uses `click <http://click.pocoo.org>`_ to provide a powerful :abbr:`CLI (command-line interface)`.
|
||||
|
||||
"""
|
||||
from __future__ import division
|
||||
from collections import defaultdict
|
||||
from datetime import timedelta
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import babelfish
|
||||
import guessit
|
||||
import pkg_resources
|
||||
from subliminal import (__version__, PROVIDERS_ENTRY_POINT, cache_region, Video, Episode, Movie, scan_videos,
|
||||
download_best_subtitles)
|
||||
|
||||
from babelfish import Error as BabelfishError, Language
|
||||
import click
|
||||
from dogpile.cache.backends.file import AbstractFileLock
|
||||
from dogpile.core import ReadWriteMutex
|
||||
from six.moves import configparser
|
||||
|
||||
from subliminal import (Episode, Movie, ProviderPool, Video, __version__, check_video, provider_manager, region,
|
||||
save_subtitles, scan_video, scan_videos)
|
||||
from subliminal.subtitle import compute_score
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
DEFAULT_CACHE_FILE = os.path.join('~', '.config', 'subliminal.cache.dbm')
|
||||
class MutexLock(AbstractFileLock):
|
||||
""":class:`MutexLock` is a thread-based rw lock based on :class:`dogpile.core.ReadWriteMutex`."""
|
||||
def __init__(self, filename):
|
||||
self.mutex = ReadWriteMutex()
|
||||
|
||||
def acquire_read_lock(self, wait):
|
||||
ret = self.mutex.acquire_read_lock(wait)
|
||||
return wait or ret
|
||||
|
||||
def acquire_write_lock(self, wait):
|
||||
ret = self.mutex.acquire_write_lock(wait)
|
||||
return wait or ret
|
||||
|
||||
def release_read_lock(self):
|
||||
return self.mutex.release_read_lock()
|
||||
|
||||
def release_write_lock(self):
|
||||
return self.mutex.release_write_lock()
|
||||
|
||||
|
||||
def subliminal_parser():
|
||||
parser = argparse.ArgumentParser(description='Subtitles, faster than your thoughts')
|
||||
parser.add_argument('-l', '--languages', nargs='+', metavar='LANGUAGE', help='wanted languages as alpha2 code (ISO-639-1)')
|
||||
parser.add_argument('-p', '--providers', nargs='+', metavar='PROVIDER', help='providers to use from %s (default: all)' % ', '.join(ep.name for ep in pkg_resources.iter_entry_points(PROVIDERS_ENTRY_POINT)))
|
||||
parser.add_argument('-m', '--min-score', type=int, help='minimum score for subtitles. 0-%d for episodes, 0-%d for movies' % (Episode.scores['hash'], Movie.scores['hash']))
|
||||
parser.add_argument('-s', '--single', action='store_true', help='download without language code in subtitle\'s filename i.e. .srt only')
|
||||
parser.add_argument('-f', '--force', action='store_true', help='overwrite existing subtitles')
|
||||
parser.add_argument('-c', '--cache-file', default=DEFAULT_CACHE_FILE, help='cache file (default: %(default)s)')
|
||||
parser.add_argument('-a', '--age', help='download subtitles for videos newer than AGE e.g. 12h, 1w2d')
|
||||
parser.add_argument('--hearing-impaired', action='store_true', help='download hearing impaired subtitles')
|
||||
group_verbosity = parser.add_mutually_exclusive_group()
|
||||
group_verbosity.add_argument('-q', '--quiet', action='store_true', help='disable output')
|
||||
group_verbosity.add_argument('-v', '--verbose', action='store_true', help='verbose output')
|
||||
parser.add_argument('--version', action='version', version=__version__)
|
||||
parser.add_argument('paths', nargs='+', metavar='PATH', help='path to video file or folder')
|
||||
return parser
|
||||
class Config(object):
|
||||
"""A :class:`~configparser.SafeConfigParser` wrapper to store configuration.
|
||||
|
||||
Interaction with the configuration is done with the properties.
|
||||
|
||||
:param str path: path to the configuration file.
|
||||
|
||||
"""
|
||||
def __init__(self, path):
|
||||
#: Path to the configuration file
|
||||
self.path = path
|
||||
|
||||
#: The underlying configuration object
|
||||
self.config = configparser.SafeConfigParser()
|
||||
self.config.add_section('general')
|
||||
self.config.set('general', 'languages', json.dumps(['en']))
|
||||
self.config.set('general', 'providers', json.dumps(sorted([p.name for p in provider_manager])))
|
||||
self.config.set('general', 'single', str(0))
|
||||
self.config.set('general', 'embedded_subtitles', str(1))
|
||||
self.config.set('general', 'age', str(int(timedelta(weeks=2).total_seconds())))
|
||||
self.config.set('general', 'hearing_impaired', str(1))
|
||||
self.config.set('general', 'min_score', str(0))
|
||||
|
||||
def read(self):
|
||||
"""Read the configuration from :attr:`path`"""
|
||||
self.config.read(self.path)
|
||||
|
||||
def write(self):
|
||||
"""Write the configuration to :attr:`path`"""
|
||||
with open(self.path, 'w') as f:
|
||||
self.config.write(f)
|
||||
|
||||
@property
|
||||
def languages(self):
|
||||
return {Language.fromietf(l) for l in json.loads(self.config.get('general', 'languages'))}
|
||||
|
||||
@languages.setter
|
||||
def languages(self, value):
|
||||
self.config.set('general', 'languages', json.dumps(sorted([str(l) for l in value])))
|
||||
|
||||
@property
|
||||
def providers(self):
|
||||
return json.loads(self.config.get('general', 'providers'))
|
||||
|
||||
@providers.setter
|
||||
def providers(self, value):
|
||||
self.config.set('general', 'providers', json.dumps(sorted([p.lower() for p in value])))
|
||||
|
||||
@property
|
||||
def single(self):
|
||||
return self.config.getboolean('general', 'single')
|
||||
|
||||
@single.setter
|
||||
def single(self, value):
|
||||
self.config.set('general', 'single', str(int(value)))
|
||||
|
||||
@property
|
||||
def embedded_subtitles(self):
|
||||
return self.config.getboolean('general', 'embedded_subtitles')
|
||||
|
||||
@embedded_subtitles.setter
|
||||
def embedded_subtitles(self, value):
|
||||
self.config.set('general', 'embedded_subtitles', str(int(value)))
|
||||
|
||||
@property
|
||||
def age(self):
|
||||
return timedelta(seconds=self.config.getint('general', 'age'))
|
||||
|
||||
@age.setter
|
||||
def age(self, value):
|
||||
self.config.set('general', 'age', str(int(value.total_seconds())))
|
||||
|
||||
@property
|
||||
def hearing_impaired(self):
|
||||
return self.config.getboolean('general', 'hearing_impaired')
|
||||
|
||||
@hearing_impaired.setter
|
||||
def hearing_impaired(self, value):
|
||||
self.config.set('general', 'hearing_impaired', str(int(value)))
|
||||
|
||||
@property
|
||||
def min_score(self):
|
||||
return self.config.getfloat('general', 'min_score')
|
||||
|
||||
@min_score.setter
|
||||
def min_score(self, value):
|
||||
self.config.set('general', 'min_score', str(value))
|
||||
|
||||
@property
|
||||
def provider_configs(self):
|
||||
rv = {}
|
||||
for provider in provider_manager:
|
||||
if self.config.has_section(provider.name):
|
||||
rv[provider.name] = {k: v for k, v in self.config.items(provider.name)}
|
||||
return rv
|
||||
|
||||
@provider_configs.setter
|
||||
def provider_configs(self, value):
|
||||
# loop over provider configurations
|
||||
for provider, config in value.items():
|
||||
# create the corresponding section if necessary
|
||||
if not self.config.has_section(provider):
|
||||
self.config.add_section(provider)
|
||||
|
||||
# add config options
|
||||
for k, v in config.items():
|
||||
self.config.set(provider, k, v)
|
||||
|
||||
|
||||
def subliminal():
|
||||
parser = subliminal_parser()
|
||||
args = parser.parse_args()
|
||||
class LanguageParamType(click.ParamType):
|
||||
""":class:`~click.ParamType` for languages that returns a :class:`~babelfish.language.Language`"""
|
||||
name = 'language'
|
||||
|
||||
# parse paths
|
||||
try:
|
||||
args.paths = [p.decode('utf-8') for p in args.paths]
|
||||
except UnicodeDecodeError:
|
||||
parser.error('argument paths: encodings is not utf-8: %r' % args.paths)
|
||||
def convert(self, value, param, ctx):
|
||||
try:
|
||||
return Language.fromietf(value)
|
||||
except BabelfishError:
|
||||
self.fail('%s is not a valid language' % value)
|
||||
|
||||
# parse languages
|
||||
try:
|
||||
args.languages = {babelfish.Language.fromalpha2(l) for l in args.languages}
|
||||
except babelfish.Error:
|
||||
parser.error('argument -l/--languages: codes are not ISO-639-1: %r' % args.languages)
|
||||
LANGUAGE = LanguageParamType()
|
||||
|
||||
# parse age
|
||||
if args.age is not None:
|
||||
match = re.match(r'^(?:(?P<weeks>\d+?)w)?(?:(?P<days>\d+?)d)?(?:(?P<hours>\d+?)h)?$', args.age)
|
||||
|
||||
class AgeParamType(click.ParamType):
|
||||
""":class:`~click.ParamType` for age strings that returns a :class:`~datetime.timedelta`
|
||||
|
||||
An age string is in the form `number + identifier` with possible identifiers:
|
||||
|
||||
* ``w`` for weeks
|
||||
* ``d`` for days
|
||||
* ``h`` for hours
|
||||
|
||||
The form can be specified multiple times but only with that idenfier ordering. For example:
|
||||
|
||||
* ``1w2d4h`` for 1 week, 2 days and 4 hours
|
||||
* ``2w`` for 2 weeks
|
||||
* ``3w6h`` for 3 weeks and 6 hours
|
||||
|
||||
"""
|
||||
name = 'age'
|
||||
|
||||
def convert(self, value, param, ctx):
|
||||
match = re.match(r'^(?:(?P<weeks>\d+?)w)?(?:(?P<days>\d+?)d)?(?:(?P<hours>\d+?)h)?$', value)
|
||||
if not match:
|
||||
parser.error('argument -a/--age: invalid age: %r' % args.age)
|
||||
args.age = datetime.timedelta(**match.groupdict())
|
||||
self.fail('%s is not a valid age' % value)
|
||||
|
||||
# setup verbosity
|
||||
if args.verbose:
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
elif not args.quiet:
|
||||
logging.basicConfig(level=logging.WARN)
|
||||
return timedelta(**{k: int(v) for k, v in match.groupdict(0).items()})
|
||||
|
||||
AGE = AgeParamType()
|
||||
|
||||
PROVIDER = click.Choice(sorted(provider_manager.names()))
|
||||
|
||||
app_dir = click.get_app_dir('subliminal')
|
||||
cache_file = 'subliminal.dbm'
|
||||
config_file = 'config.ini'
|
||||
|
||||
|
||||
@click.group(context_settings={'max_content_width': 100}, epilog='Suggestions and bug reports are greatly appreciated: '
|
||||
'https://github.com/Diaoul/subliminal/')
|
||||
@click.option('--addic7ed', type=click.STRING, nargs=2, metavar='USERNAME PASSWORD', help='Addic7ed configuration.')
|
||||
@click.option('--opensubtitles', type=click.STRING, nargs=2, metavar='USERNAME PASSWORD',
|
||||
help='OpenSubtitles configuration.')
|
||||
@click.option('--subscenter', type=click.STRING, nargs=2, metavar='USERNAME PASSWORD', help='SubsCenter configuration.')
|
||||
@click.option('--cache-dir', type=click.Path(writable=True, resolve_path=True, file_okay=False), default=app_dir,
|
||||
show_default=True, expose_value=True, help='Path to the cache directory.')
|
||||
@click.option('--debug', is_flag=True, help='Print useful information for debugging subliminal and for reporting bugs.')
|
||||
@click.version_option(__version__)
|
||||
@click.pass_context
|
||||
def subliminal(ctx, addic7ed, opensubtitles, subscenter, cache_dir, debug):
|
||||
"""Subtitles, faster than your thoughts."""
|
||||
# create cache directory
|
||||
try:
|
||||
os.makedirs(cache_dir)
|
||||
except OSError:
|
||||
if not os.path.isdir(cache_dir):
|
||||
raise
|
||||
|
||||
# configure cache
|
||||
cache_region.configure('dogpile.cache.dbm', arguments={'filename': os.path.expanduser(args.cache_file)})
|
||||
region.configure('dogpile.cache.dbm', expiration_time=timedelta(days=30),
|
||||
arguments={'filename': os.path.join(cache_dir, cache_file), 'lock_factory': MutexLock})
|
||||
|
||||
# configure logging
|
||||
if debug:
|
||||
handler = logging.StreamHandler()
|
||||
handler.setFormatter(logging.Formatter(logging.BASIC_FORMAT))
|
||||
logging.getLogger('subliminal').addHandler(handler)
|
||||
logging.getLogger('subliminal').setLevel(logging.DEBUG)
|
||||
|
||||
# provider configs
|
||||
ctx.obj = {'provider_configs': {}}
|
||||
if addic7ed:
|
||||
ctx.obj['provider_configs']['addic7ed'] = {'username': addic7ed[0], 'password': addic7ed[1]}
|
||||
if opensubtitles:
|
||||
ctx.obj['provider_configs']['opensubtitles'] = {'username': opensubtitles[0], 'password': opensubtitles[1]}
|
||||
if subscenter:
|
||||
ctx.obj['provider_configs']['subscenter'] = {'username': subscenter[0], 'password': subscenter[1]}
|
||||
|
||||
|
||||
@subliminal.command()
|
||||
@click.option('--clear-subliminal', is_flag=True, help='Clear subliminal\'s cache. Use this ONLY if your cache is '
|
||||
'corrupted or if you experience issues.')
|
||||
@click.pass_context
|
||||
def cache(ctx, clear_subliminal):
|
||||
"""Cache management."""
|
||||
if clear_subliminal:
|
||||
os.remove(os.path.join(ctx.parent.params['cache_dir'], cache_file))
|
||||
click.echo('Subliminal\'s cache cleared.')
|
||||
else:
|
||||
click.echo('Nothing done.')
|
||||
|
||||
|
||||
@subliminal.command()
|
||||
@click.option('-l', '--language', type=LANGUAGE, required=True, multiple=True, help='Language as IETF code, '
|
||||
'e.g. en, pt-BR (can be used multiple times).')
|
||||
@click.option('-p', '--provider', type=PROVIDER, multiple=True, help='Provider to use (can be used multiple times).')
|
||||
@click.option('-a', '--age', type=AGE, help='Filter videos newer than AGE, e.g. 12h, 1w2d.')
|
||||
@click.option('-d', '--directory', type=click.STRING, metavar='DIR', help='Directory where to save subtitles, '
|
||||
'default is next to the video file.')
|
||||
@click.option('-e', '--encoding', type=click.STRING, metavar='ENC', help='Subtitle file encoding, default is to '
|
||||
'preserve original encoding.')
|
||||
@click.option('-s', '--single', is_flag=True, default=False, help='Save subtitle without language code in the file '
|
||||
'name, i.e. use .srt extension. Do not use this unless your media player requires it.')
|
||||
@click.option('-f', '--force', is_flag=True, default=False, help='Force download even if a subtitle already exist.')
|
||||
@click.option('-hi', '--hearing-impaired', is_flag=True, default=False, help='Prefer hearing impaired subtitles.')
|
||||
@click.option('-m', '--min-score', type=click.IntRange(0, 100), default=0, help='Minimum score for a subtitle '
|
||||
'to be downloaded (0 to 100).')
|
||||
@click.option('-v', '--verbose', count=True, help='Increase verbosity.')
|
||||
@click.argument('path', type=click.Path(), required=True, nargs=-1)
|
||||
@click.pass_obj
|
||||
def download(obj, provider, language, age, directory, encoding, single, force, hearing_impaired, min_score, verbose,
|
||||
path):
|
||||
"""Download best subtitles.
|
||||
|
||||
PATH can be an directory containing videos, a video file path or a video file name. It can be used multiple times.
|
||||
|
||||
If an existing subtitle is detected (external or embedded) in the correct language, the download is skipped for
|
||||
the associated video.
|
||||
|
||||
"""
|
||||
# process parameters
|
||||
language = set(language)
|
||||
|
||||
# scan videos
|
||||
videos = scan_videos([p for p in args.paths if os.path.exists(p)], subtitles=not args.force, age=args.age)
|
||||
videos = []
|
||||
ignored_videos = []
|
||||
errored_paths = []
|
||||
with click.progressbar(path, label='Collecting videos', item_show_func=lambda p: p or '') as bar:
|
||||
for p in bar:
|
||||
logger.debug('Collecting path %s', p)
|
||||
|
||||
# guess videos
|
||||
videos.extend([Video.fromguess(os.path.split(p)[1], guessit.guess_file_info(p, 'autodetect')) for p in args.paths
|
||||
if not os.path.exists(p)])
|
||||
# non-existing
|
||||
if not os.path.exists(p):
|
||||
try:
|
||||
video = Video.fromname(p)
|
||||
except:
|
||||
logger.exception('Unexpected error while collecting non-existing path %s', p)
|
||||
errored_paths.append(p)
|
||||
continue
|
||||
videos.append(video)
|
||||
continue
|
||||
|
||||
# directories
|
||||
if os.path.isdir(p):
|
||||
try:
|
||||
scanned_videos = scan_videos(p, subtitles=not force, embedded_subtitles=not force,
|
||||
subtitles_dir=directory)
|
||||
except:
|
||||
logger.exception('Unexpected error while collecting directory path %s', p)
|
||||
errored_paths.append(p)
|
||||
continue
|
||||
for video in scanned_videos:
|
||||
if check_video(video, languages=language, age=age, undefined=single):
|
||||
videos.append(video)
|
||||
else:
|
||||
ignored_videos.append(video)
|
||||
continue
|
||||
|
||||
# other inputs
|
||||
try:
|
||||
video = scan_video(p, subtitles=not force, embedded_subtitles=not force, subtitles_dir=directory)
|
||||
except:
|
||||
logger.exception('Unexpected error while collecting path %s', p)
|
||||
errored_paths.append(p)
|
||||
continue
|
||||
if check_video(video, languages=language, age=age, undefined=single):
|
||||
videos.append(video)
|
||||
else:
|
||||
ignored_videos.append(video)
|
||||
|
||||
# output errored paths
|
||||
if verbose > 0:
|
||||
for p in errored_paths:
|
||||
click.secho('%s errored' % p, fg='red')
|
||||
|
||||
# output ignored videos
|
||||
if verbose > 1:
|
||||
for video in ignored_videos:
|
||||
click.secho('%s ignored - subtitles: %s / age: %d day%s' % (
|
||||
os.path.split(video.name)[1],
|
||||
', '.join(str(s) for s in video.subtitle_languages) or 'none',
|
||||
video.age.days,
|
||||
's' if video.age.days > 1 else ''
|
||||
), fg='yellow')
|
||||
|
||||
# report collected videos
|
||||
click.echo('%s video%s collected / %s video%s ignored / %s error%s' % (
|
||||
click.style(str(len(videos)), bold=True, fg='green' if videos else None),
|
||||
's' if len(videos) > 1 else '',
|
||||
click.style(str(len(ignored_videos)), bold=True, fg='yellow' if ignored_videos else None),
|
||||
's' if len(ignored_videos) > 1 else '',
|
||||
click.style(str(len(errored_paths)), bold=True, fg='red' if errored_paths else None),
|
||||
's' if len(errored_paths) > 1 else '',
|
||||
))
|
||||
|
||||
# exit if no video collected
|
||||
if not videos:
|
||||
return
|
||||
|
||||
# download best subtitles
|
||||
subtitles = download_best_subtitles(videos, args.languages, providers=args.providers, provider_configs=None,
|
||||
single=args.single, min_score=args.min_score,
|
||||
hearing_impaired=args.hearing_impaired)
|
||||
downloaded_subtitles = defaultdict(list)
|
||||
with ProviderPool(providers=provider, provider_configs=obj['provider_configs']) as pool:
|
||||
with click.progressbar(videos, label='Downloading subtitles',
|
||||
item_show_func=lambda v: os.path.split(v.name)[1] if v is not None else '') as bar:
|
||||
for v in bar:
|
||||
subtitles = pool.download_best_subtitles(pool.list_subtitles(v, language - v.subtitle_languages),
|
||||
v, language, min_score=v.scores['hash'] * min_score / 100,
|
||||
hearing_impaired=hearing_impaired, only_one=single)
|
||||
downloaded_subtitles[v] = subtitles
|
||||
|
||||
# output result
|
||||
if not subtitles:
|
||||
if not args.quiet:
|
||||
sys.stderr.write('No subtitles downloaded\n')
|
||||
exit(1)
|
||||
if not args.quiet:
|
||||
subtitles_count = sum([len(s) for s in subtitles.values()])
|
||||
if subtitles_count == 1:
|
||||
print('%d subtitle downloaded' % subtitles_count)
|
||||
else:
|
||||
print('%d subtitles downloaded' % subtitles_count)
|
||||
# save subtitles
|
||||
total_subtitles = 0
|
||||
for v, subtitles in downloaded_subtitles.items():
|
||||
saved_subtitles = save_subtitles(v, subtitles, single=single, directory=directory, encoding=encoding)
|
||||
total_subtitles += len(saved_subtitles)
|
||||
|
||||
if verbose > 0:
|
||||
click.echo('%s subtitle%s downloaded for %s' % (click.style(str(len(saved_subtitles)), bold=True),
|
||||
's' if len(saved_subtitles) > 1 else '',
|
||||
os.path.split(v.name)[1]))
|
||||
|
||||
if verbose > 1:
|
||||
for s in saved_subtitles:
|
||||
matches = s.get_matches(v, hearing_impaired=hearing_impaired)
|
||||
score = compute_score(matches, v)
|
||||
|
||||
# score color
|
||||
score_color = None
|
||||
if isinstance(v, Movie):
|
||||
if score < v.scores['title']:
|
||||
score_color = 'red'
|
||||
elif score < v.scores['title'] + v.scores['year'] + v.scores['release_group']:
|
||||
score_color = 'yellow'
|
||||
else:
|
||||
score_color = 'green'
|
||||
elif isinstance(v, Episode):
|
||||
if score < v.scores['series'] + v.scores['season'] + v.scores['episode']:
|
||||
score_color = 'red'
|
||||
elif score < (v.scores['series'] + v.scores['season'] + v.scores['episode'] +
|
||||
v.scores['release_group']):
|
||||
score_color = 'yellow'
|
||||
else:
|
||||
score_color = 'green'
|
||||
|
||||
# scale score from 0 to 100 taking out preferences
|
||||
scaled_score = score
|
||||
if s.hearing_impaired == hearing_impaired:
|
||||
scaled_score -= v.scores['hearing_impaired']
|
||||
scaled_score *= 100 / v.scores['hash']
|
||||
|
||||
# echo some nice colored output
|
||||
click.echo(' - [{score}] {language} subtitle from {provider_name} (match on {matches})'.format(
|
||||
score=click.style('{:5.1f}'.format(scaled_score), fg=score_color, bold=score >= v.scores['hash']),
|
||||
language=s.language.name if s.language.country is None else '%s (%s)' % (s.language.name,
|
||||
s.language.country.name),
|
||||
provider_name=s.provider_name,
|
||||
matches=', '.join(sorted(matches, key=v.scores.get, reverse=True))
|
||||
))
|
||||
|
||||
if verbose == 0:
|
||||
click.echo('Downloaded %s subtitle%s' % (click.style(str(total_subtitles), bold=True),
|
||||
's' if total_subtitles > 1 else ''))
|
||||
|
||||
@@ -1,29 +1,32 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
from babelfish.converters.name import NameConverter
|
||||
from babelfish import LanguageReverseConverter, language_converters
|
||||
|
||||
|
||||
class Addic7edConverter(NameConverter):
|
||||
class Addic7edConverter(LanguageReverseConverter):
|
||||
def __init__(self):
|
||||
super(Addic7edConverter, self).__init__()
|
||||
self.from_addic7ed = {'Català': ('cat', None), 'Chinese (Simplified)': ('zho', None),
|
||||
'Chinese (Traditional)': ('zho', None), 'Euskera': ('eus', None),
|
||||
'Galego': ('glg', None), 'Greek': ('ell', None),
|
||||
'Malay': ('msa', None), 'Portuguese (Brazilian)': ('por', 'BR'),
|
||||
'Serbian (Cyrillic)': ('srp', None), 'Serbian (Latin)': ('srp', None),
|
||||
'Spanish (Latin America)': ('spa', None), 'Spanish (Spain)': ('spa', None)}
|
||||
self.to_addic7ed = {('cat', None): 'Català', ('zho', None): 'Chinese (Simplified)',
|
||||
('eus', None): 'Euskera', ('glg', None): 'Galego',
|
||||
('ell', None): 'Greek', ('msa', None): 'Malay',
|
||||
('por', 'BR'): 'Portuguese (Brazilian)', ('srp', None): 'Serbian (Cyrillic)'}
|
||||
self.codes |= set(self.from_addic7ed.keys())
|
||||
self.name_converter = language_converters['name']
|
||||
self.from_addic7ed = {u'Català': ('cat',), 'Chinese (Simplified)': ('zho',), 'Chinese (Traditional)': ('zho',),
|
||||
'Euskera': ('eus',), 'Galego': ('glg',), 'Greek': ('ell',), 'Malay': ('msa',),
|
||||
'Portuguese (Brazilian)': ('por', 'BR'), 'Serbian (Cyrillic)': ('srp', None, 'Cyrl'),
|
||||
'Serbian (Latin)': ('srp',), 'Spanish (Latin America)': ('spa',),
|
||||
'Spanish (Spain)': ('spa',)}
|
||||
self.to_addic7ed = {('cat',): 'Català', ('zho',): 'Chinese (Simplified)', ('eus',): 'Euskera',
|
||||
('glg',): 'Galego', ('ell',): 'Greek', ('msa',): 'Malay',
|
||||
('por', 'BR'): 'Portuguese (Brazilian)', ('srp', None, 'Cyrl'): 'Serbian (Cyrillic)'}
|
||||
self.codes = self.name_converter.codes | set(self.from_addic7ed.keys())
|
||||
|
||||
def convert(self, alpha3, country=None):
|
||||
def convert(self, alpha3, country=None, script=None):
|
||||
if (alpha3, country, script) in self.to_addic7ed:
|
||||
return self.to_addic7ed[(alpha3, country, script)]
|
||||
if (alpha3, country) in self.to_addic7ed:
|
||||
return self.to_addic7ed[(alpha3, country)]
|
||||
return super(Addic7edConverter, self).convert(alpha3, country)
|
||||
if (alpha3,) in self.to_addic7ed:
|
||||
return self.to_addic7ed[(alpha3,)]
|
||||
|
||||
return self.name_converter.convert(alpha3, country, script)
|
||||
|
||||
def reverse(self, addic7ed):
|
||||
if addic7ed in self.from_addic7ed:
|
||||
return self.from_addic7ed[addic7ed]
|
||||
return super(Addic7edConverter, self).reverse(addic7ed)
|
||||
|
||||
return self.name_converter.reverse(addic7ed)
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from babelfish import LanguageReverseConverter
|
||||
from subliminal.exceptions import ConfigurationError
|
||||
|
||||
|
||||
class TheSubDBConverter(LanguageReverseConverter):
|
||||
def __init__(self):
|
||||
self.from_thesubdb = {'en': ('eng',), 'es': ('spa',), 'fr': ('fra',), 'it': ('ita',), 'nl': ('nld',),
|
||||
'pl': ('pol',), 'pt': ('por', 'BR'), 'ro': ('ron',), 'sv': ('swe',), 'tr': ('tur',)}
|
||||
self.to_thesubdb = {v: k for k, v in self.from_thesubdb.items()}
|
||||
self.codes = set(self.from_thesubdb.keys())
|
||||
|
||||
def convert(self, alpha3, country=None, script=None):
|
||||
if (alpha3, country) in self.to_thesubdb:
|
||||
return self.to_thesubdb[(alpha3, country)]
|
||||
if (alpha3,) in self.to_thesubdb:
|
||||
return self.to_thesubdb[(alpha3,)]
|
||||
|
||||
raise ConfigurationError('Unsupported language for thesubdb: %s, %s, %s' % (alpha3, country, script))
|
||||
|
||||
def reverse(self, thesubdb):
|
||||
if thesubdb in self.from_thesubdb:
|
||||
return self.from_thesubdb[thesubdb]
|
||||
|
||||
raise ConfigurationError('Unsupported language code for thesubdb: %s' % thesubdb)
|
||||
@@ -1,22 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
from babelfish.converters.alpha2 import Alpha2Converter
|
||||
from babelfish import LanguageReverseConverter, language_converters
|
||||
|
||||
|
||||
class TVsubtitlesConverter(Alpha2Converter):
|
||||
class TVsubtitlesConverter(LanguageReverseConverter):
|
||||
def __init__(self):
|
||||
super(TVsubtitlesConverter, self).__init__()
|
||||
self.from_tvsubtitles = {'br': ('por', 'BR'), 'ua': ('ukr', None), 'gr': ('ell', None), 'cn': ('zho', None),
|
||||
'jp': ('jpn', None), 'cz': ('ces', None)}
|
||||
self.to_tvsubtitles = {v: k for k, v in self.from_tvsubtitles}
|
||||
self.codes |= set(self.from_tvsubtitles.keys())
|
||||
self.alpha2_converter = language_converters['alpha2']
|
||||
self.from_tvsubtitles = {'br': ('por', 'BR'), 'ua': ('ukr',), 'gr': ('ell',), 'cn': ('zho',), 'jp': ('jpn',),
|
||||
'cz': ('ces',)}
|
||||
self.to_tvsubtitles = {v: k for k, v in self.from_tvsubtitles.items()}
|
||||
self.codes = self.alpha2_converter.codes | set(self.from_tvsubtitles.keys())
|
||||
|
||||
def convert(self, alpha3, country=None):
|
||||
def convert(self, alpha3, country=None, script=None):
|
||||
if (alpha3, country) in self.to_tvsubtitles:
|
||||
return self.to_tvsubtitles[(alpha3, country)]
|
||||
return super(TVsubtitlesConverter, self).convert(alpha3, country)
|
||||
if (alpha3,) in self.to_tvsubtitles:
|
||||
return self.to_tvsubtitles[(alpha3,)]
|
||||
|
||||
return self.alpha2_converter.convert(alpha3, country, script)
|
||||
|
||||
def reverse(self, tvsubtitles):
|
||||
if tvsubtitles in self.from_tvsubtitles:
|
||||
return self.from_tvsubtitles[tvsubtitles]
|
||||
return super(TVsubtitlesConverter, self).reverse(tvsubtitles)
|
||||
|
||||
return self.alpha2_converter.reverse(tvsubtitles)
|
||||
|
||||
+13
-11
@@ -1,27 +1,29 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
|
||||
class Error(Exception):
|
||||
"""Base class for exceptions in subliminal"""
|
||||
"""Base class for exceptions in subliminal."""
|
||||
pass
|
||||
|
||||
|
||||
class ProviderError(Error):
|
||||
"""Exception raised by providers"""
|
||||
"""Exception raised by providers."""
|
||||
pass
|
||||
|
||||
|
||||
class ProviderConfigurationError(ProviderError):
|
||||
"""Exception raised by providers when badly configured"""
|
||||
class ConfigurationError(ProviderError):
|
||||
"""Exception raised by providers when badly configured."""
|
||||
pass
|
||||
|
||||
|
||||
class ProviderNotAvailable(ProviderError):
|
||||
"""Exception raised by providers when unavailable"""
|
||||
class AuthenticationError(ProviderError):
|
||||
"""Exception raised by providers when authentication failed."""
|
||||
pass
|
||||
|
||||
|
||||
class InvalidSubtitle(ProviderError):
|
||||
"""Exception raised by providers when the downloaded subtitle is invalid"""
|
||||
class TooManyRequests(ProviderError):
|
||||
"""Exception raised by providers when too many requests are made."""
|
||||
pass
|
||||
|
||||
|
||||
class DownloadLimitExceeded(ProviderError):
|
||||
"""Exception raised by providers when download limit is exceeded."""
|
||||
pass
|
||||
|
||||
@@ -1,19 +1,76 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import babelfish
|
||||
import logging
|
||||
|
||||
from bs4 import BeautifulSoup, FeatureNotFound
|
||||
from six.moves.xmlrpc_client import SafeTransport
|
||||
|
||||
from ..video import Episode, Movie
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def get_version(version):
|
||||
"""Put the `version` in the major.minor form.
|
||||
|
||||
:param str version: the full version.
|
||||
:return: the major.minor form of the `version`.
|
||||
:rtype: str
|
||||
|
||||
"""
|
||||
return '.'.join(version.split('.')[:2])
|
||||
|
||||
|
||||
class TimeoutSafeTransport(SafeTransport):
|
||||
"""Timeout support for ``xmlrpc.client.SafeTransport``."""
|
||||
def __init__(self, timeout, *args, **kwargs):
|
||||
SafeTransport.__init__(self, *args, **kwargs)
|
||||
self.timeout = timeout
|
||||
|
||||
def make_connection(self, host):
|
||||
c = SafeTransport.make_connection(self, host)
|
||||
c.timeout = self.timeout
|
||||
|
||||
return c
|
||||
|
||||
|
||||
class ParserBeautifulSoup(BeautifulSoup):
|
||||
"""A ``bs4.BeautifulSoup`` that picks the first parser available in `parsers`.
|
||||
|
||||
:param markup: markup for the ``bs4.BeautifulSoup``.
|
||||
:param list parsers: parser names, in order of preference
|
||||
|
||||
"""
|
||||
def __init__(self, markup, parsers, **kwargs):
|
||||
# reject features
|
||||
if set(parsers).intersection({'fast', 'permissive', 'strict', 'xml', 'html', 'html5'}):
|
||||
raise ValueError('Features not allowed, only parser names')
|
||||
|
||||
# reject some kwargs
|
||||
if 'features' in kwargs:
|
||||
raise ValueError('Cannot use features kwarg')
|
||||
if 'builder' in kwargs:
|
||||
raise ValueError('Cannot use builder kwarg')
|
||||
|
||||
# pick the first parser available
|
||||
for parser in parsers:
|
||||
try:
|
||||
super(ParserBeautifulSoup, self).__init__(markup, parser, **kwargs)
|
||||
return
|
||||
except FeatureNotFound:
|
||||
pass
|
||||
|
||||
raise FeatureNotFound
|
||||
|
||||
|
||||
class Provider(object):
|
||||
"""Base class for providers
|
||||
"""Base class for providers.
|
||||
|
||||
If any configuration is possible for the provider, like credentials, it must take place during instantiation
|
||||
If any configuration is possible for the provider, like credentials, it must take place during instantiation.
|
||||
|
||||
:param \*\*kwargs: configuration
|
||||
:raise: :class:`~subliminal.exceptions.ProviderConfigurationError` if there is a configuration error
|
||||
:raise: :class:`~subliminal.exceptions.ConfigurationError` if there is a configuration error
|
||||
|
||||
"""
|
||||
#: Supported BabelFish languages
|
||||
#: Supported set of :class:`~babelfish.language.Language`
|
||||
languages = set()
|
||||
|
||||
#: Supported video types
|
||||
@@ -22,53 +79,46 @@ class Provider(object):
|
||||
#: Required hash, if any
|
||||
required_hash = None
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
pass
|
||||
|
||||
def __enter__(self):
|
||||
self.initialize()
|
||||
return self
|
||||
|
||||
def __exit__(self, *args):
|
||||
def __exit__(self, exc_type, exc_value, traceback):
|
||||
self.terminate()
|
||||
|
||||
def initialize(self):
|
||||
"""Initialize the provider
|
||||
"""Initialize the provider.
|
||||
|
||||
Must be called when starting to work with the provider. This is the place for network initialization
|
||||
or login operations.
|
||||
|
||||
.. note:
|
||||
This is called automatically if you use the :keyword:`with` statement
|
||||
|
||||
|
||||
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable` if the provider is unavailable
|
||||
.. note::
|
||||
This is called automatically when entering the :keyword:`with` statement
|
||||
|
||||
"""
|
||||
pass
|
||||
raise NotImplementedError
|
||||
|
||||
def terminate(self):
|
||||
"""Terminate the provider
|
||||
"""Terminate the provider.
|
||||
|
||||
Must be called when done with the provider. This is the place for network shutdown or logout operations.
|
||||
|
||||
.. note:
|
||||
This is called automatically if you use the :keyword:`with` statement
|
||||
.. note::
|
||||
This is called automatically when exiting the :keyword:`with` statement
|
||||
|
||||
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable` if the provider is unavailable
|
||||
"""
|
||||
pass
|
||||
raise NotImplementedError
|
||||
|
||||
@classmethod
|
||||
def check(cls, video):
|
||||
"""Check if the `video` can be processed
|
||||
"""Check if the `video` can be processed.
|
||||
|
||||
The video is considered invalid if not an instance of :attr:`video_types` or if the :attr:`required_hash` is
|
||||
not present in :attr:`~subliminal.video.Video`'s `hashes` attribute.
|
||||
The `video` is considered invalid if not an instance of :attr:`video_types` or if the :attr:`required_hash` is
|
||||
not present in :attr:`~subliminal.video.Video.hashes` attribute of the `video`.
|
||||
|
||||
:param video: the video to check
|
||||
:param video: the video to check.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:return: `True` if the `video` and `languages` are valid, `False` otherwise
|
||||
:return: `True` if the `video` is valid, `False` otherwise.
|
||||
:rtype: bool
|
||||
|
||||
"""
|
||||
@@ -76,53 +126,44 @@ class Provider(object):
|
||||
return False
|
||||
if cls.required_hash is not None and cls.required_hash not in video.hashes:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def query(self, languages, *args, **kwargs):
|
||||
"""Query the provider for subtitles
|
||||
def query(self, *args, **kwargs):
|
||||
"""Query the provider for subtitles.
|
||||
|
||||
This method arguments match as much as possible the actual parameters for querying the provider
|
||||
Arguments should match as much as possible the actual parameters for querying the provider
|
||||
|
||||
:param languages: languages to search for
|
||||
:type languages: set of :class:`babelfish.Language`
|
||||
:param \*args: other required arguments
|
||||
:param \*\*kwargs: other optional arguments
|
||||
:return: the subtitles
|
||||
:return: found subtitles.
|
||||
:rtype: list of :class:`~subliminal.subtitle.Subtitle`
|
||||
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable` if the provider is unavailable
|
||||
:raise: :class:`~subliminal.exceptions.ProviderError` if something unexpected occured
|
||||
:raise: :class:`~subliminal.exceptions.ProviderError`
|
||||
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
"""List subtitles for the `video` with the given `languages`
|
||||
"""List subtitles for the `video` with the given `languages`.
|
||||
|
||||
This is a proxy for the :meth:`query` method. The parameters passed to the :meth:`query` method may
|
||||
vary depending on the amount of information available in the `video`
|
||||
This will call the :meth:`query` method internally. The parameters passed to the :meth:`query` method may
|
||||
vary depending on the amount of information available in the `video`.
|
||||
|
||||
:param video: video to list subtitles for
|
||||
:param video: video to list subtitles for.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:param languages: languages to search for
|
||||
:type languages: set of :class:`babelfish.Language`
|
||||
:return: the subtitles
|
||||
:param languages: languages to search for.
|
||||
:type languages: set of :class:`~babelfish.language.Language`
|
||||
:return: found subtitles.
|
||||
:rtype: list of :class:`~subliminal.subtitle.Subtitle`
|
||||
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable` if the provider is unavailable
|
||||
:raise: :class:`~subliminal.exceptions.ProviderError` if something unexpected occured
|
||||
:raise: :class:`~subliminal.exceptions.ProviderError`
|
||||
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
"""Download the `subtitle`
|
||||
"""Download `subtitle`'s :attr:`~subliminal.subtitle.Subtitle.content`.
|
||||
|
||||
:param subtitle: subtitle to download
|
||||
:param subtitle: subtitle to download.
|
||||
:type subtitle: :class:`~subliminal.subtitle.Subtitle`
|
||||
:return: the subtitle text
|
||||
:rtype: string
|
||||
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable` if the provider is unavailable
|
||||
:raise: :class:`~subliminal.exceptions.InvalidSubtitle` if the downloaded subtitle is invalid
|
||||
:raise: :class:`~subliminal.exceptions.ProviderError` if something unexpected occured
|
||||
:raise: :class:`~subliminal.exceptions.ProviderError`
|
||||
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
@@ -1,38 +1,46 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import logging
|
||||
import babelfish
|
||||
import bs4
|
||||
import charade
|
||||
import requests
|
||||
from . import Provider
|
||||
import re
|
||||
|
||||
from babelfish import Language
|
||||
from requests import Session
|
||||
|
||||
from . import ParserBeautifulSoup, Provider, get_version
|
||||
from .. import __version__
|
||||
from ..cache import region
|
||||
from ..exceptions import InvalidSubtitle, ProviderNotAvailable
|
||||
from ..subtitle import Subtitle, is_valid_subtitle
|
||||
from ..cache import SHOW_EXPIRATION_TIME, region
|
||||
from ..exceptions import AuthenticationError, ConfigurationError, DownloadLimitExceeded, TooManyRequests
|
||||
from ..subtitle import (Subtitle, fix_line_ending, guess_matches, guess_properties, sanitize_string,
|
||||
sanitized_string_equal)
|
||||
from ..video import Episode
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
series_year_re = re.compile('^(?P<series>[ \w\'.:]+)(?: \((?P<year>\d{4})\))?$')
|
||||
|
||||
|
||||
class Addic7edSubtitle(Subtitle):
|
||||
provider_name = 'addic7ed'
|
||||
|
||||
def __init__(self, language, series, season, episode, title, version, hearing_impaired, download_link, referer):
|
||||
super(Addic7edSubtitle, self).__init__(language, hearing_impaired)
|
||||
def __init__(self, language, hearing_impaired, page_link, series, season, episode, title, year, version,
|
||||
download_link):
|
||||
super(Addic7edSubtitle, self).__init__(language, hearing_impaired, page_link)
|
||||
self.series = series
|
||||
self.season = season
|
||||
self.episode = episode
|
||||
self.title = title
|
||||
self.year = year
|
||||
self.version = version
|
||||
self.download_link = download_link
|
||||
self.referer = referer
|
||||
|
||||
def compute_matches(self, video):
|
||||
matches = set()
|
||||
@property
|
||||
def id(self):
|
||||
return self.download_link
|
||||
|
||||
def get_matches(self, video, hearing_impaired=False):
|
||||
matches = super(Addic7edSubtitle, self).get_matches(video, hearing_impaired=hearing_impaired)
|
||||
|
||||
# series
|
||||
if video.series and self.series == video.series:
|
||||
if video.series and sanitized_string_equal(self.series, video.series):
|
||||
matches.add('series')
|
||||
# season
|
||||
if video.season and self.season == video.season:
|
||||
@@ -41,120 +49,225 @@ class Addic7edSubtitle(Subtitle):
|
||||
if video.episode and self.episode == video.episode:
|
||||
matches.add('episode')
|
||||
# title
|
||||
if video.title and self.title.lower() == video.title.lower():
|
||||
if video.title and sanitized_string_equal(self.title, video.title):
|
||||
matches.add('title')
|
||||
# year
|
||||
if video.year == self.year:
|
||||
matches.add('year')
|
||||
# release_group
|
||||
if video.release_group and self.version and video.release_group.lower() in self.version.lower():
|
||||
matches.add('release_group')
|
||||
# resolution
|
||||
if video.resolution and self.version and video.resolution in self.version.lower():
|
||||
matches.add('resolution')
|
||||
# format
|
||||
if video.format and self.version and video.format.lower() in self.version.lower():
|
||||
matches.add('format')
|
||||
# other properties
|
||||
matches |= guess_matches(video, guess_properties(self.version), partial=True)
|
||||
|
||||
return matches
|
||||
|
||||
|
||||
class Addic7edProvider(Provider):
|
||||
languages = {babelfish.Language('por', 'BR')} | {babelfish.Language(l)
|
||||
for l in ['ara', 'aze', 'ben', 'bos', 'bul', 'cat', 'ces', 'dan', 'deu', 'ell', 'eng', 'eus', 'fas',
|
||||
'fin', 'fra', 'glg', 'heb', 'hrv', 'hun', 'hye', 'ind', 'ita', 'jpn', 'kor', 'mkd', 'msa',
|
||||
'nld', 'nor', 'pol', 'por', 'ron', 'rus', 'slk', 'slv', 'spa', 'sqi', 'srp', 'swe', 'tha',
|
||||
'tur', 'ukr', 'vie', 'zho']}
|
||||
videos = (Episode,)
|
||||
server = 'http://www.addic7ed.com'
|
||||
languages = {Language('por', 'BR')} | {Language(l) for l in [
|
||||
'ara', 'aze', 'ben', 'bos', 'bul', 'cat', 'ces', 'dan', 'deu', 'ell', 'eng', 'eus', 'fas', 'fin', 'fra', 'glg',
|
||||
'heb', 'hrv', 'hun', 'hye', 'ind', 'ita', 'jpn', 'kor', 'mkd', 'msa', 'nld', 'nor', 'pol', 'por', 'ron', 'rus',
|
||||
'slk', 'slv', 'spa', 'sqi', 'srp', 'swe', 'tha', 'tur', 'ukr', 'vie', 'zho'
|
||||
]}
|
||||
video_types = (Episode,)
|
||||
server_url = 'http://www.addic7ed.com/'
|
||||
|
||||
def __init__(self, username=None, password=None):
|
||||
if username is not None and password is None or username is None and password is not None:
|
||||
raise ConfigurationError('Username and password must be specified')
|
||||
|
||||
self.username = username
|
||||
self.password = password
|
||||
self.logged_in = False
|
||||
|
||||
def initialize(self):
|
||||
self.session = requests.Session()
|
||||
self.session.headers = {'User-Agent': 'Subliminal/%s' % __version__}
|
||||
self.session = Session()
|
||||
self.session.headers = {'User-Agent': 'Subliminal/%s' % get_version(__version__)}
|
||||
|
||||
# login
|
||||
if self.username is not None and self.password is not None:
|
||||
logger.info('Logging in')
|
||||
data = {'username': self.username, 'password': self.password, 'Submit': 'Log in'}
|
||||
r = self.session.post(self.server_url + 'dologin.php', data, allow_redirects=False, timeout=10)
|
||||
|
||||
if r.status_code != 302:
|
||||
raise AuthenticationError(self.username)
|
||||
|
||||
logger.debug('Logged in')
|
||||
self.logged_in = True
|
||||
|
||||
def terminate(self):
|
||||
# logout
|
||||
if self.logged_in:
|
||||
logger.info('Logging out')
|
||||
r = self.session.get(self.server_url + 'logout.php', timeout=10)
|
||||
r.raise_for_status()
|
||||
logger.debug('Logged out')
|
||||
self.logged_in = False
|
||||
|
||||
self.session.close()
|
||||
|
||||
def get(self, url, params=None):
|
||||
"""Make a GET request on `url` with the given parameters
|
||||
@region.cache_on_arguments(expiration_time=SHOW_EXPIRATION_TIME)
|
||||
def _get_show_ids(self):
|
||||
"""Get the ``dict`` of show ids per series by querying the `shows.php` page.
|
||||
|
||||
:param string url: part of the URL to reach with the leading slash
|
||||
:param params: params of the request
|
||||
:return: the response
|
||||
:rtype: :class:`bs4.BeautifulSoup`
|
||||
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable`
|
||||
|
||||
"""
|
||||
try:
|
||||
r = self.session.get(self.server + url, params=params, timeout=10)
|
||||
except requests.Timeout:
|
||||
raise ProviderNotAvailable('Timeout after 10 seconds')
|
||||
if r.status_code != 200:
|
||||
raise ProviderNotAvailable('Request failed with status code %d' % r.status_code)
|
||||
return bs4.BeautifulSoup(r.content, ['permissive'])
|
||||
|
||||
@region.cache_on_arguments()
|
||||
def get_show_ids(self):
|
||||
"""Load the shows page with default series to show ids mapping
|
||||
|
||||
:return: series to show ids
|
||||
:return: show id per series, lower case and without quotes.
|
||||
:rtype: dict
|
||||
|
||||
"""
|
||||
soup = self.get('/shows.php')
|
||||
# get the show page
|
||||
logger.info('Getting show ids')
|
||||
r = self.session.get(self.server_url + 'shows.php', timeout=10)
|
||||
r.raise_for_status()
|
||||
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
|
||||
|
||||
# populate the show ids
|
||||
show_ids = {}
|
||||
for html_show in soup.select('td.version > h3 > a[href^="/show/"]'):
|
||||
show_ids[html_show.string.lower()] = int(html_show['href'][6:])
|
||||
for show in soup.select('td.version > h3 > a[href^="/show/"]'):
|
||||
show_ids[sanitize_string(show.text).lower()] = int(show['href'][6:])
|
||||
logger.debug('Found %d show ids', len(show_ids))
|
||||
|
||||
return show_ids
|
||||
|
||||
@region.cache_on_arguments()
|
||||
def find_show_id(self, series):
|
||||
"""Find a show id from the series
|
||||
@region.cache_on_arguments(expiration_time=SHOW_EXPIRATION_TIME)
|
||||
def _search_show_id(self, series, year=None):
|
||||
"""Search the show id from the `series` and `year`.
|
||||
|
||||
Use this only if the series is not in the dict returned by :meth:`get_show_ids`
|
||||
|
||||
:param string series: series of the episode
|
||||
:return: the show id, if any
|
||||
:param str series: series of the episode.
|
||||
:param year: year of the series, if any.
|
||||
:type year: int or None
|
||||
:return: the show id, if found.
|
||||
:rtype: int or None
|
||||
|
||||
"""
|
||||
params = {'search': series, 'Submit': 'Search'}
|
||||
logger.debug('Searching series %r', params)
|
||||
suggested_shows = self.get('/search.php', params).select('span.titulo > a[href^="/show/"]')
|
||||
if not suggested_shows:
|
||||
logger.info('Series %r not found', series)
|
||||
return None
|
||||
return int(suggested_shows[0]['href'][6:])
|
||||
# build the params
|
||||
series_year = '%s %d' % (series, year) if year is not None else series
|
||||
params = {'search': sanitize_string(series_year, replacement=' '), 'Submit': 'Search'}
|
||||
|
||||
def query(self, series, season):
|
||||
show_ids = self.get_show_ids()
|
||||
if series.lower() in show_ids:
|
||||
show_id = show_ids[series.lower()]
|
||||
else:
|
||||
show_id = self.find_show_id(series.lower())
|
||||
if show_id is None:
|
||||
return []
|
||||
params = {'show_id': show_id, 'season': season}
|
||||
logger.debug('Searching subtitles %r', params)
|
||||
link = '/show/{show_id}&season={season}'.format(**params)
|
||||
soup = self.get(link)
|
||||
# make the search
|
||||
logger.info('Searching show ids with %r', params)
|
||||
r = self.session.get(self.server_url + 'search.php', params=params, timeout=10)
|
||||
r.raise_for_status()
|
||||
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
|
||||
|
||||
# get the suggestion
|
||||
suggestion = soup.select('span.titulo > a[href^="/show/"]')
|
||||
if not suggestion:
|
||||
logger.warning('Show id not found: no suggestion')
|
||||
return None
|
||||
if not sanitized_string_equal(suggestion[0].i.text, series_year):
|
||||
logger.warning('Show id not found: suggestion does not match')
|
||||
return None
|
||||
show_id = int(suggestion[0]['href'][6:])
|
||||
logger.debug('Found show id %d', show_id)
|
||||
|
||||
return show_id
|
||||
|
||||
def get_show_id(self, series, year=None, country_code=None):
|
||||
"""Get the best matching show id for `series`, `year` and `country_code`.
|
||||
|
||||
First search in the result of :meth:`_get_show_ids` and fallback on a search with :meth:`_search_show_id`
|
||||
|
||||
:param str series: series of the episode.
|
||||
:param year: year of the series, if any.
|
||||
:type year: int or None
|
||||
:param country_code: country code of the series, if any.
|
||||
:type country_code: str or None
|
||||
:return: the show id, if found.
|
||||
:rtype: int or None
|
||||
|
||||
"""
|
||||
series_sanitized = sanitize_string(series).lower()
|
||||
show_ids = self._get_show_ids()
|
||||
show_id = None
|
||||
|
||||
# attempt with country
|
||||
if not show_id and country_code:
|
||||
logger.debug('Getting show id with country')
|
||||
show_id = show_ids.get('%s %s' % (series_sanitized, country_code.lower()))
|
||||
|
||||
# attempt with year
|
||||
if not show_id and year:
|
||||
logger.debug('Getting show id with year')
|
||||
show_id = show_ids.get('%s %d' % (series_sanitized, year))
|
||||
|
||||
# attempt clean
|
||||
if not show_id:
|
||||
logger.debug('Getting show id')
|
||||
show_id = show_ids.get(series_sanitized)
|
||||
|
||||
# search as last resort
|
||||
if not show_id:
|
||||
logger.warning('Series not found in show ids')
|
||||
show_id = self._search_show_id(series)
|
||||
|
||||
return show_id
|
||||
|
||||
def query(self, series, season, year=None, country=None):
|
||||
# get the show id
|
||||
show_id = self.get_show_id(series, year, country)
|
||||
if show_id is None:
|
||||
logger.error('No show id found for %r (%r)', series, {'year': year, 'country': country})
|
||||
return []
|
||||
|
||||
# get the page of the season of the show
|
||||
logger.info('Getting the page of show id %d, season %d', show_id, season)
|
||||
r = self.session.get(self.server_url + 'show/%d' % show_id, params={'season': season}, timeout=10)
|
||||
r.raise_for_status()
|
||||
if r.status_code == 304:
|
||||
raise TooManyRequests()
|
||||
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
|
||||
|
||||
# loop over subtitle rows
|
||||
match = series_year_re.match(soup.select('#header font')[0].text.strip()[:-10])
|
||||
series = match.group('series')
|
||||
year = int(match.group('year')) if match.group('year') else None
|
||||
subtitles = []
|
||||
for row in soup('tr', class_='epeven completed'):
|
||||
for row in soup.select('tr.epeven'):
|
||||
cells = row('td')
|
||||
if cells[5].string != 'Completed':
|
||||
logger.debug('Skipping incomplete subtitle')
|
||||
|
||||
# ignore incomplete subtitles
|
||||
status = cells[5].text
|
||||
if status != 'Completed':
|
||||
logger.debug('Ignoring subtitle with status %s', status)
|
||||
continue
|
||||
subtitles.append(Addic7edSubtitle(babelfish.Language.fromaddic7ed(cells[3].string), series, season,
|
||||
int(cells[1].string), cells[2].string, cells[4].string,
|
||||
bool(cells[6].string), cells[9].a['href'], link))
|
||||
|
||||
# read the item
|
||||
language = Language.fromaddic7ed(cells[3].text)
|
||||
hearing_impaired = bool(cells[6].text)
|
||||
page_link = self.server_url + cells[2].a['href'][1:]
|
||||
season = int(cells[0].text)
|
||||
episode = int(cells[1].text)
|
||||
title = cells[2].text
|
||||
version = cells[4].text
|
||||
download_link = cells[9].a['href'][1:]
|
||||
|
||||
subtitle = Addic7edSubtitle(language, hearing_impaired, page_link, series, season, episode, title, year,
|
||||
version, download_link)
|
||||
logger.debug('Found subtitle %r', subtitle)
|
||||
subtitles.append(subtitle)
|
||||
|
||||
return subtitles
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
return [s for s in self.query(video.series, video.season)
|
||||
return [s for s in self.query(video.series, video.season, video.year)
|
||||
if s.language in languages and s.episode == video.episode]
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
try:
|
||||
r = self.session.get(self.server + subtitle.download_link, timeout=10,
|
||||
headers={'Referer': self.server + subtitle.referer})
|
||||
except requests.Timeout:
|
||||
raise ProviderNotAvailable('Timeout after 10 seconds')
|
||||
if r.status_code != 200:
|
||||
raise ProviderNotAvailable('Request failed with status code %d' % r.status_code)
|
||||
subtitle_text = r.content.decode(charade.detect(r.content)['encoding'])
|
||||
if not is_valid_subtitle(subtitle_text):
|
||||
raise InvalidSubtitle
|
||||
return subtitle_text
|
||||
# download the subtitle
|
||||
logger.info('Downloading subtitle %r', subtitle)
|
||||
r = self.session.get(self.server_url + subtitle.download_link, headers={'Referer': subtitle.page_link},
|
||||
timeout=10)
|
||||
r.raise_for_status()
|
||||
|
||||
# detect download limit exceeded
|
||||
if r.headers['Content-Type'] == 'text/html':
|
||||
raise DownloadLimitExceeded
|
||||
|
||||
subtitle.content = fix_line_ending(r.content)
|
||||
|
||||
@@ -1,138 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import logging
|
||||
import urllib
|
||||
import babelfish
|
||||
import bs4
|
||||
import charade
|
||||
import guessit
|
||||
import requests
|
||||
from . import Provider
|
||||
from .. import __version__
|
||||
from ..cache import region
|
||||
from ..exceptions import InvalidSubtitle, ProviderNotAvailable, ProviderError
|
||||
from ..subtitle import Subtitle, is_valid_subtitle, compute_guess_matches
|
||||
from ..video import Episode
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class BierDopjeSubtitle(Subtitle):
|
||||
provider_name = 'bierdopje'
|
||||
|
||||
def __init__(self, language, season, episode, tvdb_id, series, filename, download_link):
|
||||
super(BierDopjeSubtitle, self).__init__(language)
|
||||
self.season = season
|
||||
self.episode = episode
|
||||
self.tvdb_id = tvdb_id
|
||||
self.series = series
|
||||
self.filename = filename
|
||||
self.download_link = download_link
|
||||
|
||||
def compute_matches(self, video):
|
||||
matches = set()
|
||||
# tvdb_id
|
||||
if video.tvdb_id and self.tvdb_id == video.tvdb_id:
|
||||
matches.add('tvdb_id')
|
||||
# series
|
||||
if video.series and self.series == video.series:
|
||||
matches.add('series')
|
||||
# season
|
||||
if video.season and self.season == video.season:
|
||||
matches.add('season')
|
||||
# episode
|
||||
if video.episode and self.episode == video.episode:
|
||||
matches.add('episode')
|
||||
matches |= compute_guess_matches(video, guessit.guess_episode_info(self.filename + '.mkv'))
|
||||
return matches
|
||||
|
||||
|
||||
class BierDopjeProvider(Provider):
|
||||
languages = {babelfish.Language(l) for l in ['eng', 'nld']}
|
||||
video_types = (Episode,)
|
||||
|
||||
def initialize(self):
|
||||
self.session = requests.Session()
|
||||
self.session.headers = {'User-Agent': 'Subliminal/%s' % __version__}
|
||||
|
||||
def terminate(self):
|
||||
self.session.close()
|
||||
|
||||
def get(self, url, **params):
|
||||
"""Make a GET request on the `url` formatted with `**params`
|
||||
|
||||
:param string url: API part of the URL to reach without the leading slash
|
||||
:param \*\*params: format specs for the `url`
|
||||
:return: the response
|
||||
:rtype: :class:`bs4.BeautifulSoup`
|
||||
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable`
|
||||
|
||||
"""
|
||||
try:
|
||||
r = self.session.get('http://api.bierdopje.com/A2B638AC5D804C2E/' + url.format(**params), timeout=10)
|
||||
except requests.Timeout:
|
||||
raise ProviderNotAvailable('Timeout after 10 seconds')
|
||||
if r.status_code == 429:
|
||||
raise ProviderNotAvailable('Too Many Requests')
|
||||
elif r.status_code != 200:
|
||||
raise ProviderError('Request failed with status code %d' % r.status_code)
|
||||
return bs4.BeautifulSoup(r.content, ['xml'])
|
||||
|
||||
@region.cache_on_arguments()
|
||||
def find_show_id(self, series):
|
||||
"""Find the show id from series name
|
||||
|
||||
:param string series: series of the episode
|
||||
:return: show id
|
||||
:rtype: int
|
||||
|
||||
"""
|
||||
logger.debug('Searching for series %r', series)
|
||||
soup = self.get('FindShowByName/{series}', series=urllib.quote(series))
|
||||
if soup.status.contents[0] == 'false':
|
||||
logger.info('Series %r not found', series)
|
||||
return None
|
||||
return int(soup.showid.contents[0])
|
||||
|
||||
def query(self, language, season, episode, tvdb_id=None, series=None):
|
||||
params = {'language': language.alpha2, 'season': season, 'episode': episode}
|
||||
if tvdb_id is not None:
|
||||
params['showid'] = tvdb_id
|
||||
params['istvdbid'] = 'true'
|
||||
elif series is not None:
|
||||
show_id = self.find_show_id(series)
|
||||
if show_id is None:
|
||||
return []
|
||||
params['showid'] = show_id
|
||||
params['istvdbid'] = 'false'
|
||||
else:
|
||||
raise ValueError('Missing parameter tvdb_id or series')
|
||||
logger.debug('Searching subtitles %r', params)
|
||||
soup = self.get('GetAllSubsFor/{showid}/{season}/{episode}/{language}/{istvdbid}', **params)
|
||||
if soup.status.contents[0] == 'false':
|
||||
logger.debug('No subtitle found')
|
||||
return []
|
||||
logger.debug('Found subtitles %r', soup.results('result'))
|
||||
return [BierDopjeSubtitle(language, season, episode, tvdb_id, series, result.filename.contents[0],
|
||||
result.downloadlink.contents[0]) for result in soup.results('result')]
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
subtitles = []
|
||||
for language in languages:
|
||||
subtitles.extend(self.query(language, video.season, video.episode, video.tvdb_id, video.series))
|
||||
return subtitles
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
try:
|
||||
r = self.session.get(subtitle.download_link, timeout=10)
|
||||
except requests.Timeout:
|
||||
raise ProviderNotAvailable('Timeout after 10 seconds')
|
||||
if r.status_code == 429:
|
||||
raise ProviderNotAvailable('Too Many Requests')
|
||||
elif r.status_code != 200:
|
||||
raise ProviderError('Request failed with status code %d' % r.status_code)
|
||||
subtitle_text = r.content.decode(charade.detect(r.content)['encoding'])
|
||||
if not is_valid_subtitle(subtitle_text):
|
||||
raise InvalidSubtitle
|
||||
return subtitle_text
|
||||
@@ -0,0 +1,101 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
|
||||
from babelfish import Language
|
||||
from requests import Session
|
||||
|
||||
from . import Provider, get_version
|
||||
from .. import __version__
|
||||
from ..subtitle import Subtitle
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def get_subhash(hash):
|
||||
"""Get a second hash based on napiprojekt's hash.
|
||||
|
||||
:param str hash: napiprojekt's hash.
|
||||
:return: the subhash.
|
||||
:rtype: str
|
||||
|
||||
"""
|
||||
idx = [0xe, 0x3, 0x6, 0x8, 0x2]
|
||||
mul = [2, 2, 5, 4, 3]
|
||||
add = [0, 0xd, 0x10, 0xb, 0x5]
|
||||
|
||||
b = []
|
||||
for i in range(len(idx)):
|
||||
a = add[i]
|
||||
m = mul[i]
|
||||
i = idx[i]
|
||||
t = a + int(hash[i], 16)
|
||||
v = int(hash[t:t + 2], 16)
|
||||
b.append(('%x' % (v * m))[-1])
|
||||
|
||||
return ''.join(b)
|
||||
|
||||
|
||||
class NapiProjektSubtitle(Subtitle):
|
||||
provider_name = 'napiprojekt'
|
||||
|
||||
def __init__(self, language, hash):
|
||||
super(NapiProjektSubtitle, self).__init__(language)
|
||||
self.hash = hash
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
return self.hash
|
||||
|
||||
def get_matches(self, video, hearing_impaired=False):
|
||||
matches = super(NapiProjektSubtitle, self).get_matches(video, hearing_impaired=hearing_impaired)
|
||||
|
||||
# hash
|
||||
if 'napiprojekt' in video.hashes and video.hashes['napiprojekt'] == self.hash:
|
||||
matches.add('hash')
|
||||
|
||||
return matches
|
||||
|
||||
|
||||
class NapiProjektProvider(Provider):
|
||||
languages = {Language.fromalpha2(l) for l in ['pl']}
|
||||
required_hash = 'napiprojekt'
|
||||
server_url = 'http://napiprojekt.pl/unit_napisy/dl.php'
|
||||
|
||||
def initialize(self):
|
||||
self.session = Session()
|
||||
self.session.headers = {'User-Agent': 'Subliminal/%s' % get_version(__version__)}
|
||||
|
||||
def terminate(self):
|
||||
self.session.close()
|
||||
|
||||
def query(self, language, hash):
|
||||
params = {
|
||||
'v': 'dreambox',
|
||||
'kolejka': 'false',
|
||||
'nick': '',
|
||||
'pass': '',
|
||||
'napios': 'Linux',
|
||||
'l': language.alpha2.upper(),
|
||||
'f': hash,
|
||||
't': get_subhash(hash)}
|
||||
logger.info('Searching subtitle %r', params)
|
||||
response = self.session.get(self.server_url, params=params, timeout=10)
|
||||
response.raise_for_status()
|
||||
|
||||
# handle subtitles not found and errors
|
||||
if response.content[:4] == b'NPc0':
|
||||
logger.debug('No subtitles found')
|
||||
return None
|
||||
|
||||
subtitle = NapiProjektSubtitle(language, hash)
|
||||
subtitle.content = response.content
|
||||
logger.debug('Found subtitle %r', subtitle)
|
||||
|
||||
return subtitle
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
return [s for s in [self.query(l, video.hashes['napiprojekt']) for l in languages] if s is not None]
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
# there is no download step, content is already filled from listing subtitles
|
||||
pass
|
||||
@@ -1,20 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import base64
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import xmlrpclib
|
||||
import zlib
|
||||
import babelfish
|
||||
import charade
|
||||
import guessit
|
||||
from . import Provider
|
||||
from .. import __version__
|
||||
from ..exceptions import ProviderError, ProviderNotAvailable, InvalidSubtitle
|
||||
from ..subtitle import Subtitle, is_valid_subtitle, compute_guess_matches
|
||||
from ..video import Episode, Movie
|
||||
|
||||
from babelfish import Language, language_converters
|
||||
from guessit import guess_episode_info, guess_movie_info
|
||||
from six.moves.xmlrpc_client import ServerProxy
|
||||
|
||||
from . import Provider, TimeoutSafeTransport, get_version
|
||||
from .. import __version__
|
||||
from ..exceptions import AuthenticationError, ConfigurationError, DownloadLimitExceeded, ProviderError
|
||||
from ..subtitle import Subtitle, fix_line_ending, guess_matches, sanitized_string_equal
|
||||
from ..video import Episode, Movie
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -23,10 +22,10 @@ class OpenSubtitlesSubtitle(Subtitle):
|
||||
provider_name = 'opensubtitles'
|
||||
series_re = re.compile('^"(?P<series_name>.*)" (?P<series_title>.*)$')
|
||||
|
||||
def __init__(self, language, hearing_impaired, id, matched_by, movie_kind, hash, movie_name, movie_release_name, movie_year,
|
||||
movie_imdb_id, series_season, series_episode):
|
||||
super(OpenSubtitlesSubtitle, self).__init__(language, hearing_impaired)
|
||||
self.id = id
|
||||
def __init__(self, language, hearing_impaired, page_link, subtitle_id, matched_by, movie_kind, hash, movie_name,
|
||||
movie_release_name, movie_year, movie_imdb_id, series_season, series_episode, encoding):
|
||||
super(OpenSubtitlesSubtitle, self).__init__(language, hearing_impaired, page_link, encoding)
|
||||
self.subtitle_id = subtitle_id
|
||||
self.matched_by = matched_by
|
||||
self.movie_kind = movie_kind
|
||||
self.hash = hash
|
||||
@@ -37,6 +36,10 @@ class OpenSubtitlesSubtitle(Subtitle):
|
||||
self.series_season = series_season
|
||||
self.series_episode = series_episode
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
return str(self.subtitle_id)
|
||||
|
||||
@property
|
||||
def series_name(self):
|
||||
return self.series_re.match(self.movie_name).group('series_name')
|
||||
@@ -45,12 +48,13 @@ class OpenSubtitlesSubtitle(Subtitle):
|
||||
def series_title(self):
|
||||
return self.series_re.match(self.movie_name).group('series_title')
|
||||
|
||||
def compute_matches(self, video):
|
||||
matches = set()
|
||||
def get_matches(self, video, hearing_impaired=False):
|
||||
matches = super(OpenSubtitlesSubtitle, self).get_matches(video, hearing_impaired=hearing_impaired)
|
||||
|
||||
# episode
|
||||
if isinstance(video, Episode) and self.movie_kind == 'episode':
|
||||
# series
|
||||
if video.series and self.series_name.lower() == video.series.lower():
|
||||
if video.series and sanitized_string_equal(self.series_name, video.series):
|
||||
matches.add('series')
|
||||
# season
|
||||
if video.season and self.series_season == video.season:
|
||||
@@ -58,102 +62,201 @@ class OpenSubtitlesSubtitle(Subtitle):
|
||||
# episode
|
||||
if video.episode and self.series_episode == video.episode:
|
||||
matches.add('episode')
|
||||
# title
|
||||
if video.title and sanitized_string_equal(self.series_title, video.title):
|
||||
matches.add('title')
|
||||
# guess
|
||||
matches |= compute_guess_matches(video, guessit.guess_episode_info(self.movie_release_name + '.mkv'))
|
||||
matches |= guess_matches(video, guess_episode_info(self.movie_release_name + '.mkv'))
|
||||
# movie
|
||||
elif isinstance(video, Movie) and self.movie_kind == 'movie':
|
||||
# title
|
||||
if video.title and sanitized_string_equal(self.movie_name, video.title):
|
||||
matches.add('title')
|
||||
# year
|
||||
if video.year and self.movie_year == video.year:
|
||||
matches.add('year')
|
||||
# guess
|
||||
matches |= compute_guess_matches(video, guessit.guess_movie_info(self.movie_release_name + '.mkv'))
|
||||
matches |= guess_matches(video, guess_movie_info(self.movie_release_name + '.mkv'))
|
||||
else:
|
||||
logger.info('%r is not a valid movie_kind for %r', self.movie_kind, video)
|
||||
logger.info('%r is not a valid movie_kind', self.movie_kind)
|
||||
return matches
|
||||
|
||||
# hash
|
||||
if 'opensubtitles' in video.hashes and self.hash == video.hashes['opensubtitles']:
|
||||
matches.add('hash')
|
||||
# imdb_id
|
||||
if video.imdb_id and self.movie_imdb_id == video.imdb_id:
|
||||
matches.add('imdb_id')
|
||||
# title
|
||||
if video.title and self.movie_name.lower() == video.title.lower():
|
||||
matches.add('title')
|
||||
|
||||
return matches
|
||||
|
||||
|
||||
class OpenSubtitlesProvider(Provider):
|
||||
languages = {babelfish.Language.fromopensubtitles(l) for l in babelfish.CONVERTERS['opensubtitles'].codes}
|
||||
languages = {Language.fromopensubtitles(l) for l in language_converters['opensubtitles'].codes}
|
||||
|
||||
def __init__(self):
|
||||
self.server = xmlrpclib.ServerProxy('http://api.opensubtitles.org/xml-rpc')
|
||||
def __init__(self, username=None, password=None):
|
||||
self.server = ServerProxy('https://api.opensubtitles.org/xml-rpc', TimeoutSafeTransport(10))
|
||||
if username and not password or not username and password:
|
||||
raise ConfigurationError('Username and password must be specified')
|
||||
# None values not allowed for logging in, so replace it by ''
|
||||
self.username = username or ''
|
||||
self.password = password or ''
|
||||
self.token = None
|
||||
|
||||
def initialize(self):
|
||||
try:
|
||||
response = self.server.LogIn('', '', 'eng', 'subliminal v%s' % __version__)
|
||||
except xmlrpclib.ProtocolError:
|
||||
raise ProviderNotAvailable
|
||||
if response['status'] != '200 OK':
|
||||
raise ProviderError('Login failed with status %r' % response['status'])
|
||||
logger.info('Logging in')
|
||||
response = checked(self.server.LogIn(self.username, self.password, 'eng',
|
||||
'subliminal v%s' % get_version(__version__)))
|
||||
self.token = response['token']
|
||||
logger.debug('Logged in with token %r', self.token)
|
||||
|
||||
def terminate(self):
|
||||
try:
|
||||
response = self.server.LogOut(self.token)
|
||||
except xmlrpclib.ProtocolError:
|
||||
raise ProviderNotAvailable
|
||||
if response['status'] != '200 OK':
|
||||
raise ProviderError('Logout failed with status %r' % response['status'])
|
||||
logger.info('Logging out')
|
||||
checked(self.server.LogOut(self.token))
|
||||
self.server.close()
|
||||
self.token = None
|
||||
logger.debug('Logged out')
|
||||
|
||||
def query(self, languages, hash=None, size=None, imdb_id=None, query=None):
|
||||
searches = []
|
||||
def no_operation(self):
|
||||
logger.debug('No operation')
|
||||
checked(self.server.NoOperation(self.token))
|
||||
|
||||
def query(self, languages, hash=None, size=None, imdb_id=None, query=None, season=None, episode=None):
|
||||
# fill the search criteria
|
||||
criteria = []
|
||||
if hash and size:
|
||||
searches.append({'moviehash': hash, 'moviebytesize': str(size)})
|
||||
criteria.append({'moviehash': hash, 'moviebytesize': str(size)})
|
||||
if imdb_id:
|
||||
searches.append({'imdbid': imdb_id})
|
||||
if query:
|
||||
searches.append({'query': query})
|
||||
if not searches:
|
||||
raise ValueError('One or more parameter missing')
|
||||
for search in searches:
|
||||
search['sublanguageid'] = ','.join(l.opensubtitles for l in languages)
|
||||
logger.debug('Searching subtitles %r', searches)
|
||||
try:
|
||||
response = self.server.SearchSubtitles(self.token, searches)
|
||||
except xmlrpclib.ProtocolError:
|
||||
raise ProviderNotAvailable
|
||||
if response['status'] != '200 OK':
|
||||
raise ProviderError('Search failed with status %r' % response['status'])
|
||||
criteria.append({'imdbid': imdb_id})
|
||||
if query and season and episode:
|
||||
criteria.append({'query': query.replace('\'', ''), 'season': season, 'episode': episode})
|
||||
elif query:
|
||||
criteria.append({'query': query.replace('\'', '')})
|
||||
if not criteria:
|
||||
raise ValueError('Not enough information')
|
||||
|
||||
# add the language
|
||||
for criterion in criteria:
|
||||
criterion['sublanguageid'] = ','.join(sorted(l.opensubtitles for l in languages))
|
||||
|
||||
# query the server
|
||||
logger.info('Searching subtitles %r', criteria)
|
||||
response = checked(self.server.SearchSubtitles(self.token, criteria))
|
||||
subtitles = []
|
||||
|
||||
# exit if no data
|
||||
if not response['data']:
|
||||
logger.debug('No subtitle found')
|
||||
return []
|
||||
logger.debug('Found subtitles %r', response['data'])
|
||||
return [OpenSubtitlesSubtitle(babelfish.Language.fromopensubtitles(r['SubLanguageID']),
|
||||
bool(int(r['SubHearingImpaired'])), r['IDSubtitleFile'], r['MatchedBy'],
|
||||
r['MovieKind'], r['MovieHash'], r['MovieName'], r['MovieReleaseName'],
|
||||
int(r['MovieYear']) if r['MovieYear'] else None, int(r['IDMovieImdb']),
|
||||
int(r['SeriesSeason']) if r['SeriesSeason'] else None,
|
||||
int(r['SeriesEpisode']) if r['SeriesEpisode'] else None)
|
||||
for r in response['data']]
|
||||
logger.debug('No subtitles found')
|
||||
return subtitles
|
||||
|
||||
# loop over subtitle items
|
||||
for subtitle_item in response['data']:
|
||||
# read the item
|
||||
language = Language.fromopensubtitles(subtitle_item['SubLanguageID'])
|
||||
hearing_impaired = bool(int(subtitle_item['SubHearingImpaired']))
|
||||
page_link = subtitle_item['SubtitlesLink']
|
||||
subtitle_id = int(subtitle_item['IDSubtitleFile'])
|
||||
matched_by = subtitle_item['MatchedBy']
|
||||
movie_kind = subtitle_item['MovieKind']
|
||||
hash = subtitle_item['MovieHash']
|
||||
movie_name = subtitle_item['MovieName']
|
||||
movie_release_name = subtitle_item['MovieReleaseName']
|
||||
movie_year = int(subtitle_item['MovieYear']) if subtitle_item['MovieYear'] else None
|
||||
movie_imdb_id = int(subtitle_item['IDMovieImdb'])
|
||||
series_season = int(subtitle_item['SeriesSeason']) if subtitle_item['SeriesSeason'] else None
|
||||
series_episode = int(subtitle_item['SeriesEpisode']) if subtitle_item['SeriesEpisode'] else None
|
||||
encoding = subtitle_item.get('SubEncoding') or None
|
||||
|
||||
subtitle = OpenSubtitlesSubtitle(language, hearing_impaired, page_link, subtitle_id, matched_by, movie_kind,
|
||||
hash, movie_name, movie_release_name, movie_year, movie_imdb_id,
|
||||
series_season, series_episode, encoding)
|
||||
logger.debug('Found subtitle %r', subtitle)
|
||||
subtitles.append(subtitle)
|
||||
|
||||
return subtitles
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
query = None
|
||||
if ('opensubtitles' not in video.hashes or not video.size) and not video.imdb_id:
|
||||
query = season = episode = None
|
||||
if isinstance(video, Episode):
|
||||
query = video.series
|
||||
season = video.season
|
||||
episode = video.episode
|
||||
elif ('opensubtitles' not in video.hashes or not video.size) and not video.imdb_id:
|
||||
query = video.name.split(os.sep)[-1]
|
||||
return self.query(languages, hash=video.hashes.get('opensubtitles'), size=video.size, imdb_id=video.imdb_id, query=query)
|
||||
|
||||
return self.query(languages, hash=video.hashes.get('opensubtitles'), size=video.size, imdb_id=video.imdb_id,
|
||||
query=query, season=season, episode=episode)
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
try:
|
||||
response = self.server.DownloadSubtitles(self.token, [subtitle.id])
|
||||
except xmlrpclib.ProtocolError:
|
||||
raise ProviderNotAvailable
|
||||
if response['status'] != '200 OK':
|
||||
raise ProviderError('Download failed with status %r' % response['status'])
|
||||
if not response['data']:
|
||||
raise ProviderError('Nothing to download')
|
||||
subtitle_bytes = zlib.decompress(base64.b64decode(response['data'][0]['data']), 47)
|
||||
subtitle_text = subtitle_bytes.decode(charade.detect(subtitle_bytes)['encoding'])
|
||||
if not is_valid_subtitle(subtitle_text):
|
||||
raise InvalidSubtitle
|
||||
return subtitle_text
|
||||
logger.info('Downloading subtitle %r', subtitle)
|
||||
response = checked(self.server.DownloadSubtitles(self.token, [str(subtitle.subtitle_id)]))
|
||||
subtitle.content = fix_line_ending(zlib.decompress(base64.b64decode(response['data'][0]['data']), 47))
|
||||
|
||||
|
||||
class OpenSubtitlesError(ProviderError):
|
||||
"""Base class for non-generic :class:`OpenSubtitlesProvider` exceptions."""
|
||||
pass
|
||||
|
||||
|
||||
class Unauthorized(OpenSubtitlesError, AuthenticationError):
|
||||
"""Exception raised when status is '401 Unauthorized'."""
|
||||
pass
|
||||
|
||||
|
||||
class NoSession(OpenSubtitlesError, AuthenticationError):
|
||||
"""Exception raised when status is '406 No session'."""
|
||||
pass
|
||||
|
||||
|
||||
class DownloadLimitReached(OpenSubtitlesError, DownloadLimitExceeded):
|
||||
"""Exception raised when status is '407 Download limit reached'."""
|
||||
pass
|
||||
|
||||
|
||||
class InvalidImdbid(OpenSubtitlesError):
|
||||
"""Exception raised when status is '413 Invalid ImdbID'."""
|
||||
pass
|
||||
|
||||
|
||||
class UnknownUserAgent(OpenSubtitlesError, AuthenticationError):
|
||||
"""Exception raised when status is '414 Unknown User Agent'."""
|
||||
pass
|
||||
|
||||
|
||||
class DisabledUserAgent(OpenSubtitlesError, AuthenticationError):
|
||||
"""Exception raised when status is '415 Disabled user agent'."""
|
||||
pass
|
||||
|
||||
|
||||
class ServiceUnavailable(OpenSubtitlesError):
|
||||
"""Exception raised when status is '503 Service Unavailable'."""
|
||||
pass
|
||||
|
||||
|
||||
def checked(response):
|
||||
"""Check a response status before returning it.
|
||||
|
||||
:param response: a response from a XMLRPC call to OpenSubtitles.
|
||||
:return: the response.
|
||||
:raise: :class:`OpenSubtitlesError`
|
||||
|
||||
"""
|
||||
status_code = int(response['status'][:3])
|
||||
if status_code == 401:
|
||||
raise Unauthorized
|
||||
if status_code == 406:
|
||||
raise NoSession
|
||||
if status_code == 407:
|
||||
raise DownloadLimitReached
|
||||
if status_code == 413:
|
||||
raise InvalidImdbid
|
||||
if status_code == 414:
|
||||
raise UnknownUserAgent
|
||||
if status_code == 415:
|
||||
raise DisabledUserAgent
|
||||
if status_code == 503:
|
||||
raise ServiceUnavailable
|
||||
if status_code != 200:
|
||||
raise OpenSubtitlesError(response['status'])
|
||||
|
||||
return response
|
||||
|
||||
@@ -0,0 +1,173 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import io
|
||||
import logging
|
||||
import re
|
||||
|
||||
from babelfish import Language, language_converters
|
||||
from guessit import guess_episode_info, guess_movie_info
|
||||
try:
|
||||
from lxml import etree
|
||||
except ImportError:
|
||||
try:
|
||||
import xml.etree.cElementTree as etree
|
||||
except ImportError:
|
||||
import xml.etree.ElementTree as etree
|
||||
from requests import Session
|
||||
from zipfile import ZipFile
|
||||
|
||||
from . import Provider, get_version
|
||||
from .. import __version__
|
||||
from ..exceptions import ProviderError
|
||||
from ..subtitle import Subtitle, fix_line_ending, guess_matches, sanitized_string_equal
|
||||
from ..video import Episode, Movie
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class PodnapisiSubtitle(Subtitle):
|
||||
provider_name = 'podnapisi'
|
||||
|
||||
def __init__(self, language, hearing_impaired, page_link, pid, releases, title, season=None, episode=None,
|
||||
year=None):
|
||||
super(PodnapisiSubtitle, self).__init__(language, hearing_impaired, page_link)
|
||||
self.pid = pid
|
||||
self.releases = releases
|
||||
self.title = title
|
||||
self.season = season
|
||||
self.episode = episode
|
||||
self.year = year
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
return self.pid
|
||||
|
||||
def get_matches(self, video, hearing_impaired=False):
|
||||
matches = super(PodnapisiSubtitle, self).get_matches(video, hearing_impaired=hearing_impaired)
|
||||
|
||||
# episode
|
||||
if isinstance(video, Episode):
|
||||
# series
|
||||
if video.series and sanitized_string_equal(self.title, video.series):
|
||||
matches.add('series')
|
||||
# season
|
||||
if video.season and self.season == video.season:
|
||||
matches.add('season')
|
||||
# episode
|
||||
if video.episode and self.episode == video.episode:
|
||||
matches.add('episode')
|
||||
# guess
|
||||
for release in self.releases:
|
||||
matches |= guess_matches(video, guess_episode_info(release + '.mkv'))
|
||||
# movie
|
||||
elif isinstance(video, Movie):
|
||||
# title
|
||||
if video.title and sanitized_string_equal(self.title, video.title):
|
||||
matches.add('title')
|
||||
# guess
|
||||
for release in self.releases:
|
||||
matches |= guess_matches(video, guess_movie_info(release + '.mkv'))
|
||||
# year
|
||||
if video.year and self.year == video.year:
|
||||
matches.add('year')
|
||||
|
||||
return matches
|
||||
|
||||
|
||||
class PodnapisiProvider(Provider):
|
||||
languages = ({Language('por', 'BR'), Language('srp', script='Latn')} |
|
||||
{Language.fromalpha2(l) for l in language_converters['alpha2'].codes})
|
||||
server_url = 'http://podnapisi.net/subtitles/'
|
||||
|
||||
def initialize(self):
|
||||
self.session = Session()
|
||||
self.session.headers = {'User-Agent': 'Subliminal/%s' % get_version(__version__)}
|
||||
|
||||
def terminate(self):
|
||||
self.session.close()
|
||||
|
||||
def query(self, language, keyword, season=None, episode=None, year=None):
|
||||
# set parameters, see http://www.podnapisi.net/forum/viewtopic.php?f=62&t=26164#p212652
|
||||
params = {'sXML': 1, 'sL': str(language), 'sK': keyword}
|
||||
is_episode = False
|
||||
if season and episode:
|
||||
is_episode = True
|
||||
params['sTS'] = season
|
||||
params['sTE'] = episode
|
||||
if year:
|
||||
params['sY'] = year
|
||||
|
||||
# loop over paginated results
|
||||
logger.info('Searching subtitles %r', params)
|
||||
subtitles = []
|
||||
pids = set()
|
||||
while True:
|
||||
# query the server
|
||||
xml = etree.fromstring(self.session.get(self.server_url + 'search/old', params=params, timeout=10).content)
|
||||
|
||||
# exit if no results
|
||||
if not int(xml.find('pagination/results').text):
|
||||
logger.debug('No subtitles found')
|
||||
break
|
||||
|
||||
# loop over subtitles
|
||||
for subtitle_xml in xml.findall('subtitle'):
|
||||
# read xml elements
|
||||
language = Language.fromietf(subtitle_xml.find('language').text)
|
||||
hearing_impaired = 'n' in (subtitle_xml.find('flags').text or '')
|
||||
page_link = subtitle_xml.find('url').text
|
||||
pid = subtitle_xml.find('pid').text
|
||||
releases = []
|
||||
if subtitle_xml.find('release').text:
|
||||
for release in subtitle_xml.find('release').text.split():
|
||||
release = re.sub(r'\.+$', '', release) # remove trailing dots
|
||||
release = ''.join(filter(lambda x: ord(x) < 128, release)) # remove non-ascii characters
|
||||
releases.append(release)
|
||||
title = subtitle_xml.find('title').text
|
||||
season = int(subtitle_xml.find('tvSeason').text)
|
||||
episode = int(subtitle_xml.find('tvEpisode').text)
|
||||
year = int(subtitle_xml.find('year').text)
|
||||
|
||||
if is_episode:
|
||||
subtitle = PodnapisiSubtitle(language, hearing_impaired, page_link, pid, releases, title,
|
||||
season=season, episode=episode, year=year)
|
||||
else:
|
||||
subtitle = PodnapisiSubtitle(language, hearing_impaired, page_link, pid, releases, title,
|
||||
year=year)
|
||||
|
||||
# ignore duplicates, see http://www.podnapisi.net/forum/viewtopic.php?f=62&t=26164&start=10#p213321
|
||||
if pid in pids:
|
||||
continue
|
||||
|
||||
logger.debug('Found subtitle %r', subtitle)
|
||||
subtitles.append(subtitle)
|
||||
pids.add(pid)
|
||||
|
||||
# stop on last page
|
||||
if int(xml.find('pagination/current').text) >= int(xml.find('pagination/count').text):
|
||||
break
|
||||
|
||||
# increment current page
|
||||
params['page'] = int(xml.find('pagination/current').text) + 1
|
||||
logger.debug('Getting page %d', params['page'])
|
||||
|
||||
return subtitles
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
if isinstance(video, Episode):
|
||||
return [s for l in languages for s in self.query(l, video.series, season=video.season,
|
||||
episode=video.episode, year=video.year)]
|
||||
elif isinstance(video, Movie):
|
||||
return [s for l in languages for s in self.query(l, video.title, year=video.year)]
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
# download as a zip
|
||||
logger.info('Downloading subtitle %r', subtitle)
|
||||
r = self.session.get(self.server_url + subtitle.pid + '/download', params={'container': 'zip'}, timeout=10)
|
||||
r.raise_for_status()
|
||||
|
||||
# open the zip
|
||||
with ZipFile(io.BytesIO(r.content)) as zf:
|
||||
if len(zf.namelist()) > 1:
|
||||
raise ProviderError('More than one file to unzip')
|
||||
|
||||
subtitle.content = fix_line_ending(zf.read(zf.namelist()[0]))
|
||||
@@ -0,0 +1,228 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import bisect
|
||||
import io
|
||||
import json
|
||||
import logging
|
||||
import zipfile
|
||||
|
||||
from babelfish import Language
|
||||
from guessit import guess_episode_info, guess_movie_info
|
||||
from requests import Session
|
||||
|
||||
from . import ParserBeautifulSoup, Provider, get_version
|
||||
from .. import __version__
|
||||
from ..cache import SHOW_EXPIRATION_TIME, region
|
||||
from ..exceptions import AuthenticationError, ConfigurationError, ProviderError
|
||||
from ..subtitle import Subtitle, fix_line_ending, guess_matches, sanitized_string_equal
|
||||
from ..video import Episode, Movie
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class SubsCenterSubtitle(Subtitle):
|
||||
provider_name = 'subscenter'
|
||||
|
||||
def __init__(self, language, hearing_impaired, page_link, series, season, episode, title, subtitle_id, subtitle_key,
|
||||
downloaded, releases):
|
||||
super(SubsCenterSubtitle, self).__init__(language, hearing_impaired, page_link)
|
||||
self.series = series
|
||||
self.season = season
|
||||
self.episode = episode
|
||||
self.title = title
|
||||
self.subtitle_id = subtitle_id
|
||||
self.subtitle_key = subtitle_key
|
||||
self.downloaded = downloaded
|
||||
self.releases = releases
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
return str(self.subtitle_id)
|
||||
|
||||
def get_matches(self, video, hearing_impaired=False):
|
||||
matches = super(SubsCenterSubtitle, self).get_matches(video, hearing_impaired=hearing_impaired)
|
||||
|
||||
# episode
|
||||
if isinstance(video, Episode):
|
||||
# series
|
||||
if video.series and sanitized_string_equal(self.series, video.series):
|
||||
matches.add('series')
|
||||
# season
|
||||
if video.season and self.season == video.season:
|
||||
matches.add('season')
|
||||
# episode
|
||||
if video.episode and self.episode == video.episode:
|
||||
matches.add('episode')
|
||||
# guess
|
||||
for release in self.releases:
|
||||
matches |= guess_matches(video, guess_episode_info(release + '.mkv'))
|
||||
# movie
|
||||
elif isinstance(video, Movie):
|
||||
# guess
|
||||
for release in self.releases:
|
||||
matches |= guess_matches(video, guess_movie_info(release + '.mkv'))
|
||||
|
||||
# title
|
||||
if video.title and sanitized_string_equal(self.title, video.title):
|
||||
matches.add('title')
|
||||
|
||||
return matches
|
||||
|
||||
|
||||
class SubsCenterProvider(Provider):
|
||||
languages = {Language.fromalpha2(l) for l in ['he']}
|
||||
server = 'http://subscenter.cinemast.com/he/'
|
||||
|
||||
def __init__(self, username=None, password=None):
|
||||
if username is not None and password is None or username is None and password is not None:
|
||||
raise ConfigurationError('Username and password must be specified')
|
||||
|
||||
self.username = username
|
||||
self.password = password
|
||||
self.logged_in = False
|
||||
|
||||
def initialize(self):
|
||||
self.session = Session()
|
||||
self.session.headers = {'User-Agent': 'Subliminal/%s' % get_version(__version__)}
|
||||
|
||||
# login
|
||||
if self.username is not None and self.password is not None:
|
||||
logger.debug('Logging in')
|
||||
url = self.server + 'subscenter/accounts/login/'
|
||||
|
||||
# retrieve CSRF token
|
||||
self.session.get(url)
|
||||
csrf_token = self.session.cookies['csrftoken']
|
||||
|
||||
# actual login
|
||||
data = {'username': self.username, 'password': self.password, 'csrfmiddlewaretoken': csrf_token}
|
||||
r = self.session.post(url, data, allow_redirects=False, timeout=10)
|
||||
|
||||
if r.status_code != 302:
|
||||
raise AuthenticationError(self.username)
|
||||
|
||||
logger.info('Logged in')
|
||||
self.logged_in = True
|
||||
|
||||
def terminate(self):
|
||||
# logout
|
||||
if self.logged_in:
|
||||
logger.info('Logging out')
|
||||
r = self.session.get(self.server + 'subscenter/accounts/logout/', timeout=10)
|
||||
r.raise_for_status()
|
||||
logger.info('Logged out')
|
||||
self.logged_in = False
|
||||
|
||||
self.session.close()
|
||||
|
||||
@region.cache_on_arguments(expiration_time=SHOW_EXPIRATION_TIME)
|
||||
def _search_url_title(self, title, kind):
|
||||
"""Search the URL title for the given `title`.
|
||||
|
||||
:param str title: title to search for.
|
||||
:param str kind: kind of the title, ``movie`` or ``series``.
|
||||
:return: the URL version of the title.
|
||||
:rtype: str or None
|
||||
|
||||
"""
|
||||
# make the search
|
||||
logger.info('Searching title name for %r', title)
|
||||
r = self.session.get(self.server + 'subtitle/search/', params={'q': title}, allow_redirects=False, timeout=10)
|
||||
r.raise_for_status()
|
||||
|
||||
# if redirected, get the url title from the Location header
|
||||
if r.is_redirect:
|
||||
parts = r.headers['Location'].split('/')
|
||||
|
||||
# check kind
|
||||
if parts[-3] == kind:
|
||||
return parts[-2]
|
||||
|
||||
return None
|
||||
|
||||
# otherwise, get the first valid suggestion
|
||||
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
|
||||
suggestions = soup.select('#processes div.generalWindowTop a')
|
||||
logger.debug('Found %d suggestions', len(suggestions))
|
||||
for suggestion in suggestions:
|
||||
parts = suggestion.attrs['href'].split('/')
|
||||
|
||||
# check kind
|
||||
if parts[-3] == kind:
|
||||
return parts[-2]
|
||||
|
||||
def query(self, series=None, season=None, episode=None, title=None):
|
||||
# set the correct parameters depending on the kind
|
||||
if series and season and episode:
|
||||
url_series = self._search_url_title(series, 'series')
|
||||
url = self.server + 'cinemast/data/series/sb/{}/{}/{}/'.format(url_series, season, episode)
|
||||
page_link = self.server + 'subtitle/series/{}/{}/{}/'.format(url_series, season, episode)
|
||||
elif title:
|
||||
url_title = self._search_url_title(title, 'movie')
|
||||
url = self.server + 'cinemast/data/movie/sb/{}/'.format(url_title)
|
||||
page_link = self.server + 'subtitle/movie/{}/'.format(url_title)
|
||||
else:
|
||||
raise ValueError('One or more parameters are missing')
|
||||
|
||||
# get the list of subtitles
|
||||
logger.debug('Getting the list of subtitles')
|
||||
r = self.session.get(url)
|
||||
r.raise_for_status()
|
||||
results = json.loads(r.text)
|
||||
|
||||
# loop over results
|
||||
subtitles = {}
|
||||
for language_code, language_data in results.items():
|
||||
for quality_data in language_data.values():
|
||||
for quality, subtitles_data in quality_data.items():
|
||||
for subtitle_item in subtitles_data.values():
|
||||
# read the item
|
||||
language = Language.fromalpha2(language_code)
|
||||
hearing_impaired = bool(subtitle_item['hearing_impaired'])
|
||||
subtitle_id = subtitle_item['id']
|
||||
subtitle_key = subtitle_item['key']
|
||||
downloaded = subtitle_item['downloaded']
|
||||
release = subtitle_item['subtitle_version']
|
||||
|
||||
# add the release and increment downloaded count if we already have the subtitle
|
||||
if subtitle_id in subtitles:
|
||||
logger.debug('Found additional release %r for subtitle %d', release, subtitle_id)
|
||||
bisect.insort_left(subtitles[subtitle_id].releases, release) # deterministic order
|
||||
subtitles[subtitle_id].downloaded += downloaded
|
||||
continue
|
||||
|
||||
# otherwise create it
|
||||
subtitle = SubsCenterSubtitle(language, hearing_impaired, page_link, series, season, episode,
|
||||
title, subtitle_id, subtitle_key, downloaded, [release])
|
||||
logger.debug('Found subtitle %r', subtitle)
|
||||
subtitles[subtitle_id] = subtitle
|
||||
|
||||
return subtitles.values()
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
series = None
|
||||
season = None
|
||||
episode = None
|
||||
title = video.title
|
||||
|
||||
if isinstance(video, Episode):
|
||||
series = video.series
|
||||
season = video.season
|
||||
episode = video.episode
|
||||
|
||||
return [s for s in self.query(series, season, episode, title) if s.language in languages]
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
# download
|
||||
url = self.server + 'subtitle/download/{}/{}/'.format(subtitle.language.alpha2, subtitle.subtitle_id)
|
||||
params = {'v': subtitle.releases[0], 'key': subtitle.subtitle_key}
|
||||
r = self.session.get(url, params=params, headers={'Referer': subtitle.page_link}, timeout=10)
|
||||
r.raise_for_status()
|
||||
|
||||
# open the zip
|
||||
with zipfile.ZipFile(io.BytesIO(r.content)) as zf:
|
||||
# remove some filenames from the namelist
|
||||
namelist = [n for n in zf.namelist() if not n.endswith('.txt')]
|
||||
if len(namelist) > 1:
|
||||
raise ProviderError('More than one file to unzip')
|
||||
|
||||
subtitle.content = fix_line_ending(zf.read(namelist[0]))
|
||||
@@ -1,14 +1,12 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import logging
|
||||
import babelfish
|
||||
import charade
|
||||
import requests
|
||||
from . import Provider
|
||||
|
||||
from babelfish import Language, language_converters
|
||||
from requests import Session
|
||||
|
||||
from . import Provider, get_version
|
||||
from .. import __version__
|
||||
from ..exceptions import InvalidSubtitle, ProviderNotAvailable, ProviderError
|
||||
from ..subtitle import Subtitle, is_valid_subtitle
|
||||
from ..video import Episode, Movie
|
||||
from ..subtitle import Subtitle, fix_line_ending
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -21,63 +19,63 @@ class TheSubDBSubtitle(Subtitle):
|
||||
super(TheSubDBSubtitle, self).__init__(language)
|
||||
self.hash = hash
|
||||
|
||||
def compute_matches(self, video):
|
||||
matches = set()
|
||||
@property
|
||||
def id(self):
|
||||
return self.hash + '-' + str(self.language)
|
||||
|
||||
def get_matches(self, video, hearing_impaired=False):
|
||||
matches = super(TheSubDBSubtitle, self).get_matches(video, hearing_impaired=hearing_impaired)
|
||||
|
||||
# hash
|
||||
if 'thesubdb' in video.hashes and video.hashes['thesubdb'] == self.hash:
|
||||
matches.add('hash')
|
||||
|
||||
return matches
|
||||
|
||||
|
||||
class TheSubDBProvider(Provider):
|
||||
languages = {babelfish.Language.fromalpha2(l) for l in ['en', 'es', 'fr', 'it', 'nl', 'pl', 'pt', 'ro', 'sv', 'tr']}
|
||||
video_types = (Episode, Movie)
|
||||
languages = {Language.fromthesubdb(l) for l in language_converters['thesubdb'].codes}
|
||||
required_hash = 'thesubdb'
|
||||
server_url = 'http://api.thesubdb.com/'
|
||||
|
||||
def initialize(self):
|
||||
self.session = requests.Session()
|
||||
self.session = Session()
|
||||
self.session.headers = {'User-Agent': 'SubDB/1.0 (subliminal/%s; https://github.com/Diaoul/subliminal)' %
|
||||
__version__}
|
||||
get_version(__version__)}
|
||||
|
||||
def terminate(self):
|
||||
self.session.close()
|
||||
|
||||
def get(self, params):
|
||||
"""Make a GET request on the server with the given parameters
|
||||
|
||||
:param params: params of the request
|
||||
:return: the response
|
||||
:rtype: :class:`requests.Response`
|
||||
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable`
|
||||
|
||||
"""
|
||||
try:
|
||||
r = self.session.get('http://api.thesubdb.com', params=params, timeout=10)
|
||||
except requests.Timeout:
|
||||
raise ProviderNotAvailable('Timeout after 10 seconds')
|
||||
return r
|
||||
|
||||
def query(self, hash):
|
||||
# make the query
|
||||
params = {'action': 'search', 'hash': hash}
|
||||
logger.debug('Searching subtitles %r', params)
|
||||
r = self.get(params)
|
||||
logger.info('Searching subtitles %r', params)
|
||||
r = self.session.get(self.server_url, params=params, timeout=10)
|
||||
|
||||
# handle subtitles not found and errors
|
||||
if r.status_code == 404:
|
||||
logger.debug('No subtitle found')
|
||||
logger.debug('No subtitles found')
|
||||
return []
|
||||
elif r.status_code != 200:
|
||||
raise ProviderError('Request failed with status code %d' % r.status_code)
|
||||
return [TheSubDBSubtitle(language, hash) for language in
|
||||
{babelfish.Language.fromalpha2(l) for l in r.content.split(',')}]
|
||||
r.raise_for_status()
|
||||
|
||||
# loop over languages
|
||||
subtitles = []
|
||||
for language_code in r.text.split(','):
|
||||
language = Language.fromthesubdb(language_code)
|
||||
|
||||
subtitle = TheSubDBSubtitle(language, hash)
|
||||
logger.debug('Found subtitle %r', subtitle)
|
||||
subtitles.append(subtitle)
|
||||
|
||||
return subtitles
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
return [s for s in self.query(video.hashes['thesubdb']) if s.language in languages]
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
logger.info('Downloading subtitle %r', subtitle)
|
||||
params = {'action': 'download', 'hash': subtitle.hash, 'language': subtitle.language.alpha2}
|
||||
r = self.get(params)
|
||||
if r.status_code != 200:
|
||||
raise ProviderError('Request failed with status code %d' % r.status_code)
|
||||
subtitle_text = r.content.decode(charade.detect(r.content)['encoding'])
|
||||
if not is_valid_subtitle(subtitle_text):
|
||||
raise InvalidSubtitle
|
||||
return subtitle_text
|
||||
r = self.session.get(self.server_url, params=params, timeout=10)
|
||||
r.raise_for_status()
|
||||
|
||||
subtitle.content = fix_line_ending(r.content)
|
||||
|
||||
+136
-101
@@ -1,40 +1,47 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import io
|
||||
import logging
|
||||
import re
|
||||
import zipfile
|
||||
import babelfish
|
||||
import bs4
|
||||
import charade
|
||||
import requests
|
||||
from . import Provider
|
||||
from zipfile import ZipFile
|
||||
|
||||
from babelfish import Language
|
||||
from requests import Session
|
||||
|
||||
from . import ParserBeautifulSoup, Provider, get_version
|
||||
from .. import __version__
|
||||
from ..cache import region
|
||||
from ..exceptions import InvalidSubtitle, ProviderNotAvailable, ProviderError
|
||||
from ..subtitle import Subtitle, is_valid_subtitle
|
||||
from ..cache import EPISODE_EXPIRATION_TIME, SHOW_EXPIRATION_TIME, region
|
||||
from ..exceptions import ProviderError
|
||||
from ..subtitle import Subtitle, fix_line_ending, guess_matches, guess_properties, sanitized_string_equal
|
||||
from ..video import Episode
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
link_re = re.compile('^(?P<series>.+?)(?: \(?\d{4}\)?| \((?:US|UK)\))? \((?P<first_year>\d{4})-\d{4}\)$')
|
||||
episode_id_re = re.compile('^episode-\d+\.html$')
|
||||
|
||||
|
||||
class TVsubtitlesSubtitle(Subtitle):
|
||||
provider_name = 'tvsubtitles'
|
||||
|
||||
def __init__(self, language, series, season, episode, id, rip, release):
|
||||
super(TVsubtitlesSubtitle, self).__init__(language)
|
||||
def __init__(self, language, page_link, subtitle_id, series, season, episode, year, rip, release):
|
||||
super(TVsubtitlesSubtitle, self).__init__(language, page_link=page_link)
|
||||
self.subtitle_id = subtitle_id
|
||||
self.series = series
|
||||
self.season = season
|
||||
self.episode = episode
|
||||
self.id = id
|
||||
self.year = year
|
||||
self.rip = rip
|
||||
self.release = release
|
||||
|
||||
def compute_matches(self, video):
|
||||
matches = set()
|
||||
@property
|
||||
def id(self):
|
||||
return str(self.subtitle_id)
|
||||
|
||||
def get_matches(self, video, hearing_impaired=False):
|
||||
matches = super(TVsubtitlesSubtitle, self).get_matches(video, hearing_impaired=hearing_impaired)
|
||||
|
||||
# series
|
||||
if video.series and self.series == video.series:
|
||||
if video.series and sanitized_string_equal(self.series, video.series):
|
||||
matches.add('series')
|
||||
# season
|
||||
if video.season and self.season == video.season:
|
||||
@@ -42,125 +49,153 @@ class TVsubtitlesSubtitle(Subtitle):
|
||||
# episode
|
||||
if video.episode and self.episode == video.episode:
|
||||
matches.add('episode')
|
||||
# year
|
||||
if self.year == video.year:
|
||||
matches.add('year')
|
||||
# release_group
|
||||
if video.release_group and self.release and video.release_group.lower() in self.release.lower():
|
||||
matches.add('release_group')
|
||||
# video_codec
|
||||
if video.video_codec and self.release and (video.video_codec in self.release.lower()
|
||||
or video.video_codec == 'h264' and 'x264' in self.release.lower()):
|
||||
matches.add('video_codec')
|
||||
# resolution
|
||||
if video.resolution and self.rip and video.resolution in self.rip.lower():
|
||||
matches.add('resolution')
|
||||
# other properties
|
||||
if self.release:
|
||||
matches |= guess_matches(video, guess_properties(self.release), partial=True)
|
||||
if self.rip:
|
||||
matches |= guess_matches(video, guess_properties(self.rip), partial=True)
|
||||
|
||||
return matches
|
||||
|
||||
|
||||
class TVsubtitlesProvider(Provider):
|
||||
languages = {babelfish.Language('por', 'BR')} | {babelfish.Language(l)
|
||||
for l in ['ara', 'bul', 'ces', 'dan', 'deu', 'ell', 'eng', 'fin', 'fra', 'hun', 'ita', 'jpn', 'kor',
|
||||
'nld', 'pol', 'por', 'ron', 'rus', 'spa', 'swe', 'tur', 'ukr', 'zho']}
|
||||
videos = (Episode,)
|
||||
server = 'http://www.tvsubtitles.net'
|
||||
episode_id_re = re.compile('^episode-(\d+)\.html$')
|
||||
subtitle_re = re.compile('^\/subtitle-(\d+)\.html$')
|
||||
languages = {Language('por', 'BR')} | {Language(l) for l in [
|
||||
'ara', 'bul', 'ces', 'dan', 'deu', 'ell', 'eng', 'fin', 'fra', 'hun', 'ita', 'jpn', 'kor', 'nld', 'pol', 'por',
|
||||
'ron', 'rus', 'spa', 'swe', 'tur', 'ukr', 'zho'
|
||||
]}
|
||||
video_types = (Episode,)
|
||||
server_url = 'http://www.tvsubtitles.net/'
|
||||
|
||||
def initialize(self):
|
||||
self.session = requests.Session()
|
||||
self.session.headers = {'User-Agent': 'Subliminal/%s' % __version__}
|
||||
self.session = Session()
|
||||
self.session.headers = {'User-Agent': 'Subliminal/%s' % get_version(__version__)}
|
||||
|
||||
def terminate(self):
|
||||
self.session.close()
|
||||
|
||||
def request(self, url, params=None, data=None, method='GET'):
|
||||
"""Make a `method` request on `url` with the given parameters
|
||||
@region.cache_on_arguments(expiration_time=SHOW_EXPIRATION_TIME)
|
||||
def search_show_id(self, series, year=None):
|
||||
"""Search the show id from the `series` and `year`.
|
||||
|
||||
:param string url: part of the URL to reach with the leading slash
|
||||
:param dict params: params of the request
|
||||
:param dict data: data of the request
|
||||
:return: the response
|
||||
:rtype: :class:`bs4.BeautifulSoup`
|
||||
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable`
|
||||
|
||||
"""
|
||||
try:
|
||||
r = self.session.request(method, self.server + url, params=params, data=data, timeout=10)
|
||||
except requests.Timeout:
|
||||
raise ProviderNotAvailable('Timeout after 10 seconds')
|
||||
if r.status_code != 200:
|
||||
raise ProviderNotAvailable('Request failed with status code %d' % r.status_code)
|
||||
return bs4.BeautifulSoup(r.content, ['permissive'])
|
||||
|
||||
@region.cache_on_arguments()
|
||||
def find_show_id(self, series):
|
||||
"""Find a show id from the series
|
||||
|
||||
:param string series: series of the episode
|
||||
:return: the show id, if any
|
||||
:param str series: series of the episode.
|
||||
:param year: year of the series, if any.
|
||||
:type year: int or None
|
||||
:return: the show id, if any.
|
||||
:rtype: int or None
|
||||
|
||||
"""
|
||||
data = {'q': series}
|
||||
logger.debug('Searching series %r', data)
|
||||
soup = self.request('/search.php', data=data, method='POST')
|
||||
links = soup.select('div.left li div a[href^="/tvshow-"]')
|
||||
if not links:
|
||||
logger.info('Series %r not found', series)
|
||||
return None
|
||||
return int(links[0]['href'][8:-5])
|
||||
# make the search
|
||||
logger.info('Searching show id for %r', series)
|
||||
r = self.session.post(self.server_url + 'search.php', data={'q': series}, timeout=10)
|
||||
r.raise_for_status()
|
||||
|
||||
@region.cache_on_arguments()
|
||||
def find_episode_ids(self, show_id, season):
|
||||
"""Find episode ids from the show id and the season
|
||||
# get the series out of the suggestions
|
||||
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
|
||||
show_id = None
|
||||
for suggestion in soup.select('div.left li div a[href^="/tvshow-"]'):
|
||||
match = link_re.match(suggestion.text)
|
||||
if not match:
|
||||
logger.error('Failed to match %s', suggestion.text)
|
||||
continue
|
||||
|
||||
:param int show_id: show id
|
||||
:param int season: season of the episode
|
||||
:return: episode ids per episode number
|
||||
if match.group('series').lower() == series.lower():
|
||||
if year is not None and int(match.group('first_year')) != year:
|
||||
logger.debug('Year does not match')
|
||||
continue
|
||||
show_id = int(suggestion['href'][8:-5])
|
||||
logger.debug('Found show id %d', show_id)
|
||||
break
|
||||
|
||||
return show_id
|
||||
|
||||
@region.cache_on_arguments(expiration_time=EPISODE_EXPIRATION_TIME)
|
||||
def get_episode_ids(self, show_id, season):
|
||||
"""Get episode ids from the show id and the season.
|
||||
|
||||
:param int show_id: show id.
|
||||
:param int season: season of the episode.
|
||||
:return: episode ids per episode number.
|
||||
:rtype: dict
|
||||
|
||||
"""
|
||||
params = {'show_id': show_id, 'season': season}
|
||||
logger.debug('Searching episodes %r', params)
|
||||
soup = self.request('/tvshow-{show_id}-{season}.html'.format(**params))
|
||||
# get the page of the season of the show
|
||||
logger.info('Getting the page of show id %d, season %d', show_id, season)
|
||||
r = self.session.get(self.server_url + 'tvshow-%d-%d.html' % (show_id, season), timeout=10)
|
||||
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
|
||||
|
||||
# loop over episode rows
|
||||
episode_ids = {}
|
||||
for row in soup.select('table#table5 tr'):
|
||||
if not row('a', href=self.episode_id_re):
|
||||
# skip rows that do not have a link to the episode page
|
||||
if not row('a', href=episode_id_re):
|
||||
continue
|
||||
|
||||
# extract data from the cells
|
||||
cells = row('td')
|
||||
episode_ids[int(cells[0].string.split('x')[1])] = int(cells[1].a['href'][8:-5])
|
||||
episode = int(cells[0].text.split('x')[1])
|
||||
episode_id = int(cells[1].a['href'][8:-5])
|
||||
episode_ids[episode] = episode_id
|
||||
|
||||
if episode_ids:
|
||||
logger.debug('Found episode ids %r', episode_ids)
|
||||
else:
|
||||
logger.warning('No episode ids found')
|
||||
|
||||
return episode_ids
|
||||
|
||||
def query(self, series, season, episode):
|
||||
show_id = self.find_show_id(series.lower())
|
||||
def query(self, series, season, episode, year=None):
|
||||
# search the show id
|
||||
show_id = self.search_show_id(series, year)
|
||||
if show_id is None:
|
||||
logger.error('No show id found for %r (%r)', series, {'year': year})
|
||||
return []
|
||||
episode_ids = self.find_episode_ids(show_id, season)
|
||||
|
||||
# get the episode ids
|
||||
episode_ids = self.get_episode_ids(show_id, season)
|
||||
if episode not in episode_ids:
|
||||
logger.info('Episode %d not found', episode)
|
||||
logger.error('Episode %d not found', episode)
|
||||
return []
|
||||
params = {'episode_id': episode_ids[episode]}
|
||||
logger.debug('Searching episode %r', params)
|
||||
soup = self.request('/episode-{episode_id}.html'.format(**params))
|
||||
return [TVsubtitlesSubtitle(babelfish.Language.fromtvsubtitles(row.h5.img['src'][13:-4]), series, season,
|
||||
episode, row['href'][10:-5], row.find('p', title='rip').text.strip() or None,
|
||||
row.find('p', title='release').text.strip() or None)
|
||||
for row in soup('a', href=self.subtitle_re)]
|
||||
|
||||
# get the episode page
|
||||
logger.info('Getting the page for episode %d', episode_ids[episode])
|
||||
r = self.session.get(self.server_url + 'episode-%d.html' % episode_ids[episode], timeout=10)
|
||||
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
|
||||
|
||||
# loop over subtitles rows
|
||||
subtitles = []
|
||||
for row in soup.select('.subtitlen'):
|
||||
# read the item
|
||||
language = Language.fromtvsubtitles(row.h5.img['src'][13:-4])
|
||||
subtitle_id = int(row.parent['href'][10:-5])
|
||||
page_link = self.server_url + 'subtitle-%d.html' % subtitle_id
|
||||
rip = row.find('p', title='rip').text.strip() or None
|
||||
release = row.find('p', title='release').text.strip() or None
|
||||
|
||||
subtitle = TVsubtitlesSubtitle(language, page_link, subtitle_id, series, season, episode, year, rip,
|
||||
release)
|
||||
logger.debug('Found subtitle %s', subtitle)
|
||||
subtitles.append(subtitle)
|
||||
|
||||
return subtitles
|
||||
|
||||
def list_subtitles(self, video, languages):
|
||||
return [s for s in self.query(video.series, video.season, video.episode) if s.language in languages]
|
||||
return [s for s in self.query(video.series, video.season, video.episode, video.year) if s.language in languages]
|
||||
|
||||
def download_subtitle(self, subtitle):
|
||||
try:
|
||||
r = self.session.get(self.server + '/download-{subtitle_id}.html'.format(subtitle_id=subtitle.id),
|
||||
timeout=10)
|
||||
except requests.Timeout:
|
||||
raise ProviderNotAvailable('Timeout after 10 seconds')
|
||||
if r.status_code != 200:
|
||||
raise ProviderNotAvailable('Request failed with status code %d' % r.status_code)
|
||||
with zipfile.ZipFile(io.BytesIO(r.content)) as zf:
|
||||
# download as a zip
|
||||
logger.info('Downloading subtitle %r', subtitle)
|
||||
r = self.session.get(self.server_url + 'download-%d.html' % subtitle.subtitle_id, timeout=10)
|
||||
r.raise_for_status()
|
||||
|
||||
# open the zip
|
||||
with ZipFile(io.BytesIO(r.content)) as zf:
|
||||
if len(zf.namelist()) > 1:
|
||||
raise ProviderError('More than one file to unzip')
|
||||
subtitle_bytes = zf.read(zf.namelist()[0])
|
||||
subtitle_text = subtitle_bytes.decode(charade.detect(subtitle_bytes)['encoding'])
|
||||
if not is_valid_subtitle(subtitle_text):
|
||||
raise InvalidSubtitle
|
||||
return subtitle_text
|
||||
|
||||
subtitle.content = fix_line_ending(zf.read(zf.namelist()[0]))
|
||||
|
||||
+101
-60
@@ -1,84 +1,125 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import print_function, unicode_literals
|
||||
from sympy import Eq, symbols, solve
|
||||
"""
|
||||
This module is responsible for calculating the :attr:`~subliminal.video.Video.scores` dicts
|
||||
(:attr:`Episode.scores <subliminal.video.Episode.scores>` and :attr:`Movie.scores <subliminal.video.Movie.scores>`)
|
||||
by assigning a score to a match.
|
||||
|
||||
.. note::
|
||||
|
||||
To avoid unnecessary dependency on `sympy <http://www.sympy.org/>`_ and boost subliminal's import time, the
|
||||
resulting scores are hardcoded in their respective classes and manually updated when the set of equations change.
|
||||
|
||||
Available matches:
|
||||
|
||||
* hearing_impaired
|
||||
* format
|
||||
* release_group
|
||||
* resolution
|
||||
* video_codec
|
||||
* audio_codec
|
||||
* imdb_id
|
||||
* hash
|
||||
* title
|
||||
* year
|
||||
* series
|
||||
* season
|
||||
* episode
|
||||
* tvdb_id
|
||||
|
||||
|
||||
The :meth:`Subtitle.get_matches <subliminal.subtitle.Subtitle.get_matches>` method get the matches between the
|
||||
:class:`~subliminal.subtitle.Subtitle` and the :class:`~subliminal.video.Video` and
|
||||
:func:`~subliminal.subtitle.compute_score` computes the score.
|
||||
|
||||
"""
|
||||
from __future__ import print_function
|
||||
|
||||
from sympy import Eq, solve, symbols
|
||||
|
||||
|
||||
# Symbols
|
||||
release_group, resolution, video_codec, audio_codec = symbols('release_group resolution video_codec audio_codec')
|
||||
imdb_id, hash, title, series, tvdb_id, season, episode = symbols('imdb_id hash title series tvdb_id season episode')
|
||||
year = symbols('year')
|
||||
hearing_impaired, format, release_group, resolution = symbols('hearing_impaired format release_group resolution')
|
||||
video_codec, audio_codec, imdb_id, hash, title, year = symbols('video_codec audio_codec imdb_id hash title year')
|
||||
series, season, episode, tvdb_id = symbols('series season episode tvdb_id')
|
||||
|
||||
|
||||
def get_episode_equations():
|
||||
"""Get the score equations for a :class:`~subliminal.video.Episode`
|
||||
def solve_episode_equations():
|
||||
"""Solve the score equations for an :class:`~subliminal.video.Episode`.
|
||||
|
||||
The equations are the following:
|
||||
|
||||
1. hash = resolution + video_codec + audio_codec + series + season + episode + release_group
|
||||
2. series = resolution + video_codec + audio_codec + season + episode + 1
|
||||
3. tvdb_id = series
|
||||
4. season = resolution + video_codec + audio_codec + 1
|
||||
5. imdb_id = series + season + episode
|
||||
6. resolution = video_codec
|
||||
7. video_codec = 2 * audio_codec
|
||||
8. title = season + episode
|
||||
9. season = episode
|
||||
10. release_group = season
|
||||
11. audio_codec = 1
|
||||
1. hash = resolution + format + video_codec + audio_codec + series + season + episode + year + release_group
|
||||
2. series = resolution + video_codec + audio_codec + season + episode + release_group + 1
|
||||
3. year = series
|
||||
4. tvdb_id = series + year
|
||||
5. season = resolution + video_codec + audio_codec + 1
|
||||
6. imdb_id = series + season + episode + year
|
||||
7. format = video_codec + audio_codec
|
||||
8. resolution = video_codec
|
||||
9. video_codec = 2 * audio_codec
|
||||
10. title = season + episode
|
||||
11. season = episode
|
||||
12. release_group = season
|
||||
13. audio_codec = 2 * hearing_impaired
|
||||
14. hearing_impaired = 1
|
||||
|
||||
:return: the score equations for an episode
|
||||
:rtype: list of :class:`sympy.Eq`
|
||||
:return: the result of the equations.
|
||||
:rtype: dict
|
||||
|
||||
"""
|
||||
equations = []
|
||||
equations.append(Eq(hash, resolution + video_codec + audio_codec + series + season + episode + release_group))
|
||||
equations.append(Eq(series, resolution + video_codec + audio_codec + season + episode + release_group))
|
||||
equations.append(Eq(tvdb_id, series))
|
||||
equations.append(Eq(season, resolution + video_codec + audio_codec + 1))
|
||||
equations.append(Eq(imdb_id, series + season + episode))
|
||||
equations.append(Eq(resolution, video_codec))
|
||||
equations.append(Eq(video_codec, 2 * audio_codec))
|
||||
equations.append(Eq(title, season + episode))
|
||||
equations.append(Eq(season, episode))
|
||||
equations.append(Eq(release_group, season))
|
||||
equations.append(Eq(audio_codec, 1))
|
||||
return equations
|
||||
equations = [
|
||||
Eq(hash, resolution + format + video_codec + audio_codec + series + season + episode + year + release_group),
|
||||
Eq(series, resolution + video_codec + audio_codec + season + episode + release_group + 1),
|
||||
Eq(year, series),
|
||||
Eq(tvdb_id, series + year),
|
||||
Eq(season, resolution + video_codec + audio_codec + 1),
|
||||
Eq(imdb_id, series + season + episode + year),
|
||||
Eq(format, video_codec + audio_codec),
|
||||
Eq(resolution, video_codec),
|
||||
Eq(video_codec, 2 * audio_codec),
|
||||
Eq(title, season + episode),
|
||||
Eq(season, episode),
|
||||
Eq(release_group, season),
|
||||
Eq(audio_codec, 2 * hearing_impaired),
|
||||
Eq(hearing_impaired, 1)
|
||||
]
|
||||
|
||||
return solve(equations, [hearing_impaired, format, release_group, resolution, video_codec, audio_codec, imdb_id,
|
||||
hash, series, season, episode, title, year, tvdb_id])
|
||||
|
||||
|
||||
def get_movie_equations():
|
||||
"""Get the score equations for a :class:`~subliminal.video.Movie`
|
||||
def solve_movie_equations():
|
||||
"""Solve the score equations for a :class:`~subliminal.video.Movie`.
|
||||
|
||||
The equations are the following:
|
||||
|
||||
1. hash = resolution + video_codec + audio_codec + title + year + release_group
|
||||
1. hash = resolution + format + video_codec + audio_codec + title + year + release_group
|
||||
2. imdb_id = hash
|
||||
3. resolution = video_codec
|
||||
4. video_codec = 2 * audio_codec
|
||||
5. title = resolution + video_codec + audio_codec + year + 1
|
||||
6. release_group = resolution + video_codec + audio_codec + 1
|
||||
7. year = release_group + 1
|
||||
8. audio_codec = 1
|
||||
5. format = video_codec + audio_codec
|
||||
6. title = resolution + video_codec + audio_codec + year + 1
|
||||
7. release_group = resolution + video_codec + audio_codec + 1
|
||||
8. year = release_group + 1
|
||||
9. audio_codec = 2 * hearing_impaired
|
||||
10. hearing_impaired = 1
|
||||
|
||||
:return: the score equations for a movie
|
||||
:rtype: list of :class:`sympy.Eq`
|
||||
:return: the result of the equations.
|
||||
:rtype: dict
|
||||
|
||||
"""
|
||||
equations = []
|
||||
equations.append(Eq(hash, resolution + video_codec + audio_codec + title + year + release_group))
|
||||
equations.append(Eq(imdb_id, hash))
|
||||
equations.append(Eq(resolution, video_codec))
|
||||
equations.append(Eq(video_codec, 2 * audio_codec))
|
||||
equations.append(Eq(title, resolution + video_codec + audio_codec + year + 1))
|
||||
equations.append(Eq(video_codec, 2 * audio_codec))
|
||||
equations.append(Eq(release_group, resolution + video_codec + audio_codec + 1))
|
||||
equations.append(Eq(year, release_group + 1))
|
||||
equations.append(Eq(audio_codec, 1))
|
||||
return equations
|
||||
equations = [
|
||||
Eq(hash, resolution + format + video_codec + audio_codec + title + year + release_group),
|
||||
Eq(imdb_id, hash),
|
||||
Eq(resolution, video_codec),
|
||||
Eq(video_codec, 2 * audio_codec),
|
||||
Eq(format, video_codec + audio_codec),
|
||||
Eq(title, resolution + video_codec + audio_codec + year + 1),
|
||||
Eq(release_group, resolution + video_codec + audio_codec + 1),
|
||||
Eq(year, release_group + 1),
|
||||
Eq(audio_codec, 2 * hearing_impaired),
|
||||
Eq(hearing_impaired, 1)
|
||||
]
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
print(solve(get_episode_equations(), [release_group, resolution, video_codec, audio_codec, imdb_id,
|
||||
hash, series, tvdb_id, season, episode, title]))
|
||||
print(solve(get_movie_equations(), [release_group, resolution, video_codec, audio_codec, imdb_id,
|
||||
hash, title, year]))
|
||||
return solve(equations, [hearing_impaired, format, release_group, resolution, video_codec, audio_codec, imdb_id,
|
||||
hash, title, year])
|
||||
|
||||
+281
-93
@@ -1,153 +1,341 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import logging
|
||||
import os.path
|
||||
import babelfish
|
||||
import pysrt
|
||||
from .video import Episode, Movie
|
||||
import os
|
||||
import re
|
||||
|
||||
import chardet
|
||||
from guessit.matchtree import MatchTree
|
||||
from guessit.plugins.transformers import get_transformer
|
||||
from codecs import lookup
|
||||
import pysrt
|
||||
|
||||
from .video import Episode, Movie
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Subtitle(object):
|
||||
"""Base class for subtitle
|
||||
"""Base class for subtitle.
|
||||
|
||||
:param language: language of the subtitle
|
||||
:type language: :class:`babelfish.Language`
|
||||
:param bool hearing_impaired: `True` if the subtitle is hearing impaired, `False` otherwise
|
||||
:param language: language of the subtitle.
|
||||
:type language: :class:`~babelfish.language.Language`
|
||||
:param bool hearing_impaired: whether or not the subtitle is hearing impaired.
|
||||
:param page_link: URL of the web page from which the subtitle can be downloaded.
|
||||
:type page_link: str
|
||||
:param encoding: Text encoding of the subtitle
|
||||
:type encoding: str
|
||||
|
||||
"""
|
||||
def __init__(self, language, hearing_impaired=False):
|
||||
#: Name of the provider that returns that class of subtitle
|
||||
provider_name = ''
|
||||
|
||||
def __init__(self, language, hearing_impaired=False, page_link=None, encoding=None):
|
||||
#: Language of the subtitle
|
||||
self.language = language
|
||||
|
||||
#: Whether or not the subtitle is hearing impaired
|
||||
self.hearing_impaired = hearing_impaired
|
||||
|
||||
def compute_matches(self, video):
|
||||
"""Compute the matches of the subtitle against the `video`
|
||||
#: URL of the web page from which the subtitle can be downloaded
|
||||
self.page_link = page_link
|
||||
|
||||
:param video: the video to compute the matches against
|
||||
#: Content as bytes
|
||||
self.content = None
|
||||
|
||||
#: Encoding to decode with when accessing :attr:`text`
|
||||
if encoding:
|
||||
try:
|
||||
# set encoding to canonical codec name
|
||||
self.encoding = lookup(encoding).name
|
||||
except (TypeError, LookupError):
|
||||
logger.debug('Unsupported encoding "%s", setting to None', encoding)
|
||||
self.encoding = None
|
||||
else:
|
||||
self.encoding = None
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
"""Unique identifier of the subtitle."""
|
||||
raise NotImplementedError
|
||||
|
||||
@property
|
||||
def text(self):
|
||||
"""Content as string.
|
||||
|
||||
If :attr:`encoding` is None, the encoding is guessed with :meth:`guess_encoding`
|
||||
|
||||
"""
|
||||
if not self.content:
|
||||
return
|
||||
|
||||
try:
|
||||
return self.content.decode(self.encoding, errors='replace')
|
||||
except (TypeError, LookupError):
|
||||
# Failback to guess_encoding if empty or unknown encoding provided
|
||||
return self.content.decode(self.guess_encoding(), errors='replace')
|
||||
|
||||
def is_valid(self):
|
||||
"""Check if a :attr:`text` is a valid SubRip format.
|
||||
|
||||
:return: whether or not the subtitle is valid.
|
||||
:rtype: bool
|
||||
|
||||
"""
|
||||
if not self.text:
|
||||
return False
|
||||
|
||||
try:
|
||||
pysrt.from_string(self.text, error_handling=pysrt.ERROR_RAISE)
|
||||
except pysrt.Error as e:
|
||||
if e.args[0] < 80:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def guess_encoding(self):
|
||||
"""Guess encoding using the language, falling back on chardet.
|
||||
|
||||
:return: the guessed encoding.
|
||||
:rtype: str
|
||||
|
||||
"""
|
||||
logger.info('Guessing encoding for language %s', self.language)
|
||||
|
||||
# always try utf-8 first
|
||||
encodings = ['utf-8']
|
||||
|
||||
# add language-specific encodings
|
||||
if self.language.alpha3 == 'zho':
|
||||
encodings.extend(['gb18030', 'big5'])
|
||||
elif self.language.alpha3 == 'jpn':
|
||||
encodings.append('shift-jis')
|
||||
elif self.language.alpha3 == 'ara':
|
||||
encodings.append('windows-1256')
|
||||
elif self.language.alpha3 == 'heb':
|
||||
encodings.append('windows-1255')
|
||||
elif self.language.alpha3 == 'tur':
|
||||
encodings.extend(['iso-8859-9', 'windows-1254'])
|
||||
elif self.language.alpha3 == 'pol':
|
||||
# Eastern European Group 1
|
||||
encodings.extend(['windows-1250'])
|
||||
elif self.language.alpha3 == 'bul':
|
||||
# Eastern European Group 2
|
||||
encodings.extend(['windows-1251'])
|
||||
else:
|
||||
# Western European (windows-1252)
|
||||
encodings.append('latin-1')
|
||||
|
||||
# try to decode
|
||||
logger.debug('Trying encodings %r', encodings)
|
||||
for encoding in encodings:
|
||||
try:
|
||||
self.content.decode(encoding)
|
||||
except UnicodeDecodeError:
|
||||
pass
|
||||
else:
|
||||
logger.info('Guessed encoding %s', encoding)
|
||||
return encoding
|
||||
|
||||
logger.warning('Could not guess encoding from language')
|
||||
|
||||
# fallback on chardet
|
||||
encoding = chardet.detect(self.content)['encoding']
|
||||
logger.info('Chardet found encoding %s', encoding)
|
||||
|
||||
return encoding
|
||||
|
||||
def get_matches(self, video, hearing_impaired=False):
|
||||
"""Get the matches against the `video`.
|
||||
|
||||
:param video: the video to get the matches with.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:return: matches of the subtitle
|
||||
:param bool hearing_impaired: hearing impaired preference.
|
||||
:return: matches of the subtitle.
|
||||
:rtype: set
|
||||
|
||||
"""
|
||||
raise NotImplementedError
|
||||
matches = set()
|
||||
|
||||
def compute_score(self, video):
|
||||
"""Compute the score of the subtitle against the `video`
|
||||
# hearing_impaired
|
||||
if self.hearing_impaired == hearing_impaired:
|
||||
matches.add('hearing_impaired')
|
||||
|
||||
There are equivalent matches so that a provider can match one element or its equivalent. This is
|
||||
to give all provider a chance to have a score in the same range without hurting quality.
|
||||
return matches
|
||||
|
||||
* Matching :class:`~subliminal.video.Video`'s `hashes` is equivalent to matching everything else
|
||||
* Matching :class:`~subliminal.video.Episode`'s `season` and `episode`
|
||||
is equivalent to matching :class:`~subliminal.video.Episode`'s `title`
|
||||
* Matching :class:`~subliminal.video.Episode`'s `tvdb_id` is equivalent to matching
|
||||
:class:`~subliminal.video.Episode`'s `series`
|
||||
|
||||
:param video: the video to compute the score against
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:return: score of the subtitle
|
||||
:rtype: int
|
||||
|
||||
"""
|
||||
score = 0
|
||||
# compute matches
|
||||
initial_matches = self.compute_matches(video)
|
||||
matches = initial_matches.copy()
|
||||
# hash is the perfect match
|
||||
if 'hash' in matches:
|
||||
score = video.scores['hash']
|
||||
else:
|
||||
# remove equivalences
|
||||
if isinstance(video, Episode):
|
||||
if 'imdb_id' in matches:
|
||||
matches -= {'series', 'tvdb_id', 'season', 'episode', 'title'}
|
||||
if 'tvdb_id' in matches:
|
||||
matches -= {'series'}
|
||||
if 'title' in matches:
|
||||
matches -= {'season', 'episode'}
|
||||
# add other scores
|
||||
score += sum((video.scores[match] for match in matches))
|
||||
logger.info('Computed score %d with matches %r', score, initial_matches)
|
||||
return score
|
||||
def __hash__(self):
|
||||
return hash(self.provider_name + '-' + self.id)
|
||||
|
||||
def __repr__(self):
|
||||
return '<%s [%r]>' % (self.__class__.__name__, self.language)
|
||||
return '<%s %r [%s]>' % (self.__class__.__name__, self.id, self.language)
|
||||
|
||||
|
||||
def get_subtitle_path(video_path, language=None):
|
||||
"""Create the subtitle path from the given `video_path` and `language`
|
||||
def compute_score(matches, video, scores=None):
|
||||
"""Compute the score of the `matches` against the `video`.
|
||||
|
||||
:param string video_path: path to the video
|
||||
:param language: language of the subtitle to put in the path
|
||||
:type language: :class:`babelfish.Language` or None
|
||||
:return: path of the subtitle
|
||||
:rtype: string
|
||||
Some matches count as much as a combination of others in order to level the final score:
|
||||
|
||||
* `hash` removes everything else
|
||||
* For :class:`~subliminal.video.Episode`
|
||||
|
||||
* `imdb_id` removes `series`, `tvdb_id`, `season`, `episode`, `title` and `year`
|
||||
* `tvdb_id` removes `series` and `year`
|
||||
* `title` removes `season` and `episode`
|
||||
|
||||
|
||||
:param video: the video to get the score with.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:param dict scores: scores to use, if `None`, the :attr:`~subliminal.video.Video.scores` from the video are used.
|
||||
:return: score of the subtitle.
|
||||
:rtype: int
|
||||
|
||||
"""
|
||||
subtitle_path = os.path.splitext(video_path)[0]
|
||||
if language is not None:
|
||||
try:
|
||||
return subtitle_path + '.%s.%s' % (language.alpha2, 'srt')
|
||||
except babelfish.NoConversionError:
|
||||
return subtitle_path + '.%s.%s' % (language.alpha3, 'srt')
|
||||
return subtitle_path + '.srt'
|
||||
final_matches = matches.copy()
|
||||
scores = scores or video.scores
|
||||
|
||||
logger.info('Computing score for matches %r and %r', matches, video)
|
||||
|
||||
# remove equivalent match combinations
|
||||
if 'hash' in final_matches:
|
||||
final_matches &= {'hash', 'hearing_impaired'}
|
||||
elif isinstance(video, Episode):
|
||||
if 'imdb_id' in final_matches:
|
||||
final_matches -= {'series', 'tvdb_id', 'season', 'episode', 'title', 'year'}
|
||||
if 'tvdb_id' in final_matches:
|
||||
final_matches -= {'series', 'year'}
|
||||
if 'title' in final_matches:
|
||||
final_matches -= {'season', 'episode'}
|
||||
|
||||
# compute score
|
||||
logger.debug('Final matches: %r', final_matches)
|
||||
score = sum((scores[match] for match in final_matches))
|
||||
logger.info('Computed score %d', score)
|
||||
|
||||
# ensure score is capped by the best possible score (hash + preferences)
|
||||
assert score <= scores['hash'] + scores['hearing_impaired']
|
||||
|
||||
return score
|
||||
|
||||
|
||||
def is_valid_subtitle(subtitle_text):
|
||||
"""Check if a subtitle text is a valid SubRip format
|
||||
def get_subtitle_path(video_path, language=None, extension='.srt'):
|
||||
"""Get the subtitle path using the `video_path` and `language`.
|
||||
|
||||
:return: `True` if the subtitle is valid, `False` otherwise
|
||||
:param str video_path: path to the video.
|
||||
:param language: language of the subtitle to put in the path.
|
||||
:type language: :class:`~babelfish.language.Language`
|
||||
:param str extension: extension of the subtitle.
|
||||
:return: path of the subtitle.
|
||||
:rtype: str
|
||||
|
||||
"""
|
||||
subtitle_root = os.path.splitext(video_path)[0]
|
||||
|
||||
if language:
|
||||
subtitle_root += '.' + str(language)
|
||||
|
||||
return subtitle_root + extension
|
||||
|
||||
|
||||
def sanitize_string(string, replacement=''):
|
||||
"""Replace any special characters from a string.
|
||||
|
||||
:param str string: the string to sanitize.
|
||||
:param str replacement: the replacement for special characters.
|
||||
:return: the sanitized string.
|
||||
:rtype: str
|
||||
|
||||
"""
|
||||
return re.sub('[^ a-zA-Z0-9]', replacement, string)
|
||||
|
||||
|
||||
def sanitized_string_equal(string1, string2):
|
||||
"""Test two strings for equality case insensitively and ignoring special characters.
|
||||
|
||||
:param str string1: the first string to compare.
|
||||
:param str string2: the second string to compare.
|
||||
:return: `True` if the two strings are equal, `False` otherwise.
|
||||
:rtype: bool
|
||||
|
||||
"""
|
||||
try:
|
||||
pysrt.from_string(subtitle_text, error_handling=pysrt.ERROR_RAISE)
|
||||
return True
|
||||
except pysrt.Error:
|
||||
return False
|
||||
return string1 and string2 and sanitize_string(string1).lower() == sanitize_string(string2).lower()
|
||||
|
||||
|
||||
def compute_guess_matches(video, guess):
|
||||
"""Compute matches between a `video` and a `guess`
|
||||
def guess_matches(video, guess, partial=False):
|
||||
"""Get matches between a `video` and a `guess`.
|
||||
|
||||
:param video: the video to compute the matches on
|
||||
If a guess is `partial`, the absence information won't be counted as a match.
|
||||
|
||||
:param video: the video.
|
||||
:type video: :class:`~subliminal.video.Video`
|
||||
:param guess: the guess to compute the matches on
|
||||
:type guess: :class:`guessit.Guess`
|
||||
:return: matches of the `guess`
|
||||
:param guess: the guess.
|
||||
:type guess: dict
|
||||
:param bool partial: whether or not the guess is partial.
|
||||
:return: matches between the `video` and the `guess`.
|
||||
:rtype: set
|
||||
|
||||
"""
|
||||
matches = set()
|
||||
if isinstance(video, Episode):
|
||||
# Series
|
||||
if video.series and 'series' in guess and guess['series'].lower() == video.series.lower():
|
||||
# series
|
||||
if video.series and 'series' in guess and sanitized_string_equal(guess['series'], video.series):
|
||||
matches.add('series')
|
||||
# Season
|
||||
if video.season and 'seasonNumber' in guess and guess['seasonNumber'] == video.season:
|
||||
# season
|
||||
if video.season and 'season' in guess and guess['season'] == video.season:
|
||||
matches.add('season')
|
||||
# Episode
|
||||
# episode
|
||||
if video.episode and 'episodeNumber' in guess and guess['episodeNumber'] == video.episode:
|
||||
matches.add('episode')
|
||||
elif isinstance(video, Movie):
|
||||
# Year
|
||||
# year
|
||||
if video.year and 'year' in guess and guess['year'] == video.year:
|
||||
matches.add('year')
|
||||
# Title
|
||||
if video.title and 'title' in guess and guess['title'].lower() == video.title.lower():
|
||||
# count "no year" as an information
|
||||
if not partial and video.year is None and 'year' not in guess:
|
||||
matches.add('year')
|
||||
elif isinstance(video, Movie):
|
||||
# year
|
||||
if video.year and 'year' in guess and guess['year'] == video.year:
|
||||
matches.add('year')
|
||||
# title
|
||||
if video.title and 'title' in guess and sanitized_string_equal(guess['title'], video.title):
|
||||
matches.add('title')
|
||||
# Release group
|
||||
# release_group
|
||||
if video.release_group and 'releaseGroup' in guess and guess['releaseGroup'].lower() == video.release_group.lower():
|
||||
matches.add('release_group')
|
||||
# Screen size
|
||||
# resolution
|
||||
if video.resolution and 'screenSize' in guess and guess['screenSize'] == video.resolution:
|
||||
matches.add('resolution')
|
||||
# Video codec
|
||||
# format
|
||||
if video.format and 'format' in guess and guess['format'].lower() == video.format.lower():
|
||||
matches.add('format')
|
||||
# video_codec
|
||||
if video.video_codec and 'videoCodec' in guess and guess['videoCodec'] == video.video_codec:
|
||||
matches.add('video_codec')
|
||||
# Audio codec
|
||||
# audio_codec
|
||||
if video.audio_codec and 'audioCodec' in guess and guess['audioCodec'] == video.audio_codec:
|
||||
matches.add('audio_codec')
|
||||
|
||||
return matches
|
||||
|
||||
|
||||
def guess_properties(string):
|
||||
"""Extract properties from `string` using guessit's `guess_properties` transformer.
|
||||
|
||||
:param str string: the string potentially containing properties.
|
||||
:return: the guessed properties.
|
||||
:rtype: dict
|
||||
|
||||
"""
|
||||
mtree = MatchTree(string)
|
||||
get_transformer('guess_properties').process(mtree)
|
||||
|
||||
return mtree.matched()
|
||||
|
||||
|
||||
def fix_line_ending(content):
|
||||
"""Fix line ending of `content` by changing it to \n.
|
||||
|
||||
:param bytes content: content of the subtitle.
|
||||
:return: the content with fixed line endings.
|
||||
:rtype: bytes
|
||||
|
||||
"""
|
||||
return content.replace(b'\r\n', b'\n').replace(b'\r', b'\n')
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
from unittest import TextTestRunner, TestSuite
|
||||
from subliminal import cache_region
|
||||
from . import test_providers, test_subliminal
|
||||
|
||||
|
||||
cache_region.configure('dogpile.cache.memory', expiration_time=60 * 30)
|
||||
suite = TestSuite([test_providers.suite(), test_subliminal.suite()])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
TextTestRunner().run(suite)
|
||||
@@ -1,19 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
from subliminal import Movie, Episode
|
||||
|
||||
|
||||
MOVIES = [Movie('Man of Steel (2013)/man.of.steel.2013.720p.bluray.x264-felony.mkv', 'Man of Steel',
|
||||
release_group='felony', resolution='720p', video_codec='h264', audio_codec='DTS', imdb_id=770828,
|
||||
size=7033732714, year=2013,
|
||||
hashes={'opensubtitles': '5b8f8f4e41ccb21e', 'thesubdb': 'ad32876133355929d814457537e12dc2'})]
|
||||
|
||||
EPISODES = [Episode('The Big Bang Theory/Season 07/The.Big.Bang.Theory.S07E05.720p.HDTV.X264-DIMENSION.mkv',
|
||||
'The Big Bang Theory', 7, 5, release_group='DIMENSION', resolution='720p', video_codec='h264',
|
||||
audio_codec='AC3', imdb_id=3229392, size=501910737, title='The Workplace Proximity',
|
||||
tvdb_id=80379,
|
||||
hashes={'opensubtitles': '6878b3ef7c1bd19e', 'thesubdb': '9dbbfb7ba81c9a6237237dae8589fccc'}),
|
||||
Episode('Game of Thrones/Season 03/Game.of.Thrones.S03E10.Mhysa.720p.WEB-DL.DD5.1.H.264-NTb.mkv',
|
||||
'Game of Thrones', 3, 10, release_group='NTb', resolution='720p', video_codec='h264',
|
||||
audio_codec='AC3', imdb_id=2178796, size=2142810931, title='Mhysa', tvdb_id=121361,
|
||||
hashes={'opensubtitles': 'b850baa096976c22', 'thesubdb': 'b1f899c77f4c960b84b8dbf840d4e42d'})]
|
||||
@@ -1,377 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import os
|
||||
from unittest import TestCase, TestSuite, TestLoader, TextTestRunner
|
||||
from babelfish import Language
|
||||
from pkg_resources import iter_entry_points
|
||||
from subliminal import PROVIDERS_ENTRY_POINT
|
||||
from subliminal.subtitle import is_valid_subtitle
|
||||
from subliminal.tests.common import MOVIES, EPISODES
|
||||
|
||||
|
||||
class ProviderTestCase(TestCase):
|
||||
provider_name = ''
|
||||
|
||||
def setUp(self):
|
||||
for provider_entry_point in iter_entry_points(PROVIDERS_ENTRY_POINT, self.provider_name):
|
||||
self.Provider = provider_entry_point.load()
|
||||
break
|
||||
|
||||
|
||||
class Addic7edProviderTestCase(ProviderTestCase):
|
||||
provider_name = 'addic7ed'
|
||||
|
||||
def test_find_show_id(self):
|
||||
with self.Provider() as provider:
|
||||
show_id = provider.find_show_id('The Big Bang')
|
||||
self.assertTrue(show_id == 126)
|
||||
|
||||
def test_find_show_id_error(self):
|
||||
with self.Provider() as provider:
|
||||
show_id = provider.find_show_id('the big how i met your mother')
|
||||
self.assertTrue(show_id is None)
|
||||
|
||||
def test_get_show_ids(self):
|
||||
with self.Provider() as provider:
|
||||
show_ids = provider.get_show_ids()
|
||||
self.assertTrue('the big bang theory' in show_ids and show_ids['the big bang theory'] == 126)
|
||||
|
||||
def test_query_episode_0(self):
|
||||
video = EPISODES[0]
|
||||
languages = {Language('tur'), Language('rus'), Language('heb'), Language('ita'), Language('fra'),
|
||||
Language('ron'), Language('nld'), Language('eng'), Language('deu'), Language('ell'),
|
||||
Language('por', 'BR'), Language('bul')}
|
||||
matches = {frozenset(['episode', 'release_group', 'title', 'series', 'resolution', 'season']),
|
||||
frozenset(['series', 'resolution', 'season']),
|
||||
frozenset(['series', 'episode', 'season', 'title']),
|
||||
frozenset(['series', 'release_group', 'season']),
|
||||
frozenset(['series', 'episode', 'season', 'release_group', 'title']),
|
||||
frozenset(['series', 'season'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.query(video.series, video.season)
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_query_episode_1(self):
|
||||
video = EPISODES[1]
|
||||
languages = {Language('ind'), Language('spa'), Language('hrv'), Language('ita'), Language('fra'),
|
||||
Language('cat'), Language('ell'), Language('nld'), Language('eng'), Language('fas'),
|
||||
Language('por'), Language('nor'), Language('deu'), Language('ron'), Language('por', 'BR'),
|
||||
Language('bul')}
|
||||
matches = {frozenset(['series', 'episode', 'resolution', 'season', 'title']),
|
||||
frozenset(['series', 'resolution', 'season']),
|
||||
frozenset(['series', 'episode', 'season', 'title']),
|
||||
frozenset(['series', 'release_group', 'season']),
|
||||
frozenset(['series', 'resolution', 'release_group', 'season']),
|
||||
frozenset(['series', 'episode', 'season', 'release_group', 'title']),
|
||||
frozenset(['series', 'season'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.query(video.series, video.season)
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_list_subtitles(self):
|
||||
video = EPISODES[0]
|
||||
languages = {Language('eng'), Language('fra')}
|
||||
matches = {frozenset(['series', 'episode', 'season', 'release_group', 'title']),
|
||||
frozenset(['series', 'episode', 'season', 'title'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.list_subtitles(video, languages)
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_download_subtitle(self):
|
||||
video = EPISODES[0]
|
||||
languages = {Language('eng'), Language('fra')}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.list_subtitles(video, languages)
|
||||
subtitle_text = provider.download_subtitle(subtitles[0])
|
||||
self.assertTrue(is_valid_subtitle(subtitle_text))
|
||||
|
||||
|
||||
class BierDopjeProviderTestCase(ProviderTestCase):
|
||||
provider_name = 'bierdopje'
|
||||
|
||||
def test_query_episode_0(self):
|
||||
video = EPISODES[0]
|
||||
language = Language('eng')
|
||||
matches = {frozenset(['series', 'video_codec', 'resolution', 'episode', 'season']),
|
||||
frozenset(['season', 'video_codec', 'episode', 'series']),
|
||||
frozenset(['episode', 'video_codec', 'season', 'series', 'resolution', 'release_group'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.query(language, video.season, video.episode, series=video.series)
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == {language})
|
||||
|
||||
def test_query_episode_1(self):
|
||||
video = EPISODES[1]
|
||||
language = Language('nld')
|
||||
matches = {frozenset(['series', 'video_codec', 'resolution', 'episode', 'season']),
|
||||
frozenset(['season', 'video_codec', 'episode', 'series']),
|
||||
frozenset(['series', 'episode', 'season']),
|
||||
frozenset(['season', 'video_codec', 'episode', 'release_group', 'series']),
|
||||
frozenset(['episode', 'video_codec', 'season', 'series', 'resolution', 'release_group'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.query(language, video.season, video.episode, series=video.series)
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == {language})
|
||||
|
||||
def test_query_episode_0_tvdb_id(self):
|
||||
video = EPISODES[0]
|
||||
language = Language('eng')
|
||||
matches = {frozenset(['video_codec', 'tvdb_id', 'episode', 'season', 'series']),
|
||||
frozenset(['episode', 'video_codec', 'series', 'season', 'tvdb_id', 'resolution', 'release_group']),
|
||||
frozenset(['episode', 'series', 'video_codec', 'tvdb_id', 'resolution', 'season'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.query(language, video.season, video.episode, tvdb_id=video.tvdb_id)
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == {language})
|
||||
|
||||
def test_list_subtitles(self):
|
||||
video = EPISODES[1]
|
||||
languages = {Language('eng'), Language('nld')}
|
||||
matches = {frozenset(['series', 'video_codec', 'tvdb_id', 'episode', 'season']),
|
||||
frozenset(['episode', 'video_codec', 'season', 'series', 'tvdb_id', 'resolution', 'release_group']),
|
||||
frozenset(['season', 'tvdb_id', 'episode', 'series']),
|
||||
frozenset(['episode', 'video_codec', 'season', 'series', 'tvdb_id', 'resolution']),
|
||||
frozenset(['episode', 'video_codec', 'season', 'series', 'tvdb_id', 'release_group'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.list_subtitles(video, languages)
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_download_subtitle(self):
|
||||
video = EPISODES[0]
|
||||
languages = {Language('eng'), Language('nld')}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.list_subtitles(video, languages)
|
||||
subtitle_text = provider.download_subtitle(subtitles[0])
|
||||
self.assertTrue(is_valid_subtitle(subtitle_text))
|
||||
|
||||
|
||||
class OpenSubtitlesProviderTestCase(ProviderTestCase):
|
||||
provider_name = 'opensubtitles'
|
||||
|
||||
def test_query_movie_0_query(self):
|
||||
video = MOVIES[0]
|
||||
languages = {Language('eng')}
|
||||
matches = {frozenset([]), frozenset(['imdb_id', 'resolution', 'title', 'year']),
|
||||
frozenset(['imdb_id', 'title', 'year']),
|
||||
frozenset(['imdb_id', 'video_codec', 'title', 'year']),
|
||||
frozenset(['imdb_id', 'resolution', 'title', 'video_codec', 'year']),
|
||||
frozenset(['imdb_id', 'title', 'year', 'video_codec', 'resolution', 'release_group'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.query(languages, query=video.title)
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_query_episode_0_query(self):
|
||||
video = EPISODES[0]
|
||||
languages = {Language('eng')}
|
||||
matches = {frozenset(['series', 'episode', 'season', 'imdb_id']),
|
||||
frozenset(['series', 'imdb_id', 'video_codec', 'episode', 'season']),
|
||||
frozenset(['episode', 'title', 'series', 'imdb_id', 'video_codec', 'season'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.query(languages, query=video.name.split(os.sep)[-1])
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_query_episode_1_query(self):
|
||||
video = EPISODES[1]
|
||||
languages = {Language('eng'), Language('fra')}
|
||||
matches = {frozenset(['episode', 'title', 'series', 'imdb_id', 'video_codec', 'season']),
|
||||
frozenset(['series', 'imdb_id', 'title', 'episode', 'season']),
|
||||
frozenset(['series', 'imdb_id', 'video_codec', 'episode', 'season']),
|
||||
frozenset(['episode', 'video_codec', 'series', 'imdb_id', 'resolution', 'season']),
|
||||
frozenset(['series', 'imdb_id', 'resolution', 'episode', 'season']),
|
||||
frozenset(['series', 'episode', 'season', 'imdb_id'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.query(languages, query=video.name.split(os.sep)[-1])
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_query_movie_0_imdb_id(self):
|
||||
video = MOVIES[0]
|
||||
languages = {Language('eng'), Language('fra')}
|
||||
matches = {frozenset(['imdb_id', 'video_codec', 'title', 'year']),
|
||||
frozenset(['imdb_id', 'resolution', 'title', 'video_codec', 'year']),
|
||||
frozenset(['imdb_id', 'title', 'year', 'video_codec', 'resolution', 'release_group']),
|
||||
frozenset(['imdb_id', 'title', 'year']),
|
||||
frozenset(['imdb_id', 'resolution', 'title', 'year'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.query(languages, imdb_id=video.imdb_id)
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_query_episode_0_imdb_id(self):
|
||||
video = EPISODES[0]
|
||||
languages = {Language('eng'), Language('fra')}
|
||||
matches = {frozenset(['series', 'episode', 'season', 'imdb_id']),
|
||||
frozenset(['episode', 'release_group', 'video_codec', 'series', 'imdb_id', 'resolution', 'season']),
|
||||
frozenset(['series', 'imdb_id', 'video_codec', 'episode', 'season']),
|
||||
frozenset(['episode', 'title', 'series', 'imdb_id', 'video_codec', 'season'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.query(languages, imdb_id=video.imdb_id)
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_query_movie_0_hash(self):
|
||||
video = MOVIES[0]
|
||||
languages = {Language('eng')}
|
||||
matches = {frozenset(['imdb_id', 'title', 'hash', 'year']),
|
||||
frozenset(['imdb_id', 'hash', 'title', 'year', 'video_codec', 'resolution']),
|
||||
frozenset(['imdb_id', 'video_codec', 'hash', 'title', 'year']),
|
||||
frozenset(['imdb_id', 'hash', 'title', 'year', 'video_codec', 'resolution', 'release_group'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.query(languages, hash=video.hashes['opensubtitles'], size=video.size)
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_query_episode_0_hash(self):
|
||||
video = EPISODES[0]
|
||||
languages = {Language('eng')}
|
||||
matches = {frozenset(['series', 'hash']),
|
||||
frozenset(['episode', 'season', 'series', 'imdb_id', 'video_codec', 'hash']),
|
||||
frozenset(['series', 'episode', 'season', 'hash', 'imdb_id']),
|
||||
frozenset(['series', 'resolution', 'hash', 'video_codec'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.query(languages, hash=video.hashes['opensubtitles'], size=video.size)
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_list_subtitles(self):
|
||||
video = MOVIES[0]
|
||||
languages = {Language('eng'), Language('fra')}
|
||||
matches = {frozenset(['imdb_id', 'title', 'hash', 'year']),
|
||||
frozenset(['imdb_id', 'resolution', 'title', 'year']),
|
||||
frozenset(['imdb_id', 'title', 'year']),
|
||||
frozenset(['imdb_id', 'video_codec', 'title', 'year']),
|
||||
frozenset(['imdb_id', 'resolution', 'title', 'video_codec', 'year']),
|
||||
frozenset(['imdb_id', 'hash', 'title', 'year', 'video_codec', 'resolution', 'release_group']),
|
||||
frozenset(['imdb_id', 'video_codec', 'hash', 'title', 'year']),
|
||||
frozenset(['imdb_id', 'title', 'year', 'video_codec', 'resolution', 'release_group']),
|
||||
frozenset(['imdb_id', 'hash', 'title', 'year', 'video_codec', 'resolution'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.list_subtitles(video, languages)
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_download_subtitle(self):
|
||||
video = MOVIES[0]
|
||||
languages = {Language('eng'), Language('fra')}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.list_subtitles(video, languages)
|
||||
subtitle_text = provider.download_subtitle(subtitles[0])
|
||||
self.assertTrue(is_valid_subtitle(subtitle_text))
|
||||
|
||||
|
||||
class TheSubDBProviderTestCase(ProviderTestCase):
|
||||
provider_name = 'thesubdb'
|
||||
|
||||
def test_query_episode_0(self):
|
||||
video = EPISODES[0]
|
||||
languages = {Language('eng'), Language('spa'), Language('por')}
|
||||
matches = {frozenset(['hash'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.query(video.hashes['thesubdb'])
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_query_episode_1(self):
|
||||
video = EPISODES[1]
|
||||
languages = {Language('eng'), Language('por')}
|
||||
matches = {frozenset(['hash'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.query(video.hashes['thesubdb'])
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_list_subtitles(self):
|
||||
video = MOVIES[0]
|
||||
languages = {Language('eng'), Language('por')}
|
||||
matches = {frozenset(['hash'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.list_subtitles(video, languages)
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_download_subtitle(self):
|
||||
video = MOVIES[0]
|
||||
languages = {Language('eng'), Language('por')}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.list_subtitles(video, languages)
|
||||
subtitle_text = provider.download_subtitle(subtitles[0])
|
||||
self.assertTrue(is_valid_subtitle(subtitle_text))
|
||||
|
||||
|
||||
class TVsubtitlesProviderTestCase(ProviderTestCase):
|
||||
provider_name = 'tvsubtitles'
|
||||
|
||||
def test_find_show_id(self):
|
||||
with self.Provider() as provider:
|
||||
show_id = provider.find_show_id('The Big Bang')
|
||||
self.assertTrue(show_id == 154)
|
||||
|
||||
def test_find_show_id_error(self):
|
||||
with self.Provider() as provider:
|
||||
show_id = provider.find_show_id('the big gaming')
|
||||
self.assertTrue(show_id is None)
|
||||
|
||||
def test_find_episode_ids(self):
|
||||
with self.Provider() as provider:
|
||||
episode_ids = provider.find_episode_ids(154, 5)
|
||||
self.assertTrue(set(episode_ids.keys()) == set(range(1, 25)))
|
||||
|
||||
def test_query_episode_0(self):
|
||||
video = EPISODES[0]
|
||||
languages = {Language('fra'), Language('por'), Language('hun'), Language('ron'), Language('eng')}
|
||||
matches = {frozenset(['series', 'episode', 'season', 'video_codec']),
|
||||
frozenset(['series', 'episode', 'season'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.query(video.series, video.season, video.episode)
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_query_episode_1(self):
|
||||
video = EPISODES[1]
|
||||
languages = {Language('fra'), Language('ell'), Language('ron'), Language('eng'), Language('hun'),
|
||||
Language('por'), Language('por', 'BR')}
|
||||
matches = {frozenset(['series', 'episode', 'resolution', 'season']),
|
||||
frozenset(['series', 'episode', 'season', 'video_codec']),
|
||||
frozenset(['series', 'episode', 'season'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.query(video.series, video.season, video.episode)
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_list_subtitles(self):
|
||||
video = EPISODES[0]
|
||||
languages = {Language('eng'), Language('fra')}
|
||||
matches = {frozenset(['series', 'episode', 'season'])}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.list_subtitles(video, languages)
|
||||
self.assertTrue({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles} == matches)
|
||||
self.assertTrue({subtitle.language for subtitle in subtitles} == languages)
|
||||
|
||||
def test_download_subtitle(self):
|
||||
video = EPISODES[0]
|
||||
languages = {Language('hun')}
|
||||
with self.Provider() as provider:
|
||||
subtitles = provider.list_subtitles(video, languages)
|
||||
subtitle_text = provider.download_subtitle(subtitles[0])
|
||||
self.assertTrue(is_valid_subtitle(subtitle_text))
|
||||
|
||||
|
||||
def suite():
|
||||
suite = TestSuite()
|
||||
suite.addTest(TestLoader().loadTestsFromTestCase(Addic7edProviderTestCase))
|
||||
suite.addTest(TestLoader().loadTestsFromTestCase(BierDopjeProviderTestCase))
|
||||
suite.addTest(TestLoader().loadTestsFromTestCase(OpenSubtitlesProviderTestCase))
|
||||
suite.addTest(TestLoader().loadTestsFromTestCase(TheSubDBProviderTestCase))
|
||||
suite.addTest(TestLoader().loadTestsFromTestCase(TVsubtitlesProviderTestCase))
|
||||
return suite
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
TextTestRunner().run(suite())
|
||||
@@ -1,109 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import os
|
||||
import shutil
|
||||
from unittest import TestCase, TestSuite, TestLoader, TextTestRunner
|
||||
from babelfish import Language
|
||||
from subliminal import list_subtitles, download_subtitles, download_best_subtitles
|
||||
from subliminal.tests.common import MOVIES, EPISODES
|
||||
|
||||
|
||||
TEST_DIR = 'test_data'
|
||||
|
||||
|
||||
class ApiTestCase(TestCase):
|
||||
def setUp(self):
|
||||
os.mkdir(TEST_DIR)
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(TEST_DIR)
|
||||
|
||||
def test_list_subtitles_movie_0(self):
|
||||
videos = [MOVIES[0]]
|
||||
languages = {Language('eng')}
|
||||
subtitles = list_subtitles(videos, languages)
|
||||
self.assertTrue(len(subtitles) == len(videos))
|
||||
self.assertTrue(len(subtitles[videos[0]]) > 0)
|
||||
|
||||
def test_list_subtitles_movie_0_por_br(self):
|
||||
videos = [MOVIES[0]]
|
||||
languages = {Language('por', 'BR')}
|
||||
subtitles = list_subtitles(videos, languages)
|
||||
self.assertTrue(len(subtitles) == len(videos))
|
||||
self.assertTrue(len(subtitles[videos[0]]) > 0)
|
||||
|
||||
def test_list_subtitles_episodes(self):
|
||||
videos = [EPISODES[0], EPISODES[1]]
|
||||
languages = {Language('eng'), Language('fra')}
|
||||
subtitles = list_subtitles(videos, languages)
|
||||
self.assertTrue(len(subtitles) == len(videos))
|
||||
self.assertTrue(len(subtitles[videos[0]]) > 0)
|
||||
|
||||
def test_download_subtitles(self):
|
||||
videos = [EPISODES[0], EPISODES[1]]
|
||||
for video in videos:
|
||||
video.name = os.path.join(TEST_DIR, video.name.split(os.sep)[-1])
|
||||
languages = {Language('eng'), Language('fra')}
|
||||
subtitles = list_subtitles(videos, languages)
|
||||
download_subtitles(subtitles)
|
||||
for video in videos:
|
||||
self.assertTrue(os.path.exists(os.path.splitext(video.name)[0] + '.en.srt'))
|
||||
self.assertTrue(os.path.exists(os.path.splitext(video.name)[0] + '.fr.srt'))
|
||||
|
||||
def test_download_subtitles_single(self):
|
||||
videos = [EPISODES[0], EPISODES[1]]
|
||||
for video in videos:
|
||||
video.name = os.path.join(TEST_DIR, video.name.split(os.sep)[-1])
|
||||
languages = {Language('eng'), Language('fra')}
|
||||
subtitles = list_subtitles(videos, languages)
|
||||
download_subtitles(subtitles, single=True)
|
||||
for video in videos:
|
||||
self.assertTrue(os.path.exists(os.path.splitext(video.name)[0] + '.srt'))
|
||||
|
||||
def test_download_best_subtitles(self):
|
||||
videos = [EPISODES[0], EPISODES[1]]
|
||||
for video in videos:
|
||||
video.name = os.path.join(TEST_DIR, video.name.split(os.sep)[-1])
|
||||
languages = {Language('eng'), Language('fra')}
|
||||
subtitles = download_best_subtitles(videos, languages)
|
||||
for video in videos:
|
||||
self.assertTrue(video in subtitles and len(subtitles[video]) == 2)
|
||||
self.assertTrue(os.path.exists(os.path.splitext(video.name)[0] + '.en.srt'))
|
||||
self.assertTrue(os.path.exists(os.path.splitext(video.name)[0] + '.fr.srt'))
|
||||
|
||||
def test_download_best_subtitles_single(self):
|
||||
videos = [EPISODES[0], EPISODES[1]]
|
||||
for video in videos:
|
||||
video.name = os.path.join(TEST_DIR, video.name.split(os.sep)[-1])
|
||||
languages = {Language('eng'), Language('fra')}
|
||||
subtitles = download_best_subtitles(videos, languages, single=True)
|
||||
for video in videos:
|
||||
self.assertTrue(video in subtitles and len(subtitles[video]) == 1)
|
||||
self.assertTrue(os.path.exists(os.path.splitext(video.name)[0] + '.srt'))
|
||||
|
||||
def test_download_best_subtitles_min_score(self):
|
||||
videos = [MOVIES[0]]
|
||||
for video in videos:
|
||||
video.name = os.path.join(TEST_DIR, video.name.split(os.sep)[-1])
|
||||
languages = {Language('eng'), Language('fra')}
|
||||
subtitles = download_best_subtitles(videos, languages, min_score=1000)
|
||||
self.assertTrue(len(subtitles) == 0)
|
||||
|
||||
def test_download_best_subtitles_hearing_impaired(self):
|
||||
videos = [MOVIES[0]]
|
||||
for video in videos:
|
||||
video.name = os.path.join(TEST_DIR, video.name.split(os.sep)[-1])
|
||||
languages = {Language('eng')}
|
||||
subtitles = download_best_subtitles(videos, languages, hearing_impaired=True)
|
||||
self.assertTrue(subtitles[videos[0]][0].hearing_impaired == True)
|
||||
|
||||
|
||||
def suite():
|
||||
suite = TestSuite()
|
||||
suite.addTest(TestLoader().loadTestsFromTestCase(ApiTestCase))
|
||||
return suite
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
TextTestRunner().run(suite())
|
||||
+360
-168
@@ -1,13 +1,14 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
from __future__ import division
|
||||
from datetime import datetime, timedelta
|
||||
import hashlib
|
||||
import logging
|
||||
import os
|
||||
import struct
|
||||
import babelfish
|
||||
import enzyme
|
||||
import guessit
|
||||
|
||||
from babelfish import Error as BabelfishError, Language
|
||||
from enzyme import Error as EnzymeError, MKV
|
||||
from guessit import guess_episode_info, guess_file_info, guess_movie_info
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -23,50 +24,99 @@ VIDEO_EXTENSIONS = ('.3g2', '.3gp', '.3gp2', '.3gpp', '.60d', '.ajp', '.asf', '.
|
||||
#: Subtitle extensions
|
||||
SUBTITLE_EXTENSIONS = ('.srt', '.sub', '.smi', '.txt', '.ssa', '.ass', '.mpl')
|
||||
|
||||
#: Language extensions
|
||||
LANGUAGE_EXTENSIONS = tuple('.' + c for c in babelfish.CONVERTERS['alpha2'].codes)
|
||||
|
||||
|
||||
class Video(object):
|
||||
"""Base class for videos
|
||||
"""Base class for videos.
|
||||
|
||||
Represent a video, existing or not, with various properties that defines it.
|
||||
Each property has an associated score based on equations that are described in
|
||||
subclasses.
|
||||
Represent a video, existing or not. Attributes have an associated score based on equations defined in
|
||||
:mod:`~subliminal.score`.
|
||||
|
||||
:param string name: name or path of the video
|
||||
:param string release_group: release group of the video
|
||||
:param string resolution: screen size of the video stream (480p, 720p, 1080p or 1080i)
|
||||
:param string video_codec: codec of the video stream
|
||||
:param string audio_codec: codec of the main audio stream
|
||||
:param int imdb_id: IMDb id of the video
|
||||
:param dict hashes: hashes of the video file by provider names
|
||||
:param int size: byte size of the video file
|
||||
:param str name: name or path of the video.
|
||||
:param str format: format of the video (HDTV, WEB-DL, BluRay, ...).
|
||||
:param str release_group: release group of the video.
|
||||
:param str resolution: resolution of the video stream (480p, 720p, 1080p or 1080i).
|
||||
:param str video_codec: codec of the video stream.
|
||||
:param str audio_codec: codec of the main audio stream.
|
||||
:param int imdb_id: IMDb id of the video.
|
||||
:param dict hashes: hashes of the video file by provider names.
|
||||
:param int size: size of the video file in bytes.
|
||||
:param set subtitle_languages: existing subtitle languages
|
||||
|
||||
"""
|
||||
#: Score by match property
|
||||
scores = {}
|
||||
|
||||
def __init__(self, name, release_group=None, resolution=None, video_codec=None, audio_codec=None, imdb_id=None,
|
||||
hashes=None, size=None, subtitle_languages=None):
|
||||
def __init__(self, name, format=None, release_group=None, resolution=None, video_codec=None, audio_codec=None,
|
||||
imdb_id=None, hashes=None, size=None, subtitle_languages=None):
|
||||
#: Name or path of the video
|
||||
self.name = name
|
||||
|
||||
#: Format of the video (HDTV, WEB-DL, BluRay, ...)
|
||||
self.format = format
|
||||
|
||||
#: Release group of the video
|
||||
self.release_group = release_group
|
||||
|
||||
#: Resolution of the video stream (480p, 720p, 1080p or 1080i)
|
||||
self.resolution = resolution
|
||||
|
||||
#: Codec of the video stream
|
||||
self.video_codec = video_codec
|
||||
|
||||
#: Codec of the main audio stream
|
||||
self.audio_codec = audio_codec
|
||||
|
||||
#: IMDb id of the video
|
||||
self.imdb_id = imdb_id
|
||||
|
||||
#: Hashes of the video file by provider names
|
||||
self.hashes = hashes or {}
|
||||
|
||||
#: Size of the video file in bytes
|
||||
self.size = size
|
||||
|
||||
#: Existing subtitle languages
|
||||
self.subtitle_languages = subtitle_languages or set()
|
||||
|
||||
@property
|
||||
def exists(self):
|
||||
"""Test whether the video exists."""
|
||||
return os.path.exists(self.name)
|
||||
|
||||
@property
|
||||
def age(self):
|
||||
"""Age of the video."""
|
||||
if self.exists:
|
||||
return datetime.utcnow() - datetime.utcfromtimestamp(os.path.getmtime(self.name))
|
||||
|
||||
return timedelta()
|
||||
|
||||
@classmethod
|
||||
def fromguess(cls, name, guess):
|
||||
"""Create an :class:`Episode` or a :class:`Movie` with the given `name` based on the `guess`.
|
||||
|
||||
:param str name: name of the video.
|
||||
:param dict guess: guessed data, like a :class:`~guessit.guess.Guess` instance.
|
||||
:raise: :class:`ValueError` if the `type` of the `guess` is invalid
|
||||
|
||||
"""
|
||||
if guess['type'] == 'episode':
|
||||
return Episode.fromguess(name, guess)
|
||||
|
||||
if guess['type'] == 'movie':
|
||||
return Movie.fromguess(name, guess)
|
||||
|
||||
raise ValueError('The guess must be an episode or a movie guess')
|
||||
|
||||
@classmethod
|
||||
def fromname(cls, name):
|
||||
"""Shortcut for :meth:`fromguess` with a `guess` guessed from the `name`.
|
||||
|
||||
:param str name: name of the video.
|
||||
|
||||
"""
|
||||
return cls.fromguess(name, guess_file_info(name))
|
||||
|
||||
def __repr__(self):
|
||||
return '<%s [%r]>' % (self.__class__.__name__, self.name)
|
||||
|
||||
@@ -75,251 +125,393 @@ class Video(object):
|
||||
|
||||
|
||||
class Episode(Video):
|
||||
"""Episode :class:`Video`
|
||||
"""Episode :class:`Video`.
|
||||
|
||||
Scores are defined by a set of equations, see :func:`~subliminal.score.get_episode_equations`
|
||||
Scores are defined by a set of equations, see :func:`~subliminal.score.solve_episode_equations`
|
||||
|
||||
:param string series: series of the episode
|
||||
:param int season: season number of the episode
|
||||
:param int episode: episode number of the episode
|
||||
:param string title: title of the episode
|
||||
:param int tvdb_id: TheTVDB id of the episode
|
||||
:param str series: series of the episode.
|
||||
:param int season: season number of the episode.
|
||||
:param int episode: episode number of the episode.
|
||||
:param str title: title of the episode.
|
||||
:param int year: year of series.
|
||||
:param int tvdb_id: TVDB id of the episode
|
||||
|
||||
"""
|
||||
scores = {'title': 12, 'video_codec': 2, 'imdb_id': 35, 'audio_codec': 1, 'tvdb_id': 23, 'resolution': 2,
|
||||
'season': 6, 'release_group': 6, 'series': 23, 'episode': 6, 'hash': 46}
|
||||
#: Score by match property
|
||||
scores = {'hash': 137, 'imdb_id': 110, 'tvdb_id': 88, 'series': 44, 'year': 44, 'title': 22, 'season': 11,
|
||||
'episode': 11, 'release_group': 11, 'format': 6, 'video_codec': 4, 'resolution': 4, 'audio_codec': 2,
|
||||
'hearing_impaired': 1}
|
||||
|
||||
def __init__(self, name, series, season, episode, release_group=None, resolution=None, video_codec=None,
|
||||
audio_codec=None, imdb_id=None, hashes=None, size=None, subtitle_languages=None, title=None,
|
||||
tvdb_id=None):
|
||||
super(Episode, self).__init__(name, release_group, resolution, video_codec, audio_codec, imdb_id, hashes,
|
||||
size, subtitle_languages)
|
||||
def __init__(self, name, series, season, episode, format=None, release_group=None, resolution=None,
|
||||
video_codec=None, audio_codec=None, imdb_id=None, hashes=None, size=None, subtitle_languages=None,
|
||||
title=None, year=None, tvdb_id=None):
|
||||
super(Episode, self).__init__(name, format, release_group, resolution, video_codec, audio_codec, imdb_id,
|
||||
hashes, size, subtitle_languages)
|
||||
#: Series of the episode
|
||||
self.series = series
|
||||
|
||||
#: Season number of the episode
|
||||
self.season = season
|
||||
|
||||
#: Episode number of the episode
|
||||
self.episode = episode
|
||||
|
||||
#: Title of the episode
|
||||
self.title = title
|
||||
|
||||
#: Year of series
|
||||
self.year = year
|
||||
|
||||
#: TVDB id of the episode
|
||||
self.tvdb_id = tvdb_id
|
||||
|
||||
@classmethod
|
||||
def fromguess(cls, name, guess):
|
||||
if guess['type'] != 'episode':
|
||||
raise ValueError('The guess must be an episode guess')
|
||||
|
||||
if 'series' not in guess or 'season' not in guess or 'episodeNumber' not in guess:
|
||||
raise ValueError('Insufficient data to process the guess')
|
||||
return cls(name, guess['series'], guess['season'], guess['episodeNumber'],
|
||||
|
||||
return cls(name, guess['series'], guess['season'], guess['episodeNumber'], format=guess.get('format'),
|
||||
release_group=guess.get('releaseGroup'), resolution=guess.get('screenSize'),
|
||||
video_codec=guess.get('videoCodec'), audio_codec=guess.get('audioCodec'),
|
||||
title=guess.get('title'))
|
||||
title=guess.get('title'), year=guess.get('year'))
|
||||
|
||||
@classmethod
|
||||
def fromname(cls, name):
|
||||
return cls.fromguess(name, guess_episode_info(name))
|
||||
|
||||
def __repr__(self):
|
||||
return '<%s [%r, %rx%r]>' % (self.__class__.__name__, self.series, self.season, self.episode)
|
||||
if self.year is None:
|
||||
return '<%s [%r, %dx%d]>' % (self.__class__.__name__, self.series, self.season, self.episode)
|
||||
|
||||
return '<%s [%r, %d, %dx%d]>' % (self.__class__.__name__, self.series, self.year, self.season, self.episode)
|
||||
|
||||
|
||||
class Movie(Video):
|
||||
"""Movie :class:`Video`
|
||||
"""Movie :class:`Video`.
|
||||
|
||||
Scores are defined by a set of equations, see :func:`~subliminal.score.get_movie_equations`
|
||||
Scores are defined by a set of equations, see :func:`~subliminal.score.solve_movie_equations`
|
||||
|
||||
:param string title: title of the movie
|
||||
:param str title: title of the movie.
|
||||
:param int year: year of the movie
|
||||
|
||||
"""
|
||||
scores = {'title': 13, 'video_codec': 2, 'resolution': 2, 'audio_codec': 1, 'year': 7, 'imdb_id': 31,
|
||||
'release_group': 6, 'hash': 31}
|
||||
#: Score by match property
|
||||
scores = {'hash': 62, 'imdb_id': 62, 'title': 23, 'year': 12, 'release_group': 11, 'format': 6, 'video_codec': 4,
|
||||
'resolution': 4, 'audio_codec': 2, 'hearing_impaired': 1}
|
||||
|
||||
def __init__(self, name, title, release_group=None, resolution=None, video_codec=None, audio_codec=None,
|
||||
imdb_id=None, hashes=None, size=None, subtitle_languages=None, year=None):
|
||||
super(Movie, self).__init__(name, release_group, resolution, video_codec, audio_codec, imdb_id, hashes,
|
||||
def __init__(self, name, title, format=None, release_group=None, resolution=None, video_codec=None,
|
||||
audio_codec=None, imdb_id=None, hashes=None, size=None, subtitle_languages=None, year=None):
|
||||
super(Movie, self).__init__(name, format, release_group, resolution, video_codec, audio_codec, imdb_id, hashes,
|
||||
size, subtitle_languages)
|
||||
#: Title of the movie
|
||||
self.title = title
|
||||
|
||||
#: Year of the movie
|
||||
self.year = year
|
||||
|
||||
@classmethod
|
||||
def fromguess(cls, name, guess):
|
||||
if guess['type'] != 'movie':
|
||||
raise ValueError('The guess must be a movie guess')
|
||||
|
||||
if 'title' not in guess:
|
||||
raise ValueError('Insufficient data to process the guess')
|
||||
return cls(name, guess['title'], release_group=guess.get('releaseGroup'), resolution=guess.get('screenSize'),
|
||||
video_codec=guess.get('videoCodec'), audio_codec=guess.get('audioCodec'),
|
||||
year=guess.get('year'))
|
||||
|
||||
return cls(name, guess['title'], format=guess.get('format'), release_group=guess.get('releaseGroup'),
|
||||
resolution=guess.get('screenSize'), video_codec=guess.get('videoCodec'),
|
||||
audio_codec=guess.get('audioCodec'), year=guess.get('year'))
|
||||
|
||||
@classmethod
|
||||
def fromname(cls, name):
|
||||
return cls.fromguess(name, guess_movie_info(name))
|
||||
|
||||
def __repr__(self):
|
||||
if self.year is None:
|
||||
return '<%s [%r]>' % (self.__class__.__name__, self.title)
|
||||
return '<%s [%r, %r]>' % (self.__class__.__name__, self.title, self.year)
|
||||
|
||||
return '<%s [%r, %d]>' % (self.__class__.__name__, self.title, self.year)
|
||||
|
||||
|
||||
def scan_subtitle_languages(path):
|
||||
"""Search for subtitles with alpha2 extension from a video `path` and return their language
|
||||
def search_external_subtitles(path, directory=None):
|
||||
"""Search for external subtitles from a video `path` and their associated language.
|
||||
|
||||
:param string path: path to the video
|
||||
:return: found subtitle languages
|
||||
:rtype: set
|
||||
Unless `directory` is provided, search will be made in the same directory as the video file.
|
||||
|
||||
:param str path: path to the video.
|
||||
:param str directory: directory to search for subtitles.
|
||||
:return: found subtitles with their languages.
|
||||
:rtype: dict
|
||||
|
||||
"""
|
||||
dirpath, filename = os.path.split(path)
|
||||
subtitles = {babelfish.Language.fromalpha2(os.path.splitext(p)[0][-2:]) for p in os.listdir(dirpath)
|
||||
if not isinstance(p, bytes) and p.startswith(os.path.splitext(filename)[0])
|
||||
and os.path.splitext(p)[0].endswith(LANGUAGE_EXTENSIONS)}
|
||||
dirpath = dirpath or '.'
|
||||
fileroot, fileext = os.path.splitext(filename)
|
||||
subtitles = {}
|
||||
for p in os.listdir(directory or dirpath):
|
||||
# keep only valid subtitle filenames
|
||||
if not p.startswith(fileroot) or not p.endswith(SUBTITLE_EXTENSIONS):
|
||||
continue
|
||||
|
||||
# extract the potential language code
|
||||
language_code = p[len(fileroot):-len(os.path.splitext(p)[1])].replace(fileext, '').replace('_', '-')[1:]
|
||||
|
||||
# default language is undefined
|
||||
language = Language('und')
|
||||
|
||||
# attempt to parse
|
||||
if language_code:
|
||||
try:
|
||||
language = Language.fromietf(language_code)
|
||||
except ValueError:
|
||||
logger.error('Cannot parse language code %r', language_code)
|
||||
|
||||
subtitles[p] = language
|
||||
|
||||
logger.debug('Found subtitles %r', subtitles)
|
||||
|
||||
return subtitles
|
||||
|
||||
|
||||
def scan_video(path, subtitles=True, embedded_subtitles=True):
|
||||
"""Scan a video and its subtitle languages from a video `path`
|
||||
def scan_video(path, subtitles=True, embedded_subtitles=True, subtitles_dir=None):
|
||||
"""Scan a video and its subtitle languages from a video `path`.
|
||||
|
||||
:param string path: path to the video
|
||||
:param bool subtitles: scan for subtitles with the same name
|
||||
:param bool embedded_subtitles: scan for embedded subtitles
|
||||
:return: the scanned video
|
||||
:param str path: existing path to the video.
|
||||
:param bool subtitles: scan for subtitles with the same name.
|
||||
:param bool embedded_subtitles: scan for embedded subtitles.
|
||||
:param str subtitles_dir: directory to search for subtitles.
|
||||
:return: the scanned video.
|
||||
:rtype: :class:`Video`
|
||||
:raise: ValueError if cannot guess enough information from the path
|
||||
|
||||
"""
|
||||
# check for non-existing path
|
||||
if not os.path.exists(path):
|
||||
raise ValueError('Path does not exist')
|
||||
|
||||
# check video extension
|
||||
if not path.endswith(VIDEO_EXTENSIONS):
|
||||
raise ValueError('%s is not a valid video extension' % os.path.splitext(path)[1])
|
||||
|
||||
dirpath, filename = os.path.split(path)
|
||||
logger.info('Scanning video %r in %r', filename, dirpath)
|
||||
video = Video.fromguess(path, guessit.guess_file_info(filename, 'autodetect'))
|
||||
# mkv container
|
||||
if filename.endswith('.mkv'):
|
||||
with open(path, 'rb') as f:
|
||||
mkv = enzyme.MKV(f)
|
||||
video_track = mkv.video_tracks[0]
|
||||
audio_track = mkv.audio_tracks[0]
|
||||
# resolution
|
||||
if video_track.height in (480, 720, 1080):
|
||||
if video_track.interlaced:
|
||||
video.resolution = '%di' % video_track.height
|
||||
logger.debug('Found resolution %s with enzyme', video.resolution)
|
||||
else:
|
||||
video.resolution = '%dp' % video_track.height
|
||||
logger.debug('Found resolution %s with enzyme', video.resolution)
|
||||
# video codec
|
||||
if video_track.codec_id == 'V_MPEG4/ISO/AVC':
|
||||
video.video_codec = 'h264'
|
||||
logger.debug('Found video_codec %s with enzyme', video.video_codec)
|
||||
elif video_track.codec_id == 'V_MPEG4/ISO/SP':
|
||||
video.video_codec = 'DivX'
|
||||
logger.debug('Found video_codec %s with enzyme', video.video_codec)
|
||||
elif video_track.codec_id == 'V_MPEG4/ISO/ASP':
|
||||
video.video_codec = 'XviD'
|
||||
logger.debug('Found video_codec %s with enzyme', video.video_codec)
|
||||
# audio codec
|
||||
if audio_track.codec_id == 'A_AC3':
|
||||
video.audio_codec = 'AC3'
|
||||
logger.debug('Found audio_codec %s with enzyme', video.audio_codec)
|
||||
elif audio_track.codec_id == 'A_DTS':
|
||||
video.audio_codec = 'DTS'
|
||||
logger.debug('Found audio_codec %s with enzyme', video.audio_codec)
|
||||
elif audio_track.codec_id == 'A_AAC':
|
||||
video.audio_codec = 'AAC'
|
||||
logger.debug('Found audio_codec %s with enzyme', video.audio_codec)
|
||||
# embedded subtitles
|
||||
if embedded_subtitles:
|
||||
embedded_subtitle_languages = {babelfish.Language.fromalpha3b(st.language) for st in
|
||||
mkv.subtitle_tracks if st.language != 'und'}
|
||||
if embedded_subtitle_languages:
|
||||
logger.debug('Found embedded subtitle %r with enzyme', embedded_subtitle_languages)
|
||||
video.subtitle_languages |= embedded_subtitle_languages
|
||||
|
||||
# guess
|
||||
video = Video.fromguess(path, guess_file_info(path))
|
||||
|
||||
# size and hashes
|
||||
video.size = os.path.getsize(path)
|
||||
logger.debug('Size is %d', video.size)
|
||||
video.hashes['opensubtitles'] = hash_opensubtitles(path)
|
||||
video.hashes['thesubdb'] = hash_thesubdb(path)
|
||||
logger.debug('Computed hashes %r', video.hashes)
|
||||
# add subtitles
|
||||
if video.size > 10485760:
|
||||
logger.debug('Size is %d', video.size)
|
||||
video.hashes['opensubtitles'] = hash_opensubtitles(path)
|
||||
video.hashes['thesubdb'] = hash_thesubdb(path)
|
||||
video.hashes['napiprojekt'] = hash_napiprojekt(path)
|
||||
logger.debug('Computed hashes %r', video.hashes)
|
||||
else:
|
||||
logger.warning('Size is lower than 10MB: hashes not computed')
|
||||
|
||||
# external subtitles
|
||||
if subtitles:
|
||||
video.subtitle_languages |= scan_subtitle_languages(path)
|
||||
video.subtitle_languages |= set(search_external_subtitles(path, directory=subtitles_dir).values())
|
||||
|
||||
# video metadata with enzyme
|
||||
try:
|
||||
if filename.endswith('.mkv'):
|
||||
with open(path, 'rb') as f:
|
||||
mkv = MKV(f)
|
||||
|
||||
# main video track
|
||||
if mkv.video_tracks:
|
||||
video_track = mkv.video_tracks[0]
|
||||
|
||||
# resolution
|
||||
if video_track.height in (480, 720, 1080):
|
||||
if video_track.interlaced:
|
||||
video.resolution = '%di' % video_track.height
|
||||
else:
|
||||
video.resolution = '%dp' % video_track.height
|
||||
logger.debug('Found resolution %s with enzyme', video.resolution)
|
||||
|
||||
# video codec
|
||||
if video_track.codec_id == 'V_MPEG4/ISO/AVC':
|
||||
video.video_codec = 'h264'
|
||||
logger.debug('Found video_codec %s with enzyme', video.video_codec)
|
||||
elif video_track.codec_id == 'V_MPEG4/ISO/SP':
|
||||
video.video_codec = 'DivX'
|
||||
logger.debug('Found video_codec %s with enzyme', video.video_codec)
|
||||
elif video_track.codec_id == 'V_MPEG4/ISO/ASP':
|
||||
video.video_codec = 'XviD'
|
||||
logger.debug('Found video_codec %s with enzyme', video.video_codec)
|
||||
else:
|
||||
logger.warning('MKV has no video track')
|
||||
|
||||
# main audio track
|
||||
if mkv.audio_tracks:
|
||||
audio_track = mkv.audio_tracks[0]
|
||||
# audio codec
|
||||
if audio_track.codec_id == 'A_AC3':
|
||||
video.audio_codec = 'AC3'
|
||||
logger.debug('Found audio_codec %s with enzyme', video.audio_codec)
|
||||
elif audio_track.codec_id == 'A_DTS':
|
||||
video.audio_codec = 'DTS'
|
||||
logger.debug('Found audio_codec %s with enzyme', video.audio_codec)
|
||||
elif audio_track.codec_id == 'A_AAC':
|
||||
video.audio_codec = 'AAC'
|
||||
logger.debug('Found audio_codec %s with enzyme', video.audio_codec)
|
||||
else:
|
||||
logger.warning('MKV has no audio track')
|
||||
|
||||
# subtitle tracks
|
||||
if mkv.subtitle_tracks:
|
||||
if embedded_subtitles:
|
||||
embedded_subtitle_languages = set()
|
||||
for st in mkv.subtitle_tracks:
|
||||
if st.language:
|
||||
try:
|
||||
embedded_subtitle_languages.add(Language.fromalpha3b(st.language))
|
||||
except BabelfishError:
|
||||
logger.error('Embedded subtitle track language %r is not a valid language', st.language)
|
||||
embedded_subtitle_languages.add(Language('und'))
|
||||
elif st.name:
|
||||
try:
|
||||
embedded_subtitle_languages.add(Language.fromname(st.name))
|
||||
except BabelfishError:
|
||||
logger.debug('Embedded subtitle track name %r is not a valid language', st.name)
|
||||
embedded_subtitle_languages.add(Language('und'))
|
||||
else:
|
||||
embedded_subtitle_languages.add(Language('und'))
|
||||
logger.debug('Found embedded subtitle %r with enzyme', embedded_subtitle_languages)
|
||||
video.subtitle_languages |= embedded_subtitle_languages
|
||||
else:
|
||||
logger.debug('MKV has no subtitle track')
|
||||
|
||||
except:
|
||||
logger.exception('Parsing video metadata with enzyme failed')
|
||||
|
||||
return video
|
||||
|
||||
|
||||
def scan_videos(paths, subtitles=True, embedded_subtitles=True, age=None):
|
||||
"""Scan `paths` for videos and their subtitle languages
|
||||
def scan_videos(path, subtitles=True, embedded_subtitles=True, subtitles_dir=None):
|
||||
"""Scan `path` for videos and their subtitles.
|
||||
|
||||
:params paths: paths to scan for videos
|
||||
:type paths: list of string
|
||||
:param bool subtitles: scan for subtitles with the same name
|
||||
:param bool embedded_subtitles: scan for embedded subtitles
|
||||
:param age: age of the video, if any
|
||||
:type age: datetime.timedelta or None
|
||||
:return: the scanned videos
|
||||
:param str path: existing directory path to scan.
|
||||
:param bool subtitles: scan for subtitles with the same name.
|
||||
:param bool embedded_subtitles: scan for embedded subtitles.
|
||||
:param str subtitles_dir: directory to search for subtitles.
|
||||
:return: the scanned videos.
|
||||
:rtype: list of :class:`Video`
|
||||
|
||||
"""
|
||||
# check for non-existing path
|
||||
if not os.path.exists(path):
|
||||
raise ValueError('Path does not exist')
|
||||
|
||||
# check for non-directory path
|
||||
if not os.path.isdir(path):
|
||||
raise ValueError('Path is not a directory')
|
||||
|
||||
# walk the path
|
||||
videos = []
|
||||
# scan files
|
||||
for filepath in [p for p in paths if os.path.isfile(p)]:
|
||||
try:
|
||||
videos.append(scan_video(filepath, subtitles))
|
||||
except ValueError as e:
|
||||
logger.info('Skipping video: %s', e)
|
||||
continue
|
||||
# scan directories
|
||||
for path in [p for p in paths if os.path.isdir(p)]:
|
||||
logger.info('Scanning directory %r', path)
|
||||
for dirpath, _, filenames in os.walk(path):
|
||||
# skip badly encoded directories and files
|
||||
if isinstance(dirpath, bytes):
|
||||
logger.error('Skipping badly encoded directory %r', dirpath.decode('utf-8', errors='replace'))
|
||||
for dirpath, dirnames, filenames in os.walk(path):
|
||||
logger.debug('Walking directory %s', dirpath)
|
||||
|
||||
# remove badly encoded and hidden dirnames
|
||||
for dirname in list(dirnames):
|
||||
if dirname.startswith('.'):
|
||||
logger.debug('Skipping hidden dirname %r in %r', dirname, dirpath)
|
||||
dirnames.remove(dirname)
|
||||
|
||||
# scan for videos
|
||||
for filename in filenames:
|
||||
# filter on videos
|
||||
if not filename.endswith(VIDEO_EXTENSIONS):
|
||||
continue
|
||||
safe_filenames = []
|
||||
for filename in filenames:
|
||||
if isinstance(filename, bytes):
|
||||
logger.error('Skipping badly encoded filename %r', filename.decode('utf-8', errors='replace'))
|
||||
continue
|
||||
safe_filenames.append(filename)
|
||||
# scan for videos
|
||||
for video_filename in [f for f in safe_filenames if f.endswith(VIDEO_EXTENSIONS)]:
|
||||
try:
|
||||
video = scan_video(os.path.join(dirpath, video_filename), subtitles=subtitles)
|
||||
except ValueError as e:
|
||||
logger.info('Skipping video: %s', e)
|
||||
continue
|
||||
videos.append(video)
|
||||
|
||||
# skip hidden files
|
||||
if filename.startswith('.'):
|
||||
logger.debug('Skipping hidden filename %r in %r', filename, dirpath)
|
||||
continue
|
||||
|
||||
# reconstruct the file path
|
||||
filepath = os.path.join(dirpath, filename)
|
||||
|
||||
# skip links
|
||||
if os.path.islink(filepath):
|
||||
logger.debug('Skipping link %r in %r', filename, dirpath)
|
||||
continue
|
||||
|
||||
# scan video
|
||||
try:
|
||||
video = scan_video(filepath, subtitles=subtitles, embedded_subtitles=embedded_subtitles,
|
||||
subtitles_dir=subtitles_dir)
|
||||
except ValueError: # pragma: no cover
|
||||
logger.exception('Error scanning video')
|
||||
continue
|
||||
|
||||
videos.append(video)
|
||||
|
||||
return videos
|
||||
|
||||
|
||||
def hash_opensubtitles(video_path):
|
||||
"""Compute a hash using OpenSubtitles' algorithm
|
||||
"""Compute a hash using OpenSubtitles' algorithm.
|
||||
|
||||
:param string video_path: path of the video
|
||||
:return: the hash
|
||||
:rtype: string
|
||||
:param str video_path: path of the video.
|
||||
:return: the hash.
|
||||
:rtype: str
|
||||
|
||||
"""
|
||||
bytesize = struct.calcsize(b'q')
|
||||
bytesize = struct.calcsize(b'<q')
|
||||
with open(video_path, 'rb') as f:
|
||||
filesize = os.path.getsize(video_path)
|
||||
filehash = filesize
|
||||
if filesize < 65536 * 2:
|
||||
return None
|
||||
for _ in range(65536 / bytesize):
|
||||
return
|
||||
for _ in range(65536 // bytesize):
|
||||
filebuffer = f.read(bytesize)
|
||||
(l_value,) = struct.unpack(b'q', filebuffer)
|
||||
(l_value,) = struct.unpack(b'<q', filebuffer)
|
||||
filehash += l_value
|
||||
filehash = filehash & 0xFFFFFFFFFFFFFFFF # to remain as 64bit number
|
||||
filehash &= 0xFFFFFFFFFFFFFFFF # to remain as 64bit number
|
||||
f.seek(max(0, filesize - 65536), 0)
|
||||
for _ in range(65536 / bytesize):
|
||||
for _ in range(65536 // bytesize):
|
||||
filebuffer = f.read(bytesize)
|
||||
(l_value,) = struct.unpack(b'q', filebuffer)
|
||||
(l_value,) = struct.unpack(b'<q', filebuffer)
|
||||
filehash += l_value
|
||||
filehash = filehash & 0xFFFFFFFFFFFFFFFF
|
||||
filehash &= 0xFFFFFFFFFFFFFFFF
|
||||
returnedhash = '%016x' % filehash
|
||||
|
||||
return returnedhash
|
||||
|
||||
|
||||
def hash_thesubdb(video_path):
|
||||
"""Compute a hash using TheSubDB's algorithm
|
||||
"""Compute a hash using TheSubDB's algorithm.
|
||||
|
||||
:param string video_path: path of the video
|
||||
:return: the hash
|
||||
:rtype: string
|
||||
:param str video_path: path of the video.
|
||||
:return: the hash.
|
||||
:rtype: str
|
||||
|
||||
"""
|
||||
readsize = 64 * 1024
|
||||
if os.path.getsize(video_path) < readsize:
|
||||
return None
|
||||
return
|
||||
with open(video_path, 'rb') as f:
|
||||
data = f.read(readsize)
|
||||
f.seek(-readsize, os.SEEK_END)
|
||||
data += f.read(readsize)
|
||||
return hashlib.md5(data).hexdigest().decode('ascii')
|
||||
|
||||
return hashlib.md5(data).hexdigest()
|
||||
|
||||
|
||||
def hash_napiprojekt(video_path):
|
||||
"""Compute a hash using NapiProjekt's algorithm.
|
||||
|
||||
:param str video_path: path of the video.
|
||||
:return: the hash.
|
||||
:rtype: str
|
||||
|
||||
"""
|
||||
readsize = 1024 * 1024 * 10
|
||||
with open(video_path, 'rb') as f:
|
||||
data = f.read(readsize)
|
||||
return hashlib.md5(data).hexdigest()
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,370 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: username=subliminal&password=subliminal&Submit=Log+in
|
||||
headers:
|
||||
Content-Length: ['53']
|
||||
Content-Type: [application/x-www-form-urlencoded]
|
||||
User-Agent: [Subliminal/1.1]
|
||||
method: POST
|
||||
uri: http://www.addic7ed.com/dologin.php
|
||||
response:
|
||||
body: {string: !!python/unicode "\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0\
|
||||
\ Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"\
|
||||
>\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"\
|
||||
Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>Addic7ed.com\
|
||||
\ - For all those TV Series Addic7s: Subtitles, Tv Series and Movies Talk,\
|
||||
\ Forum and more -</title>\n<link href=\"css/wikisubtitles.css\" rel=\"stylesheet\"\
|
||||
\ title=\"default\" type=\"text/css\" media=\"screen\"/>\n</head>\n\n<body>\n\
|
||||
<center><br />\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"\
|
||||
/\"><img height=\"200\" width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\"\
|
||||
\ border=\"0\" title=\"Addic7ed.com - Quality Subtitles for TV Shows and\
|
||||
\ movies\" alt=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\"\
|
||||
\ /></a></td>\n</tr>\n<tr><td align=\"center\" colspan=\"2\">\n<h1><small>Download\
|
||||
\ free subtitles for TV Shows and Movies.</small> \n<select name=\"\
|
||||
applang\" class=\"inputCool\" onchange=\"changeAppLang();\" id=\"comboLang\"\
|
||||
><option value=\"ar\">Arabic</option><option value=\"ca\">Catala</option><option\
|
||||
\ selected=\"selected\" value=\"en\">English</option><option value=\"eu\"\
|
||||
>Euskera</option><option value=\"fr\">French</option><option value=\"ga\"\
|
||||
>Galician</option><option value=\"de\">German</option><option value=\"gr\"\
|
||||
>Greek</option><option value=\"hu\">Hungarian</option><option value=\"it\"\
|
||||
>Italian</option><option value=\"fa\">Persian</option><option value=\"pl\"\
|
||||
>Polish</option><option value=\"pt\">Portuguese</option><option value=\"br\"\
|
||||
>Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option\
|
||||
\ value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option\
|
||||
\ value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"\
|
||||
center\" colspan=\"2\">\n\n<script language=\"javascript\">\nvar url=\"/msgspopup.php?count=1\"\
|
||||
;\t\teditwin = window.open(url, \"msgswin\", 'height=200,width=350,toolbar=0,location=0,statusbar=0,menubar=0');\
|
||||
\ \n\t\tif (editwin.focus) {editwin.focus()}\n</script>\n<div id=\"hBar\"\
|
||||
>\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"button white\" href=\"/panel.php\"\
|
||||
>My Panel</a></li><li><a class=\"button white\" href=\"/newsub.php\">Upload</a></li>\t\
|
||||
\t\t<li><a class=\"button white\" href=\"/shows.php\">Shows</a></li>\n\t\t\
|
||||
\t\t<li><a class=\"button white\" href=\"/allshows/a\">Air dates</a></li>\n\
|
||||
\t\t\t\t<li><a class=\"button white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\
|
||||
\t\t\t\t<li><a class=\"button white\" href=\"/logout.php\">Logout</a></li>\n\
|
||||
\t\t\t </ul>\n\t\t\t </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone\
|
||||
\ size=\"medium\"></g:plusone>\n <a href=\"http://twitter.com/addic7ed\"\
|
||||
\ target=\"_blank\"><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\"\
|
||||
\ alt=\"Twitter\" border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"\
|
||||
><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"\
|
||||
\ alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\"\
|
||||
>\n\n </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=tahoma&height=21&appId=121322186712\"\
|
||||
\ scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden;\
|
||||
\ width:80px; height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n\
|
||||
\ </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if lt IE 7]>\n <style type=\"\
|
||||
text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)\
|
||||
\ }\n </style>\n<![endif]-->\n\n<center><table border=\"0\" width=\"90%\"\
|
||||
>\n<tr>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"\
|
||||
\ \" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"\
|
||||
20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Popular\
|
||||
\ Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"\
|
||||
\ alt=\" \" />Useful</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"\
|
||||
20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Forums</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse By Shows</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/4906\">12 Monkeys</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV Shows Schedule</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\"\
|
||||
>Site Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/movie-subtitles\">Browse By Movies</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\"\
|
||||
>Frequently Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support\
|
||||
\ Us</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/top-uploaders\"\
|
||||
>Top Uploaders</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/620\"\
|
||||
>Modern Family</a></div></td>\n<td><div id=\"footermenu\">RSS Feeds</div></td>\n\
|
||||
<td><div id=\"footermenu\">Premium Accounts</div></td>\n</tr>\n<tr>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top Downloads</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td\
|
||||
\ class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"\
|
||||
\ \"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\"\
|
||||
>Video Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/log.php?mode=news\">All News</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"/show/450\">Parks and Recreation</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\"\
|
||||
>How to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently\
|
||||
\ Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"http://www.sub-talk.net\">Sub-Talk Forums</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/show/1277\">Shameless (US)</a></div></td>\n\
|
||||
<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows Talk</a></div></td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest\
|
||||
\ Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\"\
|
||||
>The Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation\
|
||||
\ Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\"\
|
||||
>Movies Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"\
|
||||
http://www.vreaubagaj.ro/troler/\" title=\"Trolere ieftine\" alt=\"Trolere\
|
||||
\ ieftine\">Trolere ieftine</a></div></td>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/show/130\">Family Guy</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
>Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img width=\"\
|
||||
20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"\
|
||||
TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \"\
|
||||
\ />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\"\
|
||||
>How to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\"\
|
||||
\ title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n\
|
||||
</center>\n\n<script type=\"text/javascript\">\nvar gaJsHost = ((\"https:\"\
|
||||
\ == document.location.protocol) ? \"https://ssl.\" : \"http://www.\");\n\
|
||||
document.write(unescape(\"%3Cscript src='\" + gaJsHost + \"google-analytics.com/ga.js'\
|
||||
\ type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script type=\"\
|
||||
text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\"\
|
||||
);\npageTracker._trackPageview();\n} catch(err) {}</script>\n\n\n<script type=\"\
|
||||
text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n\
|
||||
\ \
|
||||
\ \n</body>\n</html>\n"}
|
||||
headers:
|
||||
cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
connection: [keep-alive]
|
||||
content-type: [text/html]
|
||||
date: ['Thu, 29 Oct 2015 22:04:19 GMT']
|
||||
expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
location: [/]
|
||||
pragma: [no-cache]
|
||||
server: [nginx]
|
||||
set-cookie: [PHPSESSID=k44iirltupujnmaku1el93ddc0; path=/]
|
||||
x-powered-by: [PHP/5.3.3]
|
||||
status: {code: 302, message: Moved Temporarily}
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Cookie: [PHPSESSID=k44iirltupujnmaku1el93ddc0]
|
||||
User-Agent: [Subliminal/1.1]
|
||||
method: GET
|
||||
uri: http://www.addic7ed.com/panel.php
|
||||
response:
|
||||
body: {string: !!python/unicode " \n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML\
|
||||
\ 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"\
|
||||
>\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n\n<meta http-equiv=\"\
|
||||
Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>Addic7ed.com\
|
||||
\ - For all those TV Series Addic7s: Subtitles, Tv Series and Movies Talk,\
|
||||
\ Forum and more -</title>\n<link href=\"css/wikisubtitles.css\" rel=\"stylesheet\"\
|
||||
\ title=\"default\" type=\"text/css\" />\n<link rel=\"SHORTCUT ICON\" href=\"\
|
||||
favicon.ico\" /> \n<link rel=\"stylesheet\" type=\"text/css\" href=\"css/panel.css\"\
|
||||
\ >\n</head>\n<body>\n\n<center><br />\n<table border=\"0\">\n<tr>\n <td\
|
||||
\ rowspan=\"9\"><a href=\"/\"><img height=\"200\" width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\"\
|
||||
\ border=\"0\" title=\"Addic7ed.com - Quality Subtitles for TV Shows and\
|
||||
\ movies\" alt=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\"\
|
||||
\ /></a></td>\n</tr>\n<tr><td align=\"center\" colspan=\"2\">\n<h1><small>Download\
|
||||
\ free subtitles for TV Shows and Movies.</small> \n<select name=\"\
|
||||
applang\" class=\"inputCool\" onchange=\"changeAppLang();\" id=\"comboLang\"\
|
||||
><option value=\"ar\">Arabic</option><option value=\"ca\">Catala</option><option\
|
||||
\ selected=\"selected\" value=\"en\">English</option><option value=\"eu\"\
|
||||
>Euskera</option><option value=\"fr\">French</option><option value=\"ga\"\
|
||||
>Galician</option><option value=\"de\">German</option><option value=\"gr\"\
|
||||
>Greek</option><option value=\"hu\">Hungarian</option><option value=\"it\"\
|
||||
>Italian</option><option value=\"fa\">Persian</option><option value=\"pl\"\
|
||||
>Polish</option><option value=\"pt\">Portuguese</option><option value=\"br\"\
|
||||
>Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option\
|
||||
\ value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option\
|
||||
\ value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"\
|
||||
center\" colspan=\"2\">\n\n<script language=\"javascript\">\nvar url=\"/msgspopup.php?count=1\"\
|
||||
;\t\teditwin = window.open(url, \"msgswin\", 'height=200,width=350,toolbar=0,location=0,statusbar=0,menubar=0');\
|
||||
\ \n\t\tif (editwin.focus) {editwin.focus()}\n</script>\n<div id=\"hBar\"\
|
||||
>\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"button white\" href=\"/panel.php\"\
|
||||
>My Panel</a></li><li><a class=\"button white\" href=\"/newsub.php\">Upload</a></li>\t\
|
||||
\t\t<li><a class=\"button white\" href=\"/shows.php\">Shows</a></li>\n\t\t\
|
||||
\t\t<li><a class=\"button white\" href=\"/allshows/a\">Air dates</a></li>\n\
|
||||
\t\t\t\t<li><a class=\"button white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\
|
||||
\t\t\t\t<li><a class=\"button white\" href=\"/logout.php\">Logout</a></li>\n\
|
||||
\t\t\t </ul>\n\t\t\t </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone\
|
||||
\ size=\"medium\"></g:plusone>\n <a href=\"http://twitter.com/addic7ed\"\
|
||||
\ target=\"_blank\"><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\"\
|
||||
\ alt=\"Twitter\" border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"\
|
||||
><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"\
|
||||
\ alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\"\
|
||||
>\n\n </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=tahoma&height=21&appId=121322186712\"\
|
||||
\ scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden;\
|
||||
\ width:80px; height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n\
|
||||
\ </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if lt IE 7]>\n <style type=\"\
|
||||
text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)\
|
||||
\ }\n </style>\n<![endif]-->\n\n\n<table width=\"94%\" border=\"0\" cellpadding=\"\
|
||||
0\" cellspacing=\"0\">\n <tr bgcolor=\"#FFFFFF\">\n <th width=\"14%\"\
|
||||
\ height=\"37\" bgcolor=\"#009BCA\" scope=\"row\"></th>\n \n <td width=\"\
|
||||
83%\" height=\"37\"><center>\n<div id=\"container\"> \n \t<table class=\"\
|
||||
tabel\" border=\"0\">\n \t<tr> <!-- table header -->\n \t\
|
||||
<td class=\"tablecorner\"><img src=\"images/tl.gif\" /></td>\n \
|
||||
\ <td></td>\n <td class=\"tablecorner\"><img src=\"images/tr.gif\"\
|
||||
\ /></td>\n </tr>\n <tr>\n \t<td></td>\n\
|
||||
\ <td><div class=\"subItem\"><big><center>subliminal - </center></div>\n\
|
||||
</td>\n <td></td>\n </tr>\n <tr> <!--\
|
||||
\ table footer -->\n \t<td class=\"tablecorner\"><img src=\"images/bl.gif\"\
|
||||
\ /></td>\n <td></td>\n <td class=\"tablecorner\"\
|
||||
><img src=\"images/br.gif\" /></td>\n </tr>\n </table>\n\
|
||||
\ </div></td>\n </tr>\n<tr><td><img src=\"images/invisible.gif\"></td></tr>\n\
|
||||
\ <tr>\n<th height=\"58\" bgcolor=\"#009BCA\" scope=\"row\"><div class=\"\
|
||||
navbar\">\r\n<!-- *********************************Start Menu******************************\
|
||||
\ -->\r\n<div class=\"mainDiv\" >\r\n<div class=\"topItem\" >Personal</div>\r\
|
||||
\n<div class=\"dropMenu\" ><!-- -->\r\n <div class=\"subMenu\" style=\"\
|
||||
display:inline;\">\r\n <div class=\"subItem\"><a href=\"/panel_edit_profile.php\"\
|
||||
>Edit Profile</a></div>\r\n <div class=\"subItem\"><a href=\"\
|
||||
/mydownloads.php\">My Downloads</a></div>\r\n <div class=\"\
|
||||
subItem\"><a href=\"/following.php\">I'm Following</a></div>\r\n \
|
||||
\ <div class=\"subItem\"><a href=\"/myviews.php\">I've Viewed</a></div>\r\
|
||||
\n </div>\r\n</div>\r\n</div>\r\n<!-- *********************************End\
|
||||
\ Menu****************************** --></th>\r\n <td bgcolor=\"#009BCA\"\
|
||||
\ align=\"center\">\n<div id=\"container\"> \n \t<table class=\"tabel70\"\
|
||||
\ border=0\">\n \t<tr> <!-- table header -->\n \t<td class=\"\
|
||||
tablecorner\"><img src=\"/images/tl.gif\" /></td>\n <td></td>\n\
|
||||
\ <td class=\"tablecorner\"><img src=\"/images/tr.gif\" /></td>\n\
|
||||
\ </tr>\n <tr>\n \t<td></td>\n \
|
||||
\ <td>\n<table class=\"tabel\" border=\"0\" align=\"center\">\n \
|
||||
\ <tr>\n <td align=\"center\" rowspan=\"10\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=db74435d70e361342a19ce6de59db4ff&size=100&rating=X&border=FF0000\"\
|
||||
\ width=\"100\" height=\"100\" /></td>\n <td></td>\n </tr>\n \
|
||||
\ <tr>\n <td class=\"topItem\">Addict Since</td>\n <td>2015-06-30\
|
||||
\ 16:35:35</td>\n <td></td>\n </tr>\n <tr>\n <td class=\"\
|
||||
topItem\">Web site</td>\n <td></td>\n <td></td>\n </tr>\n\
|
||||
\ <tr>\n <td class=\"topItem\">Signature</td>\n <td></td>\n\
|
||||
\ <td></td>\n </tr>\n <tr>\n <td class=\"topItem\"\
|
||||
>Gender</td>\n <td>Male</td>\n <td></td>\n </tr>\n \
|
||||
\ <tr>\n <td class=\"topItem\">Downloads by User Today</td>\n \
|
||||
\ <td><a href='mydownloads.php'>0 of 40</a></td>\n <td></td>\n \
|
||||
\ </tr>\n <tr>\n <td class=\"topItem\">Downloads from IP Today</td>\n\
|
||||
\ <td><a href='log.php?mode=ip&ip=5.51.3.145'>1</a></td>\n <td></td>\n\
|
||||
\ </tr>\n <tr>\n <td class=\"topItem\">Class</td>\n \
|
||||
\ \t<td>Regular</td>\n <td></td>\n </tr>\n <tr>\n \
|
||||
\ <td class=\"topItem\">Last Seen</td>\n <td>2015-10-29 23:04:19</td>\n\
|
||||
\ <td></td>\n </tr>\n <tr>\n <td class=\"topItem\"\
|
||||
>Last IP</td>\n <td><a href='log.php?mode=ip&ip=5.51.3.145'>5.51.3.145</a></td>\n\
|
||||
\ <td></td>\n </tr>\n <tr>\n <td class=\"topItem\"\
|
||||
>Episodes created</td>\n <td>0</td>\n <td></td>\n </tr>\n\
|
||||
\ </table>\n</td>\n <td></td>\n </tr>\n \
|
||||
\ <tr> <!-- table footer -->\n \t<td class=\"tablecorner\"\
|
||||
><img src=\"/images/bl.gif\" /></td>\n <td></td>\n \
|
||||
\ <td class=\"tablecorner\"><img src=\"/images/br.gif\" /></td>\n \
|
||||
\ </tr>\n </table>\n </div>\n</td>\n \n<tr\
|
||||
\ bgcolor=\"#009BCA\">\n <th height=\"80\" scope=\"row\"><div class=\"\
|
||||
navbar\">\n<!-- *********************************Start Menu******************************\
|
||||
\ -->\n<div class=\"mainDiv\" >\n<div class=\"topItem\" >Messages</div> \
|
||||
\ \n<div class=\"dropMenu\" ><!-- -->\n\t<div class=\"subMenu\" style=\"\
|
||||
display:inline;\">\n\t\t<div class=\"subItem\"><a href=\"msginbox.php\">Inbox</a></div>\n\
|
||||
\t <div class=\"subItem\"><a href=\"msgoutbox.php\">Outbox</a></div>\n\
|
||||
\t\t<div class=\"subItem\"><a href=\"msgcreate.php\">Compose</a></div>\n\t\
|
||||
</div>\n</div>\n</div>\n<!-- *********************************End Menu******************************\
|
||||
\ --></th>\n <td colspan=\"2\" bgcolor=\"#009BCA\"></td>\n </tr>\n <tr\
|
||||
\ bgcolor=\"#009BCA\">\n <th height=\"74\" bgcolor=\"#009BCA\" scope=\"\
|
||||
row\"><div class=\"navbar\">\n<!-- *********************************Start\
|
||||
\ Menu****************************** -->\n<div class=\"mainDiv\" >\n<div class=\"\
|
||||
topItem\" >RSS Feeds</div> \n<div class=\"dropMenu\" ><!-- -->\n\t\
|
||||
<div class=\"subMenu\" style=\"display:inline;\">\n\t\t<div class=\"subItem\"\
|
||||
><a href=\"/log.php?mode=news\">Latest News</a></div>\n\t\t<div class=\"subItem\"\
|
||||
><a href=\"/rss.php?mode=hotspot\">New Releases</a></div>\n\t <div class=\"\
|
||||
subItem\"><a href=\"/rss.php?mode=completed\">Latest Files</a></div>\n\t\t\
|
||||
<div class=\"subItem\"><a href=\"/rss.php?mode=edited\">Latest Edited Files</a></div>\n\
|
||||
\t\t<div class=\"subItem\"><a href=\"/rss.php?mode=translated\">Latest Started\
|
||||
\ Translations</a></div>\n\t\t<div class=\"subItem\"><a href=\"/rss.php?mode=versions\"\
|
||||
>Latest New Versions</a></div>\n\t</div>\n</div>\n</div>\n<!-- *********************************End\
|
||||
\ Menu****************************** --></th>\n <td colspan=\"2\" rowspan=\"\
|
||||
5\"></td>\n </tr>\n <tr bgcolor=\"#FFFFFF\">\n <th height=\"75\" bgcolor=\"\
|
||||
#009BCA\" scope=\"row\"><div class=\"navbar\">\n <!-- *********************************Start\
|
||||
\ Menu****************************** -->\n <div class=\"mainDiv\" >\n <div\
|
||||
\ class=\"topItem\" >Support Addic7ed</div> \n <div class=\"dropMenu\"\
|
||||
\ ><!-- -->\n <div class=\"subMenu\" style=\"display:inline;\">\n \
|
||||
\ <div class=\"subItem\"><a href=\"/contact.php\">Donations</a></div>\n \
|
||||
\ </div>\n </div>\n </div>\n <!-- *********************************End\
|
||||
\ Menu****************************** --></th>\n </tr>\n <tr bgcolor=\"#009BCA\"\
|
||||
>\n <th height=\"70\" scope=\"row\"><div class=\"navbar\">\n <!-- *********************************Start\
|
||||
\ Menu****************************** -->\n <div class=\"mainDiv\" >\n <div\
|
||||
\ class=\"topItem\" >Help & Contact</div> \n <div class=\"dropMenu\"\
|
||||
\ ><!-- -->\n <div class=\"subMenu\" style=\"display:inline;\">\n \
|
||||
\ <div class=\"subItem\"><a href=\"http://www.sub-talk.net/\">Forums</a></div>\n\
|
||||
\ <div class=\"subItem\"><a href=\"/contact.php\">Contact</a></div> \
|
||||
\ \n </div>\n </div>\n </div>\n <!-- *********************************End\
|
||||
\ Menu****************************** --></th>\n </tr>\n <tr bgcolor=\"#009BCA\"\
|
||||
>\n <th height=\"98\" scope=\"row\"><div class=\"navbar\">\n <!-- *********************************Start\
|
||||
\ Menu****************************** -->\n <div class=\"mainDiv\" >\n <div\
|
||||
\ class=\"topItem\" >Miscellaneous</div> \n <div class=\"dropMenu\"\
|
||||
\ ><!-- -->\n <div class=\"subMenu\" style=\"display:inline;\">\n \
|
||||
\ <div class=\"subItem\"><a href=\"/shows-schedule\">Shows Schedule</a></div>\n\
|
||||
\ <div class=\"subItem\"><a href=\"http://www.twitter.com/addic7ed\"\
|
||||
>Addic7ed@Twitter</a></div>\n <div class=\"subItem\"><a href=\"irc://irc.efnet.net/addic7ed\"\
|
||||
>Addic7ed on IRC</a></div>\n <div class=\"subItem\"><a href=\"http://chat.mibbit.com/?server=irc.umich.edu&channel=%23addic7ed\"\
|
||||
>Addic7ed - IRC (WebChat)</a></div>\n <div class=\"subItem\"><a href=\"\
|
||||
http://www.facebook.com/pages/Addic7ed-Subtitles/103460216722?ref=nf\">Addic7ed\
|
||||
\ on Facebook</a></div>\n </div>\n </div>\n </div>\n <!-- *********************************End\
|
||||
\ Menu****************************** --></th>\n </tr>\n \n\n</table>\n<script\
|
||||
\ type=\"text/javascript\" src=\"/xpmenuv21.js\"></script>\n</div>\n\n<center><table\
|
||||
\ border=\"0\" width=\"90%\">\n<tr>\n<td class=\"NewsTitle\"><img width=\"\
|
||||
20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"\
|
||||
TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \"\
|
||||
\ />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Popular\
|
||||
\ Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"\
|
||||
\ alt=\" \" />Useful</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"\
|
||||
20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Forums</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse By Shows</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/4906\">12 Monkeys</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV Shows Schedule</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\"\
|
||||
>Site Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/movie-subtitles\">Browse By Movies</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\"\
|
||||
>Frequently Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support\
|
||||
\ Us</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/top-uploaders\"\
|
||||
>Top Uploaders</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/620\"\
|
||||
>Modern Family</a></div></td>\n<td><div id=\"footermenu\">RSS Feeds</div></td>\n\
|
||||
<td><div id=\"footermenu\">Premium Accounts</div></td>\n</tr>\n<tr>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top Downloads</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td\
|
||||
\ class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"\
|
||||
\ \"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\"\
|
||||
>Video Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/log.php?mode=news\">All News</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"/show/450\">Parks and Recreation</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\"\
|
||||
>How to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently\
|
||||
\ Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"http://www.sub-talk.net\">Sub-Talk Forums</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/show/1277\">Shameless (US)</a></div></td>\n\
|
||||
<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows Talk</a></div></td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest\
|
||||
\ Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\"\
|
||||
>The Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation\
|
||||
\ Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\"\
|
||||
>Movies Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"\
|
||||
http://www.vreaubagaj.ro/troler/\" title=\"Trolere ieftine\" alt=\"Trolere\
|
||||
\ ieftine\">Trolere ieftine</a></div></td>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/show/130\">Family Guy</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
>Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img width=\"\
|
||||
20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"\
|
||||
TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \"\
|
||||
\ />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\"\
|
||||
>How to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\"\
|
||||
\ title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n\
|
||||
</center>\n\n<script type=\"text/javascript\">\nvar gaJsHost = ((\"https:\"\
|
||||
\ == document.location.protocol) ? \"https://ssl.\" : \"http://www.\");\n\
|
||||
document.write(unescape(\"%3Cscript src='\" + gaJsHost + \"google-analytics.com/ga.js'\
|
||||
\ type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script type=\"\
|
||||
text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\"\
|
||||
);\npageTracker._trackPageview();\n} catch(err) {}</script>\n\n\n<script type=\"\
|
||||
text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n\
|
||||
\ \
|
||||
\ \n</body>\n</html>\n"}
|
||||
headers:
|
||||
cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
connection: [keep-alive]
|
||||
content-type: [text/html]
|
||||
date: ['Thu, 29 Oct 2015 22:04:20 GMT']
|
||||
expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
pragma: [no-cache]
|
||||
server: [nginx]
|
||||
x-powered-by: [PHP/5.3.3]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,131 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: username=subliminal&password=lanimilbus&Submit=Log+in
|
||||
headers:
|
||||
Content-Length: ['53']
|
||||
Content-Type: [application/x-www-form-urlencoded]
|
||||
User-Agent: [Subliminal/1.1]
|
||||
method: POST
|
||||
uri: http://www.addic7ed.com/dologin.php
|
||||
response:
|
||||
body: {string: !!python/unicode "\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0\
|
||||
\ Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"\
|
||||
>\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"\
|
||||
Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>Addic7ed.com\
|
||||
\ - For all those TV Series Addic7s: Subtitles, Tv Series and Movies Talk,\
|
||||
\ Forum and more -</title>\n<link href=\"css/wikisubtitles.css\" rel=\"stylesheet\"\
|
||||
\ title=\"default\" type=\"text/css\" media=\"screen\"/>\n</head>\n\n<body>\n\
|
||||
<center><br />\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"\
|
||||
/\"><img height=\"200\" width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\"\
|
||||
\ border=\"0\" title=\"Addic7ed.com - Quality Subtitles for TV Shows and\
|
||||
\ movies\" alt=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\"\
|
||||
\ /></a></td>\n</tr>\n<tr><td align=\"center\" colspan=\"2\">\n<h1><small>Download\
|
||||
\ free subtitles for TV Shows and Movies.</small> \n<select name=\"\
|
||||
applang\" class=\"inputCool\" onchange=\"changeAppLang();\" id=\"comboLang\"\
|
||||
><option value=\"ar\">Arabic</option><option value=\"ca\">Catala</option><option\
|
||||
\ selected=\"selected\" value=\"en\">English</option><option value=\"eu\"\
|
||||
>Euskera</option><option value=\"fr\">French</option><option value=\"ga\"\
|
||||
>Galician</option><option value=\"de\">German</option><option value=\"gr\"\
|
||||
>Greek</option><option value=\"hu\">Hungarian</option><option value=\"it\"\
|
||||
>Italian</option><option value=\"fa\">Persian</option><option value=\"pl\"\
|
||||
>Polish</option><option value=\"pt\">Portuguese</option><option value=\"br\"\
|
||||
>Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option\
|
||||
\ value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option\
|
||||
\ value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"\
|
||||
center\" colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\
|
||||
\t\t\t </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"\
|
||||
medium\"></g:plusone>\n <a href=\"http://twitter.com/addic7ed\" target=\"\
|
||||
_blank\"><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\"\
|
||||
\ alt=\"Twitter\" border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"\
|
||||
><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"\
|
||||
\ alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\"\
|
||||
>\n\n </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=tahoma&height=21&appId=121322186712\"\
|
||||
\ scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden;\
|
||||
\ width:80px; height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n\
|
||||
\ </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if lt IE 7]>\n <style type=\"\
|
||||
text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)\
|
||||
\ }\n </style>\n<![endif]-->\n<p align=\"center\">Wrong password </p>\n<center><table\
|
||||
\ border=\"0\" width=\"90%\">\n<tr>\n<td class=\"NewsTitle\"><img width=\"\
|
||||
20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"\
|
||||
TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \"\
|
||||
\ />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Popular\
|
||||
\ Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"\
|
||||
\ alt=\" \" />Useful</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"\
|
||||
20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Forums</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse By Shows</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/4906\">12 Monkeys</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV Shows Schedule</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\"\
|
||||
>Site Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/movie-subtitles\">Browse By Movies</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\"\
|
||||
>Frequently Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support\
|
||||
\ Us</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/top-uploaders\"\
|
||||
>Top Uploaders</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/620\"\
|
||||
>Modern Family</a></div></td>\n<td><div id=\"footermenu\">RSS Feeds</div></td>\n\
|
||||
<td><div id=\"footermenu\">Premium Accounts</div></td>\n</tr>\n<tr>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top Downloads</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td\
|
||||
\ class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"\
|
||||
\ \"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\"\
|
||||
>Video Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/log.php?mode=news\">All News</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"/show/450\">Parks and Recreation</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\"\
|
||||
>How to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently\
|
||||
\ Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"http://www.sub-talk.net\">Sub-Talk Forums</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/show/1277\">Shameless (US)</a></div></td>\n\
|
||||
<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows Talk</a></div></td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest\
|
||||
\ Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\"\
|
||||
>The Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation\
|
||||
\ Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\"\
|
||||
>Movies Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"\
|
||||
http://www.vreaubagaj.ro/troler/\" title=\"Trolere ieftine\" alt=\"Trolere\
|
||||
\ ieftine\">Trolere ieftine</a></div></td>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/show/130\">Family Guy</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
>Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img width=\"\
|
||||
20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"\
|
||||
TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \"\
|
||||
\ />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\"\
|
||||
>How to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\"\
|
||||
\ title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n\
|
||||
</center>\n\n<script type=\"text/javascript\">\nvar gaJsHost = ((\"https:\"\
|
||||
\ == document.location.protocol) ? \"https://ssl.\" : \"http://www.\");\n\
|
||||
document.write(unescape(\"%3Cscript src='\" + gaJsHost + \"google-analytics.com/ga.js'\
|
||||
\ type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script type=\"\
|
||||
text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\"\
|
||||
);\npageTracker._trackPageview();\n} catch(err) {}</script>\n\n\n<script type=\"\
|
||||
text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n\
|
||||
\ \
|
||||
\ \n</body>\n</html>\n"}
|
||||
headers:
|
||||
cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
connection: [keep-alive]
|
||||
content-type: [text/html]
|
||||
date: ['Thu, 29 Oct 2015 22:04:20 GMT']
|
||||
expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
pragma: [no-cache]
|
||||
server: [nginx]
|
||||
set-cookie: [PHPSESSID=834fibc11mnq6patrf6dm2cj44; path=/]
|
||||
x-powered-by: [PHP/5.3.3]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,763 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/1.1]
|
||||
method: GET
|
||||
uri: http://www.addic7ed.com/search.php?search=The+Big+Bang+Theory&Submit=Search
|
||||
response:
|
||||
body: {string: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\
|
||||
\ \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"\
|
||||
http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\"\
|
||||
\ content=\"text/html; charset=utf-8\" />\n<title>\nSearch \"The Big Bang\
|
||||
\ Theory\" Subtitle Download - Addic7ed.com - For all those TV Series Addic7s:\
|
||||
\ Subtitles, Tv Series and Movies Talk, Forum and more -</title>\n<link href=\"\
|
||||
http://www.addic7ed.com/css/wikisubtitles.css\" rel=\"stylesheet\" title=\"\
|
||||
default\" type=\"text/css\" />\n<link rel=\"SHORTCUT ICON\" href=\"favicon.ico\"\
|
||||
\ /> \n<script type=\"text/javascript\" src=\"http://www.addic7ed.com/js/mootools.v1.11.js\"\
|
||||
></script>\n\n</head>\n<body>\n<center><br />\n<table border=\"0\">\n<tr>\n\
|
||||
\ <td rowspan=\"9\"><a href=\"/\"><img height=\"200\" width=\"350\" src=\"\
|
||||
http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\" title=\"\
|
||||
Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com\
|
||||
\ - Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td\
|
||||
\ align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for\
|
||||
\ TV Shows and Movies.</small> \n<select name=\"applang\" class=\"inputCool\"\
|
||||
\ onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option\
|
||||
\ value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option\
|
||||
\ value=\"eu\">Euskera</option><option value=\"fr\">French</option><option\
|
||||
\ value=\"ga\">Galician</option><option value=\"de\">German</option><option\
|
||||
\ value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option\
|
||||
\ value=\"it\">Italian</option><option value=\"fa\">Persian</option><option\
|
||||
\ value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option\
|
||||
\ value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option\
|
||||
\ value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option\
|
||||
\ value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"\
|
||||
center\" colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\
|
||||
\t\t\t </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"\
|
||||
medium\"></g:plusone>\n <a href=\"http://twitter.com/addic7ed\" target=\"\
|
||||
_blank\"><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\"\
|
||||
\ alt=\"Twitter\" border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"\
|
||||
><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"\
|
||||
\ alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\"\
|
||||
>\n\n </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=tahoma&height=21&appId=121322186712\"\
|
||||
\ scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden;\
|
||||
\ width:80px; height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n\
|
||||
\ </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if lt IE 7]>\n <style type=\"\
|
||||
text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)\
|
||||
\ }\n </style>\n<![endif]-->\n<br />\n<center>\n<!-- MarketGidComposite Start\
|
||||
\ -->\n<div id=\"MarketGidScriptRootC13385\">\n <div id=\"MarketGidPreloadC13385\"\
|
||||
>\n <a id=\"mg_add13385\" href=\"http://mgid.com/advertisers/?utm_source=widget&utm_medium=text&utm_campaign=add\"\
|
||||
\ target=\"_blank\">Place your ad here</a><br> <a href=\"http://mgid.com/\"\
|
||||
\ target=\"_blank\">Loading...</a> \n </div>\n \
|
||||
\ <script>\n window.MGWidgetTitle13385\
|
||||
\ = \"Promoted Content\"; (function(){\n \
|
||||
\ var D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n\
|
||||
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"\
|
||||
MarketGidScriptRootC13385\")[ac](i);try{var iw=i.contentWindow.document;iw.open();iw.writeln(\"\
|
||||
<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var c=iw[b];}\n\
|
||||
\ catch(e){var\
|
||||
\ iw=d;var c=d[gi](\"MarketGidScriptRootC13385\");}var dv=iw[ce]('div');dv.id=\"\
|
||||
MG_ID\";dv[st][ds]=n;dv.innerHTML=13385;c[ac](dv);\n \
|
||||
\ var s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"\
|
||||
//jsc.mgid.com/a/d/addic7ed.com.13385.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n\
|
||||
\ \
|
||||
\ </script>\n \
|
||||
\ </div>\n \
|
||||
\ <!-- MarketGidComposite\
|
||||
\ End -->\n\n<script data-cfasync=false src=\"//s.ato.mx/p.js#id=7869&type=popunder&cap=1:24\"\
|
||||
></script>\n</center><br />\n\n<div id=\"container\"> \n \t<table class=\"\
|
||||
tabel70\" border=\"0\">\n \t<tr> <!-- table header -->\n \
|
||||
\ \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/tl.gif\"\
|
||||
\ /></td>\n <td></td>\n <td class=\"tablecorner\"\
|
||||
><img src=\"http://www.addic7ed.com/images/tr.gif\" /></td>\n </tr>\n\
|
||||
\ <tr>\n \t<td></td>\n <td>\n<form action=\"\
|
||||
/search.php\" method=\"get\">\n<div align=\"center\">\n<input name=\"search\"\
|
||||
\ type=\"text\" id=\"search\" size=\"50\" value=\"The Big Bang Theory\" class=\"\
|
||||
inputCool\"/> \n <input name=\"Submit\" type=\"submit\" class=\"coolBoton\"\
|
||||
\ value=\"Search\" /></form><br />\n\n<b>193 results found</b> </div><br />\n\
|
||||
\n<br />\n\t<center>\n\n</center>\n<br />\n<center> <img src=\"\
|
||||
http://www.addic7ed.com/images/database.png\" /> <span class=\"titulo\">\n\
|
||||
Are you looking for <a href=\"/show/126\" >Show <i>The Big Bang Theory</i></a> ?</span></center><br\
|
||||
\ /><br />\n\n<table class=\"tabel\" align=\"center\" width=\"80%\" border=\"\
|
||||
0\">\n<tr><td><img src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a\
|
||||
\ href=\"serie/The_Big_Bang_Theory/1/0/Unaired_Pilot\" debug=\"27979\">The\
|
||||
\ Big Bang Theory - 01x00 - Unaired Pilot</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/1/Pilot\"\
|
||||
\ debug=\"2354\">The Big Bang Theory - 01x01 - Pilot</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/2/The_big_bran_hypothesis\" debug=\"2420\">The\
|
||||
\ Big Bang Theory - 01x02 - The big bran hypothesis</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/3/The_fuzzy_boots_collorary\" debug=\"2563\">The\
|
||||
\ Big Bang Theory - 01x03 - The fuzzy boots collorary</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/4/The_luminous_fish_effect\" debug=\"2795\">The\
|
||||
\ Big Bang Theory - 01x04 - The luminous fish effect</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/5/The_hamburger_postulate\" debug=\"2937\">The\
|
||||
\ Big Bang Theory - 01x05 - The hamburger postulate</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/6/The_middle_earth_paradigm\" debug=\"3025\">The\
|
||||
\ Big Bang Theory - 01x06 - The middle earth paradigm</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/7/The_dumpling_paradox\" debug=\"3161\">The Big\
|
||||
\ Bang Theory - 01x07 - The dumpling paradox</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/8/The_grasshopper_experiment\" debug=\"3365\"\
|
||||
>The Big Bang Theory - 01x08 - The grasshopper experiment</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/9/The_Cooper_Hofstadter_polarization\" debug=\"\
|
||||
7863\">The Big Bang Theory - 01x09 - The Cooper Hofstadter polarization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/10/The_Loobenfeld_decay\" debug=\"7943\">The Big\
|
||||
\ Bang Theory - 01x10 - The Loobenfeld decay</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/11/The_pancake_batter_anomaly\" debug=\"8069\"\
|
||||
>The Big Bang Theory - 01x11 - The pancake batter anomaly</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/12/The_Jerusalem_duality\" debug=\"8415\">The\
|
||||
\ Big Bang Theory - 01x12 - The Jerusalem duality</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/13/The_Bat_Jar_Conjceture\" debug=\"8561\">The\
|
||||
\ Big Bang Theory - 01x13 - The Bat Jar Conjceture</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/14/The_Nerdvana_Annihilation\" debug=\"8672\"\
|
||||
>The Big Bang Theory - 01x14 - The Nerdvana Annihilation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/15/The_Shiksa_Indeterminacy\" debug=\"8792\">The\
|
||||
\ Big Bang Theory - 01x15 - The Shiksa Indeterminacy</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/16/The_Peanut_Reaction\" debug=\"8979\">The Big\
|
||||
\ Bang Theory - 01x16 - The Peanut Reaction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/17/The_Tangerine_Factor\" debug=\"11375\">The\
|
||||
\ Big Bang Theory - 01x17 - The Tangerine Factor</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/1/The_Bad_Fish_Paradigm\" debug=\"9593\">The Big\
|
||||
\ Bang Theory - 02x01 - The Bad Fish Paradigm</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/2/The_Codpiece_Topology\" debug=\"9596\">The Big\
|
||||
\ Bang Theory - 02x02 - The Codpiece Topology</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/3/The_Barbarian_Sublimation\" debug=\"10093\"\
|
||||
>The Big Bang Theory - 02x03 - The Barbarian Sublimation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/4/The_Griffin_Equivalency\" debug=\"10094\">The\
|
||||
\ Big Bang Theory - 02x04 - The Griffin Equivalency</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/5/The_Euclid_Alternative\" debug=\"10095\">The\
|
||||
\ Big Bang Theory - 02x05 - The Euclid Alternative</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/6/The_Cooper-Nowitzki_Theorem\" debug=\"10096\"\
|
||||
>The Big Bang Theory - 02x06 - The Cooper-Nowitzki Theorem</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/7/The_Panty_Pi%C3%B1ata_Polarization\" debug=\"\
|
||||
9600\">The Big Bang Theory - 02x07 - The Panty Pi\xF1ata Polarization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/8/The_Lizard-Spock_Expansion\" debug=\"10099\"\
|
||||
>The Big Bang Theory - 02x08 - The Lizard-Spock Expansion</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/9/The_White_Asparagus_Triangulation\" debug=\"\
|
||||
9602\">The Big Bang Theory - 02x09 - The White Asparagus Triangulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/10/The_Vartabedian_Conundrum\" debug=\"9605\"\
|
||||
>The Big Bang Theory - 02x10 - The Vartabedian Conundrum</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/11/The_Bath_Item_Gift_Hypothesis\" debug=\"9608\"\
|
||||
>The Big Bang Theory - 02x11 - The Bath Item Gift Hypothesis</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/12/The_Killer_Robot_Instability\" debug=\"10100\"\
|
||||
>The Big Bang Theory - 02x12 - The Killer Robot Instability</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/13/The_Friendship_Algorithm\" debug=\"10102\"\
|
||||
>The Big Bang Theory - 02x13 - The Friendship Algorithm</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/14/The_Financial_Permeability\" debug=\"10552\"\
|
||||
>The Big Bang Theory - 02x14 - The Financial Permeability</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/15/The_Maternal_Capacitance\" debug=\"10631\"\
|
||||
>The Big Bang Theory - 02x15 - The Maternal Capacitance</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/16/The_Cushion_Saturation\" debug=\"11144\">The\
|
||||
\ Big Bang Theory - 02x16 - The Cushion Saturation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/17/The_Terminator_Decoupling\" debug=\"11339\"\
|
||||
>The Big Bang Theory - 02x17 - The Terminator Decoupling</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/18/The_Work_Song_Nanocluster\" debug=\"11418\"\
|
||||
>The Big Bang Theory - 02x18 - The Work Song Nanocluster</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/19/The_Dead_Hooker_Juxtaposition\" debug=\"11809\"\
|
||||
>The Big Bang Theory - 02x19 - The Dead Hooker Juxtaposition</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/20/The_Hofstadter_Isotope\" debug=\"11989\">The\
|
||||
\ Big Bang Theory - 02x20 - The Hofstadter Isotope</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/21/The_Vegas_Renormalization\" debug=\"12156\"\
|
||||
>The Big Bang Theory - 02x21 - The Vegas Renormalization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/22/The_Classified_Materials_Turbulence\" debug=\"\
|
||||
12320\">The Big Bang Theory - 02x22 - The Classified Materials Turbulence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/23/The_Monopolar_Expedition\" debug=\"12769\"\
|
||||
>The Big Bang Theory - 02x23 - The Monopolar Expedition</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/1/The_Electric_Can_Opener_Fluctuation\" debug=\"\
|
||||
20679\">The Big Bang Theory - 03x01 - The Electric Can Opener Fluctuation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/2/The_Jiminy_Conjecture\" debug=\"20792\">The\
|
||||
\ Big Bang Theory - 03x02 - The Jiminy Conjecture</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/3/The_Gothowitz_Deviation\" debug=\"21229\">The\
|
||||
\ Big Bang Theory - 03x03 - The Gothowitz Deviation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/4/The_Pirate_Solution\" debug=\"21404\">The Big\
|
||||
\ Bang Theory - 03x04 - The Pirate Solution</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/5/The_Creepy_Candy_Coating_Corollary\" debug=\"\
|
||||
22031\">The Big Bang Theory - 03x05 - The Creepy Candy Coating Corollary</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/6/The_Cornhusker_Vortex\" debug=\"22315\">The\
|
||||
\ Big Bang Theory - 03x06 - The Cornhusker Vortex</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/7/The_Guitarist_Amplification\" debug=\"22479\"\
|
||||
>The Big Bang Theory - 03x07 - The Guitarist Amplification</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/8/The_Adhesive_Duck_Deficiency\" debug=\"22733\"\
|
||||
>The Big Bang Theory - 03x08 - The Adhesive Duck Deficiency</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/9/The_Vengeance_Formulation\" debug=\"23240\"\
|
||||
>The Big Bang Theory - 03x09 - The Vengeance Formulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/10/The_Gorilla_Experiment\" debug=\"23507\">The\
|
||||
\ Big Bang Theory - 03x10 - The Gorilla Experiment</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/11/The_Maternal_Congruence\" debug=\"23645\">The\
|
||||
\ Big Bang Theory - 03x11 - The Maternal Congruence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/12/The_Psychic_Vortex\" debug=\"23974\">The Big\
|
||||
\ Bang Theory - 03x12 - The Psychic Vortex</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/13/The_Bozeman_Reaction\"\
|
||||
\ debug=\"24082\">The Big Bang Theory - 03x13 - The Bozeman Reaction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/14/The_Einstein_Approximation\" debug=\"24334\"\
|
||||
>The Big Bang Theory - 03x14 - The Einstein Approximation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/15/The_Large_Hadron_Collision\" debug=\"24335\"\
|
||||
>The Big Bang Theory - 03x15 - The Large Hadron Collision</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/16/The_Excelsior_Acquisition\" debug=\"24337\"\
|
||||
>The Big Bang Theory - 03x16 - The Excelsior Acquisition</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/17/The_Precious_Fragmentation\" debug=\"24352\"\
|
||||
>The Big Bang Theory - 03x17 - The Precious Fragmentation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/18/The_Pants_Alternative\" debug=\"24339\">The\
|
||||
\ Big Bang Theory - 03x18 - The Pants Alternative</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/19/The_Wheaton_Recurrence\" debug=\"25230\">The\
|
||||
\ Big Bang Theory - 03x19 - The Wheaton Recurrence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/20/The_Spaghetti_Catalyst\" debug=\"26996\">The\
|
||||
\ Big Bang Theory - 03x20 - The Spaghetti Catalyst</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/21/The_Plimpton_Stimulation\" debug=\"27303\"\
|
||||
>The Big Bang Theory - 03x21 - The Plimpton Stimulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/22/The_Staircase_Implementation\" debug=\"27531\"\
|
||||
>The Big Bang Theory - 03x22 - The Staircase Implementation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/23/The_Lunar_Excitation\" debug=\"27712\">The\
|
||||
\ Big Bang Theory - 03x23 - The Lunar Excitation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/1/The_Robotic_Manipulation\" debug=\"32678\">The\
|
||||
\ Big Bang Theory - 04x01 - The Robotic Manipulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/2/The_Cruciferous_Vegetable_Amplification\" debug=\"\
|
||||
33395\">The Big Bang Theory - 04x02 - The Cruciferous Vegetable Amplification</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/3/The_Zazzy_Substitution\" debug=\"33712\">The\
|
||||
\ Big Bang Theory - 04x03 - The Zazzy Substitution</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/4/The_Hot_Troll_Deviation\" debug=\"33944\">The\
|
||||
\ Big Bang Theory - 04x04 - The Hot Troll Deviation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/5/The_Desperation_Emanation\" debug=\"34325\"\
|
||||
>The Big Bang Theory - 04x05 - The Desperation Emanation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/6/The_Irish_Pub_Formulation\" debug=\"34542\"\
|
||||
>The Big Bang Theory - 04x06 - The Irish Pub Formulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/7/The_Apology_Insufficiency\" debug=\"34799\"\
|
||||
>The Big Bang Theory - 04x07 - The Apology Insufficiency</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/8/The_21_Second_Excitation\" debug=\"35076\">The\
|
||||
\ Big Bang Theory - 04x08 - The 21 Second Excitation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/9/The_Boyfriend_Complexity\" debug=\"35418\">The\
|
||||
\ Big Bang Theory - 04x09 - The Boyfriend Complexity</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/10/The_Alien_Parasite_Hypothesis\" debug=\"36421\"\
|
||||
>The Big Bang Theory - 04x10 - The Alien Parasite Hypothesis</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/11/The_Justice_League_Recombination\" debug=\"\
|
||||
36591\">The Big Bang Theory - 04x11 - The Justice League Recombination</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/12/The_Bus_Pants_Utilization\" debug=\"37789\"\
|
||||
>The Big Bang Theory - 04x12 - The Bus Pants Utilization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/13/The_Love_Car_Displacement\" debug=\"38686\"\
|
||||
>The Big Bang Theory - 04x13 - The Love Car Displacement</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/14/The_Thespian_Catalyst\" debug=\"39279\">The\
|
||||
\ Big Bang Theory - 04x14 - The Thespian Catalyst</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/15/The_Benefactor_Factor\" debug=\"39696\">The\
|
||||
\ Big Bang Theory - 04x15 - The Benefactor Factor</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/16/The_Cohabitation_Formulation\" debug=\"40060\"\
|
||||
>The Big Bang Theory - 04x16 - The Cohabitation Formulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/17/The_Toast_Derivation\" debug=\"40369\">The\
|
||||
\ Big Bang Theory - 04x17 - The Toast Derivation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/17/The_toast_derivation\" debug=\"70619\">The\
|
||||
\ Big Bang Theory - 04x17 - The toast derivation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/18/The_Prestidigitation_Approximation\" debug=\"\
|
||||
41307\">The Big Bang Theory - 04x18 - The Prestidigitation Approximation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/19/The_Zarnecki_Incursion\" debug=\"42144\">The\
|
||||
\ Big Bang Theory - 04x19 - The Zarnecki Incursion</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/20/The_Herb_Garden_Germination\" debug=\"42506\"\
|
||||
>The Big Bang Theory - 04x20 - The Herb Garden Germination</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/21/The_Agreement_Dissection\" debug=\"43453\"\
|
||||
>The Big Bang Theory - 04x21 - The Agreement Dissection</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/22/The_Wildebeest_Implementation\" debug=\"43963\"\
|
||||
>The Big Bang Theory - 04x22 - The Wildebeest Implementation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/23/The_Engagement_Reaction\" debug=\"44298\">The\
|
||||
\ Big Bang Theory - 04x23 - The Engagement Reaction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/24/The_Roommate_Transmogrification\" debug=\"\
|
||||
45211\">The Big Bang Theory - 04x24 - The Roommate Transmogrification</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/99/It_All_Started_With_A_Big_Bang\" debug=\"61471\"\
|
||||
>The Big Bang Theory - 04x99 - It All Started With A Big Bang</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/0/Access_All_Areas\" debug=\"61470\">The Big Bang\
|
||||
\ Theory - 05x00 - Access All Areas</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/The_Big_Bang_Theory/5/1/The_Skank_Reflex_Analysis\"\
|
||||
\ debug=\"50098\">The Big Bang Theory - 05x01 - The Skank Reflex Analysis</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/2/The_Infestation_Hypothesis\" debug=\"50100\"\
|
||||
>The Big Bang Theory - 05x02 - The Infestation Hypothesis</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/3/The_Pulled_Groin_Extrapolation\" debug=\"50464\"\
|
||||
>The Big Bang Theory - 05x03 - The Pulled Groin Extrapolation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/4/The_Wiggly_Finger_Catalyst\" debug=\"50787\"\
|
||||
>The Big Bang Theory - 05x04 - The Wiggly Finger Catalyst</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/5/The_Russian_Rocket_Reaction\" debug=\"51286\"\
|
||||
>The Big Bang Theory - 05x05 - The Russian Rocket Reaction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/6/The_Rhinitis_Revelation\" debug=\"52502\">The\
|
||||
\ Big Bang Theory - 05x06 - The Rhinitis Revelation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/7/The_Good_Guy_Fluctuation\" debug=\"53602\">The\
|
||||
\ Big Bang Theory - 05x07 - The Good Guy Fluctuation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/8/The_Isolation_Permutation\" debug=\"54479\"\
|
||||
>The Big Bang Theory - 05x08 - The Isolation Permutation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/9/The_Ornithophobia_Diffusion\" debug=\"54953\"\
|
||||
>The Big Bang Theory - 05x09 - The Ornithophobia Diffusion</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/10/The_Flaming_Spittoon_Acquisition\" debug=\"\
|
||||
55214\">The Big Bang Theory - 05x10 - The Flaming Spittoon Acquisition</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/11/The_Speckerman_Recurrence\" debug=\"56382\"\
|
||||
>The Big Bang Theory - 05x11 - The Speckerman Recurrence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/12/The_Shiny_Trinket_Maneuver\" debug=\"58784\"\
|
||||
>The Big Bang Theory - 05x12 - The Shiny Trinket Maneuver</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/13/The_Recombination_Hypothesis\" debug=\"59003\"\
|
||||
>The Big Bang Theory - 05x13 - The Recombination Hypothesis</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/14/The_Beta_Test_Initiation\" debug=\"59196\"\
|
||||
>The Big Bang Theory - 05x14 - The Beta Test Initiation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/15/The_Friendship_Contraction\" debug=\"59388\"\
|
||||
>The Big Bang Theory - 05x15 - The Friendship Contraction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/16/The_Vacation_Solution\" debug=\"59650\">The\
|
||||
\ Big Bang Theory - 05x16 - The Vacation Solution</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/17/The_Rothman_Disintegration\" debug=\"59867\"\
|
||||
>The Big Bang Theory - 05x17 - The Rothman Disintegration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/18/The_Werewolf_Transformation\" debug=\"60147\"\
|
||||
>The Big Bang Theory - 05x18 - The Werewolf Transformation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/19/The_Weekend_Vortex\" debug=\"60580\">The Big\
|
||||
\ Bang Theory - 05x19 - The Weekend Vortex</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/20/The_Transporter_Malfunction\"\
|
||||
\ debug=\"61153\">The Big Bang Theory - 05x20 - The Transporter Malfunction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/21/The_Hawking_Excitation\" debug=\"61378\">The\
|
||||
\ Big Bang Theory - 05x21 - The Hawking Excitation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/22/The_Stag_Convergence\" debug=\"61967\">The\
|
||||
\ Big Bang Theory - 05x22 - The Stag Convergence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/23/The_Launch_Acceleration\" debug=\"62208\">The\
|
||||
\ Big Bang Theory - 05x23 - The Launch Acceleration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/24/The_Countdown_Reflection\" debug=\"62389\"\
|
||||
>The Big Bang Theory - 05x24 - The Countdown Reflection</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/1/The_Date_Night_Variable\" debug=\"67050\">The\
|
||||
\ Big Bang Theory - 06x01 - The Date Night Variable</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/2/The_Decoupling_Fluctuation\" debug=\"67274\"\
|
||||
>The Big Bang Theory - 06x02 - The Decoupling Fluctuation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/3/The_Higgs_Boson_Observation\" debug=\"67718\"\
|
||||
>The Big Bang Theory - 06x03 - The Higgs Boson Observation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/4/The_Re_Entry_Minimization\" debug=\"67942\"\
|
||||
>The Big Bang Theory - 06x04 - The Re Entry Minimization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/5/The_Holographic_Excitation\" debug=\"68166\"\
|
||||
>The Big Bang Theory - 06x05 - The Holographic Excitation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/6/The_Extract_Obliteration\" debug=\"68409\">The\
|
||||
\ Big Bang Theory - 06x06 - The Extract Obliteration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/7/The_Habitation_Configuration\" debug=\"68645\"\
|
||||
>The Big Bang Theory - 06x07 - The Habitation Configuration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/8/The_43_Peculiarity\" debug=\"68891\">The Big\
|
||||
\ Bang Theory - 06x08 - The 43 Peculiarity</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/9/The_Parking_Spot_Escalation\"\
|
||||
\ debug=\"69291\">The Big Bang Theory - 06x09 - The Parking Spot Escalation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/10/The_Fish_Guts_Displacement\" debug=\"69486\"\
|
||||
>The Big Bang Theory - 06x10 - The Fish Guts Displacement</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/11/The_Santa_Simulation\" debug=\"69725\">The\
|
||||
\ Big Bang Theory - 06x11 - The Santa Simulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/12/The_Egg_Salad_Equivalency\" debug=\"70156\"\
|
||||
>The Big Bang Theory - 06x12 - The Egg Salad Equivalency</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/13/The_Bakersfield_Expedition\" debug=\"70438\"\
|
||||
>The Big Bang Theory - 06x13 - The Bakersfield Expedition</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/14/The_Cooper_Kripke_Inversion\" debug=\"71175\"\
|
||||
>The Big Bang Theory - 06x14 - The Cooper Kripke Inversion</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/15/The_Spoiler_Alert_Segmentation\" debug=\"71445\"\
|
||||
>The Big Bang Theory - 06x15 - The Spoiler Alert Segmentation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/16/The_Tangible_Affection_Proof\" debug=\"71783\"\
|
||||
>The Big Bang Theory - 06x16 - The Tangible Affection Proof</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/17/The_Monster_Isolation\" debug=\"72089\">The\
|
||||
\ Big Bang Theory - 06x17 - The Monster Isolation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/18/The_Contractual_Obligation_Implementation\"\
|
||||
\ debug=\"72726\">The Big Bang Theory - 06x18 - The Contractual Obligation\
|
||||
\ Implementation</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/The_Big_Bang_Theory/6/19/The_Closet_Reconfiguration\"\
|
||||
\ debug=\"73084\">The Big Bang Theory - 06x19 - The Closet Reconfiguration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/20/The_Tenure_Turbulence\" debug=\"73969\">The\
|
||||
\ Big Bang Theory - 06x20 - The Tenure Turbulence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/21/The_Closure_Alternative\" debug=\"74818\">The\
|
||||
\ Big Bang Theory - 06x21 - The Closure Alternative</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/22/The_Proton_Resurgence\" debug=\"75066\">The\
|
||||
\ Big Bang Theory - 06x22 - The Proton Resurgence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/23/The_Love_Spell_Potential\" debug=\"75335\"\
|
||||
>The Big Bang Theory - 06x23 - The Love Spell Potential</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/24/The_Bon_Voyage_Reaction\" debug=\"75567\">The\
|
||||
\ Big Bang Theory - 06x24 - The Bon Voyage Reaction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/1/The_Hofstadter_Insufficiency\" debug=\"79523\"\
|
||||
>The Big Bang Theory - 07x01 - The Hofstadter Insufficiency</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/2/The_Deception_Verification\" debug=\"79524\"\
|
||||
>The Big Bang Theory - 07x02 - The Deception Verification</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/3/The_Scavenger_Vortex\" debug=\"79722\">The Big\
|
||||
\ Bang Theory - 07x03 - The Scavenger Vortex</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/4/The_Raiders_Minimization\" debug=\"80031\">The\
|
||||
\ Big Bang Theory - 07x04 - The Raiders Minimization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/5/The_Workplace_Proximity\" debug=\"80254\">The\
|
||||
\ Big Bang Theory - 07x05 - The Workplace Proximity</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/6/The_Romance_Resonance\" debug=\"80518\">The\
|
||||
\ Big Bang Theory - 07x06 - The Romance Resonance</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/7/The_Proton_Displacement\" debug=\"81067\">The\
|
||||
\ Big Bang Theory - 07x07 - The Proton Displacement</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/8/The_Itchy_Brain_Simulation\" debug=\"81272\"\
|
||||
>The Big Bang Theory - 07x08 - The Itchy Brain Simulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/9/The_Thanksgiving_Decoupling\" debug=\"81525\"\
|
||||
>The Big Bang Theory - 07x09 - The Thanksgiving Decoupling</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/10/The_Discovery_Dissipation\" debug=\"82096\"\
|
||||
>The Big Bang Theory - 07x10 - The Discovery Dissipation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/11/The_Cooper_Extraction\" debug=\"82274\">The\
|
||||
\ Big Bang Theory - 07x11 - The Cooper Extraction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/12/The_Hesitation_Ramification\" debug=\"82674\"\
|
||||
>The Big Bang Theory - 07x12 - The Hesitation Ramification</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/13/The_Occupation_Recalibration\" debug=\"82916\"\
|
||||
>The Big Bang Theory - 07x13 - The Occupation Recalibration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/14/The_Convention_Conundrum\" debug=\"83752\"\
|
||||
>The Big Bang Theory - 07x14 - The Convention Conundrum</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/15/The_Locomotive_Manipulation\" debug=\"83978\"\
|
||||
>The Big Bang Theory - 07x15 - The Locomotive Manipulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/16/The_Table_Polarization\" debug=\"84736\">The\
|
||||
\ Big Bang Theory - 07x16 - The Table Polarization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/17/The_Friendship_Turbulence\" debug=\"85106\"\
|
||||
>The Big Bang Theory - 07x17 - The Friendship Turbulence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/18/The_Mommy_Observation\" debug=\"85542\">The\
|
||||
\ Big Bang Theory - 07x18 - The Mommy Observation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/19/The_Indecision_Amalgamation\" debug=\"86494\"\
|
||||
>The Big Bang Theory - 07x19 - The Indecision Amalgamation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/20/The_Relationship_Diremption\" debug=\"86744\"\
|
||||
>The Big Bang Theory - 07x20 - The Relationship Diremption</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/21/The_Anything_Can_Happen_Recurrence\" debug=\"\
|
||||
87403\">The Big Bang Theory - 07x21 - The Anything Can Happen Recurrence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/22/The_Proton_Transmogrification\" debug=\"87725\"\
|
||||
>The Big Bang Theory - 07x22 - The Proton Transmogrification</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/23/The_Gorilla_Dissolution\" debug=\"87935\">The\
|
||||
\ Big Bang Theory - 07x23 - The Gorilla Dissolution</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/24/The_Status_Quo_Combustion\" debug=\"88184\"\
|
||||
>The Big Bang Theory - 07x24 - The Status Quo Combustion</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/1/The_Locomotion_Interruption\" debug=\"92140\"\
|
||||
>The Big Bang Theory - 08x01 - The Locomotion Interruption</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/2/The_Junior_Professor_Solution\" debug=\"92142\"\
|
||||
>The Big Bang Theory - 08x02 - The Junior Professor Solution</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/3/The_First_Pitch_Insufficiency\" debug=\"92307\"\
|
||||
>The Big Bang Theory - 08x03 - The First Pitch Insufficiency</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/4/The_Hook-up_Reverberation\" debug=\"92545\"\
|
||||
>The Big Bang Theory - 08x04 - The Hook-up Reverberation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/5/The_Focus_Attenuation\" debug=\"92757\">The\
|
||||
\ Big Bang Theory - 08x05 - The Focus Attenuation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/6/The_Expedition_Approximation\" debug=\"93043\"\
|
||||
>The Big Bang Theory - 08x06 - The Expedition Approximation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/7/The_Misinterpretation_Agitation\" debug=\"93361\"\
|
||||
>The Big Bang Theory - 08x07 - The Misinterpretation Agitation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/8/The_Prom_Equivalency\" debug=\"93612\">The Big\
|
||||
\ Bang Theory - 08x08 - The Prom Equivalency</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/9/The_Septum_Deviation\" debug=\"93873\">The Big\
|
||||
\ Bang Theory - 08x09 - The Septum Deviation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/10/The_Champagne_Reflection\" debug=\"94116\"\
|
||||
>The Big Bang Theory - 08x10 - The Champagne Reflection</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/11/The_Clean_Room_Infiltration\" debug=\"94911\"\
|
||||
>The Big Bang Theory - 08x11 - The Clean Room Infiltration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/12/The_Space_Probe_Disintegration\" debug=\"95594\"\
|
||||
>The Big Bang Theory - 08x12 - The Space Probe Disintegration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/13/The_Anxiety_Optimization\" debug=\"96388\"\
|
||||
>The Big Bang Theory - 08x13 - The Anxiety Optimization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/14/The_Troll_Manifestation\" debug=\"96654\">The\
|
||||
\ Big Bang Theory - 08x14 - The Troll Manifestation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/15/The_Comic_Book_Store_Regeneration\" debug=\"\
|
||||
97289\">The Big Bang Theory - 08x15 - The Comic Book Store Regeneration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/16/The_Intimacy_Acceleration\" debug=\"97610\"\
|
||||
>The Big Bang Theory - 08x16 - The Intimacy Acceleration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/17/The_Colonization_Application\" debug=\"97863\"\
|
||||
>The Big Bang Theory - 08x17 - The Colonization Application</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/18/The_Leftover_Thermalization\" debug=\"98196\"\
|
||||
>The Big Bang Theory - 08x18 - The Leftover Thermalization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/19/The_Skywalker_Incursion\" debug=\"99011\">The\
|
||||
\ Big Bang Theory - 08x19 - The Skywalker Incursion</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/20/The_Fortification_Implementation\" debug=\"\
|
||||
99310\">The Big Bang Theory - 08x20 - The Fortification Implementation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/21/The_Communication_Deterioration\" debug=\"\
|
||||
99595\">The Big Bang Theory - 08x21 - The Communication Deterioration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/22/The_Graduation_Transmission\" debug=\"99816\"\
|
||||
>The Big Bang Theory - 08x22 - The Graduation Transmission</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/23/The_Maternal_Combustion\" debug=\"100083\"\
|
||||
>The Big Bang Theory - 08x23 - The Maternal Combustion</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/24/The_Commitment_Determination\" debug=\"100419\"\
|
||||
>The Big Bang Theory - 08x24 - The Commitment Determination</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/9/1/The_Matrimonial_Momentum\" debug=\"104184\"\
|
||||
>The Big Bang Theory - 09x01 - The Matrimonial Momentum</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/9/2/The_Separation_Oscillation\" debug=\"104383\"\
|
||||
>The Big Bang Theory - 09x02 - The Separation Oscillation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/9/3/The_Bachelor_Party_Corrosion\" debug=\"104631\"\
|
||||
>The Big Bang Theory - 09x03 - The Bachelor Party Corrosion</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/9/4/The_2003_Approximation\" debug=\"104867\">The\
|
||||
\ Big Bang Theory - 09x04 - The 2003 Approximation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/9/5/The_Perspiration_Implementation\" debug=\"105116\"\
|
||||
>The Big Bang Theory - 09x05 - The Perspiration Implementation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/9/6/The_Helium_Insufficiency\" debug=\"105378\"\
|
||||
>The Big Bang Theory - 09x06 - The Helium Insufficiency</a></td></tr><tr><p>\n\
|
||||
<p>\n</table>\n</td>\n <td></td>\n </tr>\n \
|
||||
\ <tr> <!-- table footer -->\n \t<td class=\"tablecorner\"\
|
||||
><img src=\"http://www.addic7ed.com/images/bl.gif\" /></td>\n \
|
||||
\ <td></td>\n <td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/br.gif\"\
|
||||
\ /></td>\n </tr>\n </table>\n </div>\n<!-- AdskeeperComposite\
|
||||
\ Start -->\n<div id=\"AdskeeperScriptRootC23244\">\n <div id=\"AdskeeperPreloadC23244\"\
|
||||
>\n <a id=\"mg_add23244\" href=\"\" target=\"_blank\">Place your\
|
||||
\ ad here</a><br> <a href=\"http://adskeeper.co.uk/\" target=\"_blank\"\
|
||||
>Loading...</a> \n </div>\n <script>\n\
|
||||
\ window.MGWidgetTitle23244 = \"Promoted\
|
||||
\ Content\"; (function(){\n \
|
||||
\ var D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n\
|
||||
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"\
|
||||
AdskeeperScriptRootC23244\")[ac](i);try{var iw=i.contentWindow.document;iw.open();iw.writeln(\"\
|
||||
<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var c=iw[b];}\n\
|
||||
\ catch(e){var\
|
||||
\ iw=d;var c=d[gi](\"AdskeeperScriptRootC23244\");}var dv=iw[ce]('div');dv.id=\"\
|
||||
MG_ID\";dv[st][ds]=n;dv.innerHTML=23244;c[ac](dv);\n \
|
||||
\ var s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"\
|
||||
//jsc.adskeeper.co.uk/a/d/addic7ed.com.23244.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n\
|
||||
\ \
|
||||
\ </script>\n \
|
||||
\ </div>\n \
|
||||
\ <!-- AdskeeperComposite\
|
||||
\ End -->\n\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td class=\"\
|
||||
NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"\
|
||||
\ \" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"\
|
||||
20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Popular\
|
||||
\ Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"\
|
||||
\ alt=\" \" />Useful</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"\
|
||||
20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Forums</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse By Shows</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/4906\">12 Monkeys</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV Shows Schedule</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\"\
|
||||
>Site Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/movie-subtitles\">Browse By Movies</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\"\
|
||||
>Frequently Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support\
|
||||
\ Us</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/top-uploaders\"\
|
||||
>Top Uploaders</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/620\"\
|
||||
>Modern Family</a></div></td>\n<td><div id=\"footermenu\">RSS Feeds</div></td>\n\
|
||||
<td><div id=\"footermenu\">Premium Accounts</div></td>\n</tr>\n<tr>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top Downloads</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td\
|
||||
\ class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"\
|
||||
\ \"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\"\
|
||||
>Video Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/log.php?mode=news\">All News</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"/show/450\">Parks and Recreation</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\"\
|
||||
>How to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently\
|
||||
\ Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"http://www.sub-talk.net\">Sub-Talk Forums</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/show/1277\">Shameless (US)</a></div></td>\n\
|
||||
<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows Talk</a></div></td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest\
|
||||
\ Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\"\
|
||||
>The Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation\
|
||||
\ Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\"\
|
||||
>Movies Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"\
|
||||
http://www.vreaubagaj.ro/troler/\" title=\"Trolere ieftine\" alt=\"Trolere\
|
||||
\ ieftine\">Trolere ieftine</a></div></td>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/show/130\">Family Guy</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
>Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img width=\"\
|
||||
20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"\
|
||||
TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \"\
|
||||
\ />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\"\
|
||||
>How to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\"\
|
||||
\ title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n\
|
||||
</center>\n\n<script type=\"text/javascript\">\nvar gaJsHost = ((\"https:\"\
|
||||
\ == document.location.protocol) ? \"https://ssl.\" : \"http://www.\");\n\
|
||||
document.write(unescape(\"%3Cscript src='\" + gaJsHost + \"google-analytics.com/ga.js'\
|
||||
\ type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script type=\"\
|
||||
text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\"\
|
||||
);\npageTracker._trackPageview();\n} catch(err) {}</script>\n\n\n<script type=\"\
|
||||
text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n\
|
||||
\ \
|
||||
\ \n</body></html>\n"}
|
||||
headers:
|
||||
cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
connection: [keep-alive]
|
||||
content-type: [text/html]
|
||||
date: ['Thu, 29 Oct 2015 22:04:22 GMT']
|
||||
expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
pragma: [no-cache]
|
||||
server: [nginx]
|
||||
set-cookie: [PHPSESSID=p7bm6d4g2rvp61s48cmpmgvup7; path=/]
|
||||
x-powered-by: [PHP/5.3.3]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,190 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/1.1]
|
||||
method: GET
|
||||
uri: http://www.addic7ed.com/search.php?search=The+Big+How+I+Met+Your+Mother&Submit=Search
|
||||
response:
|
||||
body: {string: !!python/unicode "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0\
|
||||
\ Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"\
|
||||
>\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"\
|
||||
Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>\nSearch \"\
|
||||
The Big How I Met Your Mother\" Subtitle Download - Addic7ed.com - For all\
|
||||
\ those TV Series Addic7s: Subtitles, Tv Series and Movies Talk, Forum and\
|
||||
\ more -</title>\n<link href=\"http://www.addic7ed.com/css/wikisubtitles.css\"\
|
||||
\ rel=\"stylesheet\" title=\"default\" type=\"text/css\" />\n<link rel=\"\
|
||||
SHORTCUT ICON\" href=\"favicon.ico\" /> \n<script type=\"text/javascript\"\
|
||||
\ src=\"http://www.addic7ed.com/js/mootools.v1.11.js\"></script>\n\n</head>\n\
|
||||
<body>\n<center><br />\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a\
|
||||
\ href=\"/\"><img height=\"200\" width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\"\
|
||||
\ border=\"0\" title=\"Addic7ed.com - Quality Subtitles for TV Shows and\
|
||||
\ movies\" alt=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\"\
|
||||
\ /></a></td>\n</tr>\n<tr><td align=\"center\" colspan=\"2\">\n<h1><small>Download\
|
||||
\ free subtitles for TV Shows and Movies.</small> \n<select name=\"\
|
||||
applang\" class=\"inputCool\" onchange=\"changeAppLang();\" id=\"comboLang\"\
|
||||
><option value=\"ar\">Arabic</option><option value=\"ca\">Catala</option><option\
|
||||
\ selected=\"selected\" value=\"en\">English</option><option value=\"eu\"\
|
||||
>Euskera</option><option value=\"fr\">French</option><option value=\"ga\"\
|
||||
>Galician</option><option value=\"de\">German</option><option value=\"gr\"\
|
||||
>Greek</option><option value=\"hu\">Hungarian</option><option value=\"it\"\
|
||||
>Italian</option><option value=\"fa\">Persian</option><option value=\"pl\"\
|
||||
>Polish</option><option value=\"pt\">Portuguese</option><option value=\"br\"\
|
||||
>Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option\
|
||||
\ value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option\
|
||||
\ value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"\
|
||||
center\" colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\
|
||||
\t\t\t </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"\
|
||||
medium\"></g:plusone>\n <a href=\"http://twitter.com/addic7ed\" target=\"\
|
||||
_blank\"><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\"\
|
||||
\ alt=\"Twitter\" border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"\
|
||||
><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"\
|
||||
\ alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\"\
|
||||
>\n\n </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=tahoma&height=21&appId=121322186712\"\
|
||||
\ scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden;\
|
||||
\ width:80px; height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n\
|
||||
\ </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if lt IE 7]>\n <style type=\"\
|
||||
text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)\
|
||||
\ }\n </style>\n<![endif]-->\n<br />\n<center>\n<!-- MarketGidComposite Start\
|
||||
\ -->\n<div id=\"MarketGidScriptRootC13385\">\n <div id=\"MarketGidPreloadC13385\"\
|
||||
>\n <a id=\"mg_add13385\" href=\"http://mgid.com/advertisers/?utm_source=widget&utm_medium=text&utm_campaign=add\"\
|
||||
\ target=\"_blank\">Place your ad here</a><br> <a href=\"http://mgid.com/\"\
|
||||
\ target=\"_blank\">Loading...</a> \n </div>\n \
|
||||
\ <script>\n window.MGWidgetTitle13385\
|
||||
\ = \"Promoted Content\"; (function(){\n \
|
||||
\ var D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n\
|
||||
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"\
|
||||
MarketGidScriptRootC13385\")[ac](i);try{var iw=i.contentWindow.document;iw.open();iw.writeln(\"\
|
||||
<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var c=iw[b];}\n\
|
||||
\ catch(e){var\
|
||||
\ iw=d;var c=d[gi](\"MarketGidScriptRootC13385\");}var dv=iw[ce]('div');dv.id=\"\
|
||||
MG_ID\";dv[st][ds]=n;dv.innerHTML=13385;c[ac](dv);\n \
|
||||
\ var s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"\
|
||||
//jsc.mgid.com/a/d/addic7ed.com.13385.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n\
|
||||
\ \
|
||||
\ </script>\n \
|
||||
\ </div>\n \
|
||||
\ <!-- MarketGidComposite\
|
||||
\ End -->\n\n<script data-cfasync=false src=\"//s.ato.mx/p.js#id=7869&type=popunder&cap=1:24\"\
|
||||
></script>\n</center><br />\n\n<div id=\"container\"> \n \t<table class=\"\
|
||||
tabel70\" border=\"0\">\n \t<tr> <!-- table header -->\n \
|
||||
\ \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/tl.gif\"\
|
||||
\ /></td>\n <td></td>\n <td class=\"tablecorner\"\
|
||||
><img src=\"http://www.addic7ed.com/images/tr.gif\" /></td>\n </tr>\n\
|
||||
\ <tr>\n \t<td></td>\n <td>\n<form action=\"\
|
||||
/search.php\" method=\"get\">\n<div align=\"center\">\n<input name=\"search\"\
|
||||
\ type=\"text\" id=\"search\" size=\"50\" value=\"The Big How I Met Your Mother\"\
|
||||
\ class=\"inputCool\"/> \n <input name=\"Submit\" type=\"submit\" class=\"\
|
||||
coolBoton\" value=\"Search\" /></form><br />\n\n<b>1 results found</b> </div><br\
|
||||
\ />\n\n<br />\n\t<center>\n\n</center>\n<br />\n\n<table class=\"tabel\"\
|
||||
\ align=\"center\" width=\"80%\" border=\"0\">\n<tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/The_Big_Bang_Theory/3/3/The_Gothowitz_Deviation\"\
|
||||
\ debug=\"21229\">The Big Bang Theory - 03x03 - The Gothowitz Deviation</a></td></tr><tr><p>\n\
|
||||
<p>\n</table>\n</td>\n <td></td>\n </tr>\n \
|
||||
\ <tr> <!-- table footer -->\n \t<td class=\"tablecorner\"\
|
||||
><img src=\"http://www.addic7ed.com/images/bl.gif\" /></td>\n \
|
||||
\ <td></td>\n <td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/br.gif\"\
|
||||
\ /></td>\n </tr>\n </table>\n </div>\n<!-- AdskeeperComposite\
|
||||
\ Start -->\n<div id=\"AdskeeperScriptRootC23244\">\n <div id=\"AdskeeperPreloadC23244\"\
|
||||
>\n <a id=\"mg_add23244\" href=\"\" target=\"_blank\">Place your\
|
||||
\ ad here</a><br> <a href=\"http://adskeeper.co.uk/\" target=\"_blank\"\
|
||||
>Loading...</a> \n </div>\n <script>\n\
|
||||
\ window.MGWidgetTitle23244 = \"Promoted\
|
||||
\ Content\"; (function(){\n \
|
||||
\ var D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n\
|
||||
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"\
|
||||
AdskeeperScriptRootC23244\")[ac](i);try{var iw=i.contentWindow.document;iw.open();iw.writeln(\"\
|
||||
<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var c=iw[b];}\n\
|
||||
\ catch(e){var\
|
||||
\ iw=d;var c=d[gi](\"AdskeeperScriptRootC23244\");}var dv=iw[ce]('div');dv.id=\"\
|
||||
MG_ID\";dv[st][ds]=n;dv.innerHTML=23244;c[ac](dv);\n \
|
||||
\ var s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"\
|
||||
//jsc.adskeeper.co.uk/a/d/addic7ed.com.23244.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n\
|
||||
\ \
|
||||
\ </script>\n \
|
||||
\ </div>\n \
|
||||
\ <!-- AdskeeperComposite\
|
||||
\ End -->\n\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td class=\"\
|
||||
NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"\
|
||||
\ \" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"\
|
||||
20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Popular\
|
||||
\ Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"\
|
||||
\ alt=\" \" />Useful</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"\
|
||||
20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Forums</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse By Shows</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/4906\">12 Monkeys</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV Shows Schedule</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\"\
|
||||
>Site Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/movie-subtitles\">Browse By Movies</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\"\
|
||||
>Frequently Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support\
|
||||
\ Us</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/top-uploaders\"\
|
||||
>Top Uploaders</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/620\"\
|
||||
>Modern Family</a></div></td>\n<td><div id=\"footermenu\">RSS Feeds</div></td>\n\
|
||||
<td><div id=\"footermenu\">Premium Accounts</div></td>\n</tr>\n<tr>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top Downloads</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td\
|
||||
\ class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"\
|
||||
\ \"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\"\
|
||||
>Video Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/log.php?mode=news\">All News</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"/show/450\">Parks and Recreation</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\"\
|
||||
>How to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently\
|
||||
\ Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"http://www.sub-talk.net\">Sub-Talk Forums</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/show/1277\">Shameless (US)</a></div></td>\n\
|
||||
<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows Talk</a></div></td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest\
|
||||
\ Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\"\
|
||||
>The Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation\
|
||||
\ Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\"\
|
||||
>Movies Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"\
|
||||
http://www.vreaubagaj.ro/troler/\" title=\"Trolere ieftine\" alt=\"Trolere\
|
||||
\ ieftine\">Trolere ieftine</a></div></td>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/show/130\">Family Guy</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
>Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img width=\"\
|
||||
20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"\
|
||||
TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \"\
|
||||
\ />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\"\
|
||||
>How to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\"\
|
||||
\ title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n\
|
||||
</center>\n\n<script type=\"text/javascript\">\nvar gaJsHost = ((\"https:\"\
|
||||
\ == document.location.protocol) ? \"https://ssl.\" : \"http://www.\");\n\
|
||||
document.write(unescape(\"%3Cscript src='\" + gaJsHost + \"google-analytics.com/ga.js'\
|
||||
\ type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script type=\"\
|
||||
text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\"\
|
||||
);\npageTracker._trackPageview();\n} catch(err) {}</script>\n\n\n<script type=\"\
|
||||
text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n\
|
||||
\ \
|
||||
\ \n</body></html>\n"}
|
||||
headers:
|
||||
cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
connection: [keep-alive]
|
||||
content-type: [text/html]
|
||||
date: ['Thu, 29 Oct 2015 22:04:25 GMT']
|
||||
expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
pragma: [no-cache]
|
||||
server: [nginx]
|
||||
set-cookie: [PHPSESSID=kbac8sgntls3797q3tv920lit3; path=/]
|
||||
x-powered-by: [PHP/5.3.3]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,771 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/1.1]
|
||||
method: GET
|
||||
uri: http://www.addic7ed.com/search.php?search=The+Big+Bang&Submit=Search
|
||||
response:
|
||||
body: {string: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\
|
||||
\ \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"\
|
||||
http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\"\
|
||||
\ content=\"text/html; charset=utf-8\" />\n<title>\nSearch \"The Big Bang\"\
|
||||
\ Subtitle Download - Addic7ed.com - For all those TV Series Addic7s: Subtitles,\
|
||||
\ Tv Series and Movies Talk, Forum and more -</title>\n<link href=\"http://www.addic7ed.com/css/wikisubtitles.css\"\
|
||||
\ rel=\"stylesheet\" title=\"default\" type=\"text/css\" />\n<link rel=\"\
|
||||
SHORTCUT ICON\" href=\"favicon.ico\" /> \n<script type=\"text/javascript\"\
|
||||
\ src=\"http://www.addic7ed.com/js/mootools.v1.11.js\"></script>\n\n</head>\n\
|
||||
<body>\n<center><br />\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a\
|
||||
\ href=\"/\"><img height=\"200\" width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\"\
|
||||
\ border=\"0\" title=\"Addic7ed.com - Quality Subtitles for TV Shows and\
|
||||
\ movies\" alt=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\"\
|
||||
\ /></a></td>\n</tr>\n<tr><td align=\"center\" colspan=\"2\">\n<h1><small>Download\
|
||||
\ free subtitles for TV Shows and Movies.</small> \n<select name=\"\
|
||||
applang\" class=\"inputCool\" onchange=\"changeAppLang();\" id=\"comboLang\"\
|
||||
><option value=\"ar\">Arabic</option><option value=\"ca\">Catala</option><option\
|
||||
\ selected=\"selected\" value=\"en\">English</option><option value=\"eu\"\
|
||||
>Euskera</option><option value=\"fr\">French</option><option value=\"ga\"\
|
||||
>Galician</option><option value=\"de\">German</option><option value=\"gr\"\
|
||||
>Greek</option><option value=\"hu\">Hungarian</option><option value=\"it\"\
|
||||
>Italian</option><option value=\"fa\">Persian</option><option value=\"pl\"\
|
||||
>Polish</option><option value=\"pt\">Portuguese</option><option value=\"br\"\
|
||||
>Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option\
|
||||
\ value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option\
|
||||
\ value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"\
|
||||
center\" colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\
|
||||
\t\t\t </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"\
|
||||
medium\"></g:plusone>\n <a href=\"http://twitter.com/addic7ed\" target=\"\
|
||||
_blank\"><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\"\
|
||||
\ alt=\"Twitter\" border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"\
|
||||
><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"\
|
||||
\ alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\"\
|
||||
>\n\n </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=tahoma&height=21&appId=121322186712\"\
|
||||
\ scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden;\
|
||||
\ width:80px; height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n\
|
||||
\ </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if lt IE 7]>\n <style type=\"\
|
||||
text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)\
|
||||
\ }\n </style>\n<![endif]-->\n<br />\n<center>\n<!-- MarketGidComposite Start\
|
||||
\ -->\n<div id=\"MarketGidScriptRootC13385\">\n <div id=\"MarketGidPreloadC13385\"\
|
||||
>\n <a id=\"mg_add13385\" href=\"http://mgid.com/advertisers/?utm_source=widget&utm_medium=text&utm_campaign=add\"\
|
||||
\ target=\"_blank\">Place your ad here</a><br> <a href=\"http://mgid.com/\"\
|
||||
\ target=\"_blank\">Loading...</a> \n </div>\n \
|
||||
\ <script>\n window.MGWidgetTitle13385\
|
||||
\ = \"Promoted Content\"; (function(){\n \
|
||||
\ var D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n\
|
||||
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"\
|
||||
MarketGidScriptRootC13385\")[ac](i);try{var iw=i.contentWindow.document;iw.open();iw.writeln(\"\
|
||||
<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var c=iw[b];}\n\
|
||||
\ catch(e){var\
|
||||
\ iw=d;var c=d[gi](\"MarketGidScriptRootC13385\");}var dv=iw[ce]('div');dv.id=\"\
|
||||
MG_ID\";dv[st][ds]=n;dv.innerHTML=13385;c[ac](dv);\n \
|
||||
\ var s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"\
|
||||
//jsc.mgid.com/a/d/addic7ed.com.13385.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n\
|
||||
\ \
|
||||
\ </script>\n \
|
||||
\ </div>\n \
|
||||
\ <!-- MarketGidComposite\
|
||||
\ End -->\n\n<script data-cfasync=false src=\"//s.ato.mx/p.js#id=7869&type=popunder&cap=1:24\"\
|
||||
></script>\n</center><br />\n\n<div id=\"container\"> \n \t<table class=\"\
|
||||
tabel70\" border=\"0\">\n \t<tr> <!-- table header -->\n \
|
||||
\ \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/tl.gif\"\
|
||||
\ /></td>\n <td></td>\n <td class=\"tablecorner\"\
|
||||
><img src=\"http://www.addic7ed.com/images/tr.gif\" /></td>\n </tr>\n\
|
||||
\ <tr>\n \t<td></td>\n <td>\n<form action=\"\
|
||||
/search.php\" method=\"get\">\n<div align=\"center\">\n<input name=\"search\"\
|
||||
\ type=\"text\" id=\"search\" size=\"50\" value=\"The Big Bang\" class=\"\
|
||||
inputCool\"/> \n <input name=\"Submit\" type=\"submit\" class=\"coolBoton\"\
|
||||
\ value=\"Search\" /></form><br />\n\n<b>196 results found</b> </div><br />\n\
|
||||
\n<br />\n\t<center>\n\n</center>\n<br />\n<center> <img src=\"\
|
||||
http://www.addic7ed.com/images/database.png\" /> <span class=\"titulo\">\n\
|
||||
Are you looking for <a href=\"/show/126\" >Show <i>The Big Bang Theory</i></a> ?</span></center><br\
|
||||
\ /><br />\n\n<table class=\"tabel\" align=\"center\" width=\"80%\" border=\"\
|
||||
0\">\n<tr><td><img src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a\
|
||||
\ href=\"serie/The_Big_Bang_Theory/1/0/Unaired_Pilot\" debug=\"27979\">The\
|
||||
\ Big Bang Theory - 01x00 - Unaired Pilot</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/1/Pilot\"\
|
||||
\ debug=\"2354\">The Big Bang Theory - 01x01 - Pilot</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/2/The_big_bran_hypothesis\" debug=\"2420\">The\
|
||||
\ Big Bang Theory - 01x02 - The big bran hypothesis</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/3/The_fuzzy_boots_collorary\" debug=\"2563\">The\
|
||||
\ Big Bang Theory - 01x03 - The fuzzy boots collorary</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/4/The_luminous_fish_effect\" debug=\"2795\">The\
|
||||
\ Big Bang Theory - 01x04 - The luminous fish effect</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/5/The_hamburger_postulate\" debug=\"2937\">The\
|
||||
\ Big Bang Theory - 01x05 - The hamburger postulate</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/6/The_middle_earth_paradigm\" debug=\"3025\">The\
|
||||
\ Big Bang Theory - 01x06 - The middle earth paradigm</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/7/The_dumpling_paradox\" debug=\"3161\">The Big\
|
||||
\ Bang Theory - 01x07 - The dumpling paradox</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/8/The_grasshopper_experiment\" debug=\"3365\"\
|
||||
>The Big Bang Theory - 01x08 - The grasshopper experiment</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/9/The_Cooper_Hofstadter_polarization\" debug=\"\
|
||||
7863\">The Big Bang Theory - 01x09 - The Cooper Hofstadter polarization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/10/The_Loobenfeld_decay\" debug=\"7943\">The Big\
|
||||
\ Bang Theory - 01x10 - The Loobenfeld decay</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/11/The_pancake_batter_anomaly\" debug=\"8069\"\
|
||||
>The Big Bang Theory - 01x11 - The pancake batter anomaly</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/12/The_Jerusalem_duality\" debug=\"8415\">The\
|
||||
\ Big Bang Theory - 01x12 - The Jerusalem duality</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/13/The_Bat_Jar_Conjceture\" debug=\"8561\">The\
|
||||
\ Big Bang Theory - 01x13 - The Bat Jar Conjceture</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/14/The_Nerdvana_Annihilation\" debug=\"8672\"\
|
||||
>The Big Bang Theory - 01x14 - The Nerdvana Annihilation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/15/The_Shiksa_Indeterminacy\" debug=\"8792\">The\
|
||||
\ Big Bang Theory - 01x15 - The Shiksa Indeterminacy</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/16/The_Peanut_Reaction\" debug=\"8979\">The Big\
|
||||
\ Bang Theory - 01x16 - The Peanut Reaction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/1/17/The_Tangerine_Factor\" debug=\"11375\">The\
|
||||
\ Big Bang Theory - 01x17 - The Tangerine Factor</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/1/The_Bad_Fish_Paradigm\" debug=\"9593\">The Big\
|
||||
\ Bang Theory - 02x01 - The Bad Fish Paradigm</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/2/The_Codpiece_Topology\" debug=\"9596\">The Big\
|
||||
\ Bang Theory - 02x02 - The Codpiece Topology</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/3/The_Barbarian_Sublimation\" debug=\"10093\"\
|
||||
>The Big Bang Theory - 02x03 - The Barbarian Sublimation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/4/The_Griffin_Equivalency\" debug=\"10094\">The\
|
||||
\ Big Bang Theory - 02x04 - The Griffin Equivalency</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/5/The_Euclid_Alternative\" debug=\"10095\">The\
|
||||
\ Big Bang Theory - 02x05 - The Euclid Alternative</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/6/The_Cooper-Nowitzki_Theorem\" debug=\"10096\"\
|
||||
>The Big Bang Theory - 02x06 - The Cooper-Nowitzki Theorem</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/7/The_Panty_Pi%C3%B1ata_Polarization\" debug=\"\
|
||||
9600\">The Big Bang Theory - 02x07 - The Panty Pi\xF1ata Polarization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/8/The_Lizard-Spock_Expansion\" debug=\"10099\"\
|
||||
>The Big Bang Theory - 02x08 - The Lizard-Spock Expansion</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/9/The_White_Asparagus_Triangulation\" debug=\"\
|
||||
9602\">The Big Bang Theory - 02x09 - The White Asparagus Triangulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/10/The_Vartabedian_Conundrum\" debug=\"9605\"\
|
||||
>The Big Bang Theory - 02x10 - The Vartabedian Conundrum</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/11/The_Bath_Item_Gift_Hypothesis\" debug=\"9608\"\
|
||||
>The Big Bang Theory - 02x11 - The Bath Item Gift Hypothesis</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/12/The_Killer_Robot_Instability\" debug=\"10100\"\
|
||||
>The Big Bang Theory - 02x12 - The Killer Robot Instability</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/13/The_Friendship_Algorithm\" debug=\"10102\"\
|
||||
>The Big Bang Theory - 02x13 - The Friendship Algorithm</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/14/The_Financial_Permeability\" debug=\"10552\"\
|
||||
>The Big Bang Theory - 02x14 - The Financial Permeability</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/15/The_Maternal_Capacitance\" debug=\"10631\"\
|
||||
>The Big Bang Theory - 02x15 - The Maternal Capacitance</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/16/The_Cushion_Saturation\" debug=\"11144\">The\
|
||||
\ Big Bang Theory - 02x16 - The Cushion Saturation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/17/The_Terminator_Decoupling\" debug=\"11339\"\
|
||||
>The Big Bang Theory - 02x17 - The Terminator Decoupling</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/18/The_Work_Song_Nanocluster\" debug=\"11418\"\
|
||||
>The Big Bang Theory - 02x18 - The Work Song Nanocluster</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/19/The_Dead_Hooker_Juxtaposition\" debug=\"11809\"\
|
||||
>The Big Bang Theory - 02x19 - The Dead Hooker Juxtaposition</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/20/The_Hofstadter_Isotope\" debug=\"11989\">The\
|
||||
\ Big Bang Theory - 02x20 - The Hofstadter Isotope</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/21/The_Vegas_Renormalization\" debug=\"12156\"\
|
||||
>The Big Bang Theory - 02x21 - The Vegas Renormalization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/22/The_Classified_Materials_Turbulence\" debug=\"\
|
||||
12320\">The Big Bang Theory - 02x22 - The Classified Materials Turbulence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/2/23/The_Monopolar_Expedition\" debug=\"12769\"\
|
||||
>The Big Bang Theory - 02x23 - The Monopolar Expedition</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/1/The_Electric_Can_Opener_Fluctuation\" debug=\"\
|
||||
20679\">The Big Bang Theory - 03x01 - The Electric Can Opener Fluctuation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/2/The_Jiminy_Conjecture\" debug=\"20792\">The\
|
||||
\ Big Bang Theory - 03x02 - The Jiminy Conjecture</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/3/The_Gothowitz_Deviation\" debug=\"21229\">The\
|
||||
\ Big Bang Theory - 03x03 - The Gothowitz Deviation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/4/The_Pirate_Solution\" debug=\"21404\">The Big\
|
||||
\ Bang Theory - 03x04 - The Pirate Solution</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/5/The_Creepy_Candy_Coating_Corollary\" debug=\"\
|
||||
22031\">The Big Bang Theory - 03x05 - The Creepy Candy Coating Corollary</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/6/The_Cornhusker_Vortex\" debug=\"22315\">The\
|
||||
\ Big Bang Theory - 03x06 - The Cornhusker Vortex</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/7/The_Guitarist_Amplification\" debug=\"22479\"\
|
||||
>The Big Bang Theory - 03x07 - The Guitarist Amplification</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/8/The_Adhesive_Duck_Deficiency\" debug=\"22733\"\
|
||||
>The Big Bang Theory - 03x08 - The Adhesive Duck Deficiency</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/9/The_Vengeance_Formulation\" debug=\"23240\"\
|
||||
>The Big Bang Theory - 03x09 - The Vengeance Formulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/10/The_Gorilla_Experiment\" debug=\"23507\">The\
|
||||
\ Big Bang Theory - 03x10 - The Gorilla Experiment</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/11/The_Maternal_Congruence\" debug=\"23645\">The\
|
||||
\ Big Bang Theory - 03x11 - The Maternal Congruence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/12/The_Psychic_Vortex\" debug=\"23974\">The Big\
|
||||
\ Bang Theory - 03x12 - The Psychic Vortex</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/13/The_Bozeman_Reaction\"\
|
||||
\ debug=\"24082\">The Big Bang Theory - 03x13 - The Bozeman Reaction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/14/The_Einstein_Approximation\" debug=\"24334\"\
|
||||
>The Big Bang Theory - 03x14 - The Einstein Approximation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/15/The_Large_Hadron_Collision\" debug=\"24335\"\
|
||||
>The Big Bang Theory - 03x15 - The Large Hadron Collision</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/16/The_Excelsior_Acquisition\" debug=\"24337\"\
|
||||
>The Big Bang Theory - 03x16 - The Excelsior Acquisition</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/17/The_Precious_Fragmentation\" debug=\"24352\"\
|
||||
>The Big Bang Theory - 03x17 - The Precious Fragmentation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/18/The_Pants_Alternative\" debug=\"24339\">The\
|
||||
\ Big Bang Theory - 03x18 - The Pants Alternative</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/19/The_Wheaton_Recurrence\" debug=\"25230\">The\
|
||||
\ Big Bang Theory - 03x19 - The Wheaton Recurrence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/20/The_Spaghetti_Catalyst\" debug=\"26996\">The\
|
||||
\ Big Bang Theory - 03x20 - The Spaghetti Catalyst</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/21/The_Plimpton_Stimulation\" debug=\"27303\"\
|
||||
>The Big Bang Theory - 03x21 - The Plimpton Stimulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/22/The_Staircase_Implementation\" debug=\"27531\"\
|
||||
>The Big Bang Theory - 03x22 - The Staircase Implementation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/3/23/The_Lunar_Excitation\" debug=\"27712\">The\
|
||||
\ Big Bang Theory - 03x23 - The Lunar Excitation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/1/The_Robotic_Manipulation\" debug=\"32678\">The\
|
||||
\ Big Bang Theory - 04x01 - The Robotic Manipulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/2/The_Cruciferous_Vegetable_Amplification\" debug=\"\
|
||||
33395\">The Big Bang Theory - 04x02 - The Cruciferous Vegetable Amplification</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/3/The_Zazzy_Substitution\" debug=\"33712\">The\
|
||||
\ Big Bang Theory - 04x03 - The Zazzy Substitution</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/4/The_Hot_Troll_Deviation\" debug=\"33944\">The\
|
||||
\ Big Bang Theory - 04x04 - The Hot Troll Deviation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/5/The_Desperation_Emanation\" debug=\"34325\"\
|
||||
>The Big Bang Theory - 04x05 - The Desperation Emanation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/6/The_Irish_Pub_Formulation\" debug=\"34542\"\
|
||||
>The Big Bang Theory - 04x06 - The Irish Pub Formulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/7/The_Apology_Insufficiency\" debug=\"34799\"\
|
||||
>The Big Bang Theory - 04x07 - The Apology Insufficiency</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/8/The_21_Second_Excitation\" debug=\"35076\">The\
|
||||
\ Big Bang Theory - 04x08 - The 21 Second Excitation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/9/The_Boyfriend_Complexity\" debug=\"35418\">The\
|
||||
\ Big Bang Theory - 04x09 - The Boyfriend Complexity</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/10/The_Alien_Parasite_Hypothesis\" debug=\"36421\"\
|
||||
>The Big Bang Theory - 04x10 - The Alien Parasite Hypothesis</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/11/The_Justice_League_Recombination\" debug=\"\
|
||||
36591\">The Big Bang Theory - 04x11 - The Justice League Recombination</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/12/The_Bus_Pants_Utilization\" debug=\"37789\"\
|
||||
>The Big Bang Theory - 04x12 - The Bus Pants Utilization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/13/The_Love_Car_Displacement\" debug=\"38686\"\
|
||||
>The Big Bang Theory - 04x13 - The Love Car Displacement</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/14/The_Thespian_Catalyst\" debug=\"39279\">The\
|
||||
\ Big Bang Theory - 04x14 - The Thespian Catalyst</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/15/The_Benefactor_Factor\" debug=\"39696\">The\
|
||||
\ Big Bang Theory - 04x15 - The Benefactor Factor</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/16/The_Cohabitation_Formulation\" debug=\"40060\"\
|
||||
>The Big Bang Theory - 04x16 - The Cohabitation Formulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/17/The_Toast_Derivation\" debug=\"40369\">The\
|
||||
\ Big Bang Theory - 04x17 - The Toast Derivation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/17/The_toast_derivation\" debug=\"70619\">The\
|
||||
\ Big Bang Theory - 04x17 - The toast derivation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/18/The_Prestidigitation_Approximation\" debug=\"\
|
||||
41307\">The Big Bang Theory - 04x18 - The Prestidigitation Approximation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/19/The_Zarnecki_Incursion\" debug=\"42144\">The\
|
||||
\ Big Bang Theory - 04x19 - The Zarnecki Incursion</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/20/The_Herb_Garden_Germination\" debug=\"42506\"\
|
||||
>The Big Bang Theory - 04x20 - The Herb Garden Germination</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/21/The_Agreement_Dissection\" debug=\"43453\"\
|
||||
>The Big Bang Theory - 04x21 - The Agreement Dissection</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/22/The_Wildebeest_Implementation\" debug=\"43963\"\
|
||||
>The Big Bang Theory - 04x22 - The Wildebeest Implementation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/23/The_Engagement_Reaction\" debug=\"44298\">The\
|
||||
\ Big Bang Theory - 04x23 - The Engagement Reaction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/24/The_Roommate_Transmogrification\" debug=\"\
|
||||
45211\">The Big Bang Theory - 04x24 - The Roommate Transmogrification</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/4/99/It_All_Started_With_A_Big_Bang\" debug=\"61471\"\
|
||||
>The Big Bang Theory - 04x99 - It All Started With A Big Bang</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/0/Access_All_Areas\" debug=\"61470\">The Big Bang\
|
||||
\ Theory - 05x00 - Access All Areas</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/The_Big_Bang_Theory/5/1/The_Skank_Reflex_Analysis\"\
|
||||
\ debug=\"50098\">The Big Bang Theory - 05x01 - The Skank Reflex Analysis</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/2/The_Infestation_Hypothesis\" debug=\"50100\"\
|
||||
>The Big Bang Theory - 05x02 - The Infestation Hypothesis</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/3/The_Pulled_Groin_Extrapolation\" debug=\"50464\"\
|
||||
>The Big Bang Theory - 05x03 - The Pulled Groin Extrapolation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/4/The_Wiggly_Finger_Catalyst\" debug=\"50787\"\
|
||||
>The Big Bang Theory - 05x04 - The Wiggly Finger Catalyst</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/5/The_Russian_Rocket_Reaction\" debug=\"51286\"\
|
||||
>The Big Bang Theory - 05x05 - The Russian Rocket Reaction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/6/The_Rhinitis_Revelation\" debug=\"52502\">The\
|
||||
\ Big Bang Theory - 05x06 - The Rhinitis Revelation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/7/The_Good_Guy_Fluctuation\" debug=\"53602\">The\
|
||||
\ Big Bang Theory - 05x07 - The Good Guy Fluctuation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/8/The_Isolation_Permutation\" debug=\"54479\"\
|
||||
>The Big Bang Theory - 05x08 - The Isolation Permutation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/9/The_Ornithophobia_Diffusion\" debug=\"54953\"\
|
||||
>The Big Bang Theory - 05x09 - The Ornithophobia Diffusion</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/10/The_Flaming_Spittoon_Acquisition\" debug=\"\
|
||||
55214\">The Big Bang Theory - 05x10 - The Flaming Spittoon Acquisition</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/11/The_Speckerman_Recurrence\" debug=\"56382\"\
|
||||
>The Big Bang Theory - 05x11 - The Speckerman Recurrence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/12/The_Shiny_Trinket_Maneuver\" debug=\"58784\"\
|
||||
>The Big Bang Theory - 05x12 - The Shiny Trinket Maneuver</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/13/The_Recombination_Hypothesis\" debug=\"59003\"\
|
||||
>The Big Bang Theory - 05x13 - The Recombination Hypothesis</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/14/The_Beta_Test_Initiation\" debug=\"59196\"\
|
||||
>The Big Bang Theory - 05x14 - The Beta Test Initiation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/15/The_Friendship_Contraction\" debug=\"59388\"\
|
||||
>The Big Bang Theory - 05x15 - The Friendship Contraction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/16/The_Vacation_Solution\" debug=\"59650\">The\
|
||||
\ Big Bang Theory - 05x16 - The Vacation Solution</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/17/The_Rothman_Disintegration\" debug=\"59867\"\
|
||||
>The Big Bang Theory - 05x17 - The Rothman Disintegration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/18/The_Werewolf_Transformation\" debug=\"60147\"\
|
||||
>The Big Bang Theory - 05x18 - The Werewolf Transformation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/19/The_Weekend_Vortex\" debug=\"60580\">The Big\
|
||||
\ Bang Theory - 05x19 - The Weekend Vortex</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/20/The_Transporter_Malfunction\"\
|
||||
\ debug=\"61153\">The Big Bang Theory - 05x20 - The Transporter Malfunction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/21/The_Hawking_Excitation\" debug=\"61378\">The\
|
||||
\ Big Bang Theory - 05x21 - The Hawking Excitation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/22/The_Stag_Convergence\" debug=\"61967\">The\
|
||||
\ Big Bang Theory - 05x22 - The Stag Convergence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/23/The_Launch_Acceleration\" debug=\"62208\">The\
|
||||
\ Big Bang Theory - 05x23 - The Launch Acceleration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/5/24/The_Countdown_Reflection\" debug=\"62389\"\
|
||||
>The Big Bang Theory - 05x24 - The Countdown Reflection</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/1/The_Date_Night_Variable\" debug=\"67050\">The\
|
||||
\ Big Bang Theory - 06x01 - The Date Night Variable</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/2/The_Decoupling_Fluctuation\" debug=\"67274\"\
|
||||
>The Big Bang Theory - 06x02 - The Decoupling Fluctuation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/3/The_Higgs_Boson_Observation\" debug=\"67718\"\
|
||||
>The Big Bang Theory - 06x03 - The Higgs Boson Observation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/4/The_Re_Entry_Minimization\" debug=\"67942\"\
|
||||
>The Big Bang Theory - 06x04 - The Re Entry Minimization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/5/The_Holographic_Excitation\" debug=\"68166\"\
|
||||
>The Big Bang Theory - 06x05 - The Holographic Excitation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/6/The_Extract_Obliteration\" debug=\"68409\">The\
|
||||
\ Big Bang Theory - 06x06 - The Extract Obliteration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/7/The_Habitation_Configuration\" debug=\"68645\"\
|
||||
>The Big Bang Theory - 06x07 - The Habitation Configuration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/8/The_43_Peculiarity\" debug=\"68891\">The Big\
|
||||
\ Bang Theory - 06x08 - The 43 Peculiarity</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/9/The_Parking_Spot_Escalation\"\
|
||||
\ debug=\"69291\">The Big Bang Theory - 06x09 - The Parking Spot Escalation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/10/The_Fish_Guts_Displacement\" debug=\"69486\"\
|
||||
>The Big Bang Theory - 06x10 - The Fish Guts Displacement</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/11/The_Santa_Simulation\" debug=\"69725\">The\
|
||||
\ Big Bang Theory - 06x11 - The Santa Simulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/12/The_Egg_Salad_Equivalency\" debug=\"70156\"\
|
||||
>The Big Bang Theory - 06x12 - The Egg Salad Equivalency</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/13/The_Bakersfield_Expedition\" debug=\"70438\"\
|
||||
>The Big Bang Theory - 06x13 - The Bakersfield Expedition</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/14/The_Cooper_Kripke_Inversion\" debug=\"71175\"\
|
||||
>The Big Bang Theory - 06x14 - The Cooper Kripke Inversion</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/15/The_Spoiler_Alert_Segmentation\" debug=\"71445\"\
|
||||
>The Big Bang Theory - 06x15 - The Spoiler Alert Segmentation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/16/The_Tangible_Affection_Proof\" debug=\"71783\"\
|
||||
>The Big Bang Theory - 06x16 - The Tangible Affection Proof</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/17/The_Monster_Isolation\" debug=\"72089\">The\
|
||||
\ Big Bang Theory - 06x17 - The Monster Isolation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/18/The_Contractual_Obligation_Implementation\"\
|
||||
\ debug=\"72726\">The Big Bang Theory - 06x18 - The Contractual Obligation\
|
||||
\ Implementation</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/The_Big_Bang_Theory/6/19/The_Closet_Reconfiguration\"\
|
||||
\ debug=\"73084\">The Big Bang Theory - 06x19 - The Closet Reconfiguration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/20/The_Tenure_Turbulence\" debug=\"73969\">The\
|
||||
\ Big Bang Theory - 06x20 - The Tenure Turbulence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/21/The_Closure_Alternative\" debug=\"74818\">The\
|
||||
\ Big Bang Theory - 06x21 - The Closure Alternative</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/22/The_Proton_Resurgence\" debug=\"75066\">The\
|
||||
\ Big Bang Theory - 06x22 - The Proton Resurgence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/23/The_Love_Spell_Potential\" debug=\"75335\"\
|
||||
>The Big Bang Theory - 06x23 - The Love Spell Potential</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/6/24/The_Bon_Voyage_Reaction\" debug=\"75567\">The\
|
||||
\ Big Bang Theory - 06x24 - The Bon Voyage Reaction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/1/The_Hofstadter_Insufficiency\" debug=\"79523\"\
|
||||
>The Big Bang Theory - 07x01 - The Hofstadter Insufficiency</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/2/The_Deception_Verification\" debug=\"79524\"\
|
||||
>The Big Bang Theory - 07x02 - The Deception Verification</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/3/The_Scavenger_Vortex\" debug=\"79722\">The Big\
|
||||
\ Bang Theory - 07x03 - The Scavenger Vortex</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/4/The_Raiders_Minimization\" debug=\"80031\">The\
|
||||
\ Big Bang Theory - 07x04 - The Raiders Minimization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/5/The_Workplace_Proximity\" debug=\"80254\">The\
|
||||
\ Big Bang Theory - 07x05 - The Workplace Proximity</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/6/The_Romance_Resonance\" debug=\"80518\">The\
|
||||
\ Big Bang Theory - 07x06 - The Romance Resonance</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/7/The_Proton_Displacement\" debug=\"81067\">The\
|
||||
\ Big Bang Theory - 07x07 - The Proton Displacement</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/8/The_Itchy_Brain_Simulation\" debug=\"81272\"\
|
||||
>The Big Bang Theory - 07x08 - The Itchy Brain Simulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/9/The_Thanksgiving_Decoupling\" debug=\"81525\"\
|
||||
>The Big Bang Theory - 07x09 - The Thanksgiving Decoupling</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/10/The_Discovery_Dissipation\" debug=\"82096\"\
|
||||
>The Big Bang Theory - 07x10 - The Discovery Dissipation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/11/The_Cooper_Extraction\" debug=\"82274\">The\
|
||||
\ Big Bang Theory - 07x11 - The Cooper Extraction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/12/The_Hesitation_Ramification\" debug=\"82674\"\
|
||||
>The Big Bang Theory - 07x12 - The Hesitation Ramification</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/13/The_Occupation_Recalibration\" debug=\"82916\"\
|
||||
>The Big Bang Theory - 07x13 - The Occupation Recalibration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/14/The_Convention_Conundrum\" debug=\"83752\"\
|
||||
>The Big Bang Theory - 07x14 - The Convention Conundrum</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/15/The_Locomotive_Manipulation\" debug=\"83978\"\
|
||||
>The Big Bang Theory - 07x15 - The Locomotive Manipulation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/16/The_Table_Polarization\" debug=\"84736\">The\
|
||||
\ Big Bang Theory - 07x16 - The Table Polarization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/17/The_Friendship_Turbulence\" debug=\"85106\"\
|
||||
>The Big Bang Theory - 07x17 - The Friendship Turbulence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/18/The_Mommy_Observation\" debug=\"85542\">The\
|
||||
\ Big Bang Theory - 07x18 - The Mommy Observation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/19/The_Indecision_Amalgamation\" debug=\"86494\"\
|
||||
>The Big Bang Theory - 07x19 - The Indecision Amalgamation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/20/The_Relationship_Diremption\" debug=\"86744\"\
|
||||
>The Big Bang Theory - 07x20 - The Relationship Diremption</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/21/The_Anything_Can_Happen_Recurrence\" debug=\"\
|
||||
87403\">The Big Bang Theory - 07x21 - The Anything Can Happen Recurrence</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/22/The_Proton_Transmogrification\" debug=\"87725\"\
|
||||
>The Big Bang Theory - 07x22 - The Proton Transmogrification</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/23/The_Gorilla_Dissolution\" debug=\"87935\">The\
|
||||
\ Big Bang Theory - 07x23 - The Gorilla Dissolution</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/7/24/The_Status_Quo_Combustion\" debug=\"88184\"\
|
||||
>The Big Bang Theory - 07x24 - The Status Quo Combustion</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/1/The_Locomotion_Interruption\" debug=\"92140\"\
|
||||
>The Big Bang Theory - 08x01 - The Locomotion Interruption</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/2/The_Junior_Professor_Solution\" debug=\"92142\"\
|
||||
>The Big Bang Theory - 08x02 - The Junior Professor Solution</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/3/The_First_Pitch_Insufficiency\" debug=\"92307\"\
|
||||
>The Big Bang Theory - 08x03 - The First Pitch Insufficiency</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/4/The_Hook-up_Reverberation\" debug=\"92545\"\
|
||||
>The Big Bang Theory - 08x04 - The Hook-up Reverberation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/5/The_Focus_Attenuation\" debug=\"92757\">The\
|
||||
\ Big Bang Theory - 08x05 - The Focus Attenuation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/6/The_Expedition_Approximation\" debug=\"93043\"\
|
||||
>The Big Bang Theory - 08x06 - The Expedition Approximation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/7/The_Misinterpretation_Agitation\" debug=\"93361\"\
|
||||
>The Big Bang Theory - 08x07 - The Misinterpretation Agitation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/8/The_Prom_Equivalency\" debug=\"93612\">The Big\
|
||||
\ Bang Theory - 08x08 - The Prom Equivalency</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/9/The_Septum_Deviation\" debug=\"93873\">The Big\
|
||||
\ Bang Theory - 08x09 - The Septum Deviation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/10/The_Champagne_Reflection\" debug=\"94116\"\
|
||||
>The Big Bang Theory - 08x10 - The Champagne Reflection</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/11/The_Clean_Room_Infiltration\" debug=\"94911\"\
|
||||
>The Big Bang Theory - 08x11 - The Clean Room Infiltration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/12/The_Space_Probe_Disintegration\" debug=\"95594\"\
|
||||
>The Big Bang Theory - 08x12 - The Space Probe Disintegration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/13/The_Anxiety_Optimization\" debug=\"96388\"\
|
||||
>The Big Bang Theory - 08x13 - The Anxiety Optimization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/14/The_Troll_Manifestation\" debug=\"96654\">The\
|
||||
\ Big Bang Theory - 08x14 - The Troll Manifestation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/15/The_Comic_Book_Store_Regeneration\" debug=\"\
|
||||
97289\">The Big Bang Theory - 08x15 - The Comic Book Store Regeneration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/16/The_Intimacy_Acceleration\" debug=\"97610\"\
|
||||
>The Big Bang Theory - 08x16 - The Intimacy Acceleration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/17/The_Colonization_Application\" debug=\"97863\"\
|
||||
>The Big Bang Theory - 08x17 - The Colonization Application</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/18/The_Leftover_Thermalization\" debug=\"98196\"\
|
||||
>The Big Bang Theory - 08x18 - The Leftover Thermalization</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/19/The_Skywalker_Incursion\" debug=\"99011\">The\
|
||||
\ Big Bang Theory - 08x19 - The Skywalker Incursion</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/20/The_Fortification_Implementation\" debug=\"\
|
||||
99310\">The Big Bang Theory - 08x20 - The Fortification Implementation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/21/The_Communication_Deterioration\" debug=\"\
|
||||
99595\">The Big Bang Theory - 08x21 - The Communication Deterioration</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/22/The_Graduation_Transmission\" debug=\"99816\"\
|
||||
>The Big Bang Theory - 08x22 - The Graduation Transmission</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/23/The_Maternal_Combustion\" debug=\"100083\"\
|
||||
>The Big Bang Theory - 08x23 - The Maternal Combustion</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/8/24/The_Commitment_Determination\" debug=\"100419\"\
|
||||
>The Big Bang Theory - 08x24 - The Commitment Determination</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/9/1/The_Matrimonial_Momentum\" debug=\"104184\"\
|
||||
>The Big Bang Theory - 09x01 - The Matrimonial Momentum</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/9/2/The_Separation_Oscillation\" debug=\"104383\"\
|
||||
>The Big Bang Theory - 09x02 - The Separation Oscillation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/9/3/The_Bachelor_Party_Corrosion\" debug=\"104631\"\
|
||||
>The Big Bang Theory - 09x03 - The Bachelor Party Corrosion</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/9/4/The_2003_Approximation\" debug=\"104867\">The\
|
||||
\ Big Bang Theory - 09x04 - The 2003 Approximation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/9/5/The_Perspiration_Implementation\" debug=\"105116\"\
|
||||
>The Big Bang Theory - 09x05 - The Perspiration Implementation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Big_Bang_Theory/9/6/The_Helium_Insufficiency\" debug=\"105378\"\
|
||||
>The Big Bang Theory - 09x06 - The Helium Insufficiency</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Closer/6/1/The_Big_Bang\" debug=\"28952\">The Closer - 06x01 - The\
|
||||
\ Big Bang</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/The_New_Adventures_of_Old_Christine/3/1/The_big_bang\"\
|
||||
\ debug=\"6773\">The New Adventures of Old Christine - 03x01 - The big bang</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/The_Universe/1/14/Beyond_the_Big_Bang\" debug=\"19618\">The Universe\
|
||||
\ - 01x14 - Beyond the Big Bang</a></td></tr><tr><p>\n<p>\n</table>\n</td>\n\
|
||||
\ <td></td>\n </tr>\n <tr> <!-- table\
|
||||
\ footer -->\n \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/bl.gif\"\
|
||||
\ /></td>\n <td></td>\n <td class=\"tablecorner\"\
|
||||
><img src=\"http://www.addic7ed.com/images/br.gif\" /></td>\n </tr>\n\
|
||||
\ </table>\n </div>\n<!-- AdskeeperComposite Start -->\n<div id=\"\
|
||||
AdskeeperScriptRootC23244\">\n <div id=\"AdskeeperPreloadC23244\">\n \
|
||||
\ <a id=\"mg_add23244\" href=\"\" target=\"_blank\">Place your ad\
|
||||
\ here</a><br> <a href=\"http://adskeeper.co.uk/\" target=\"_blank\"\
|
||||
>Loading...</a> \n </div>\n <script>\n\
|
||||
\ window.MGWidgetTitle23244 = \"Promoted\
|
||||
\ Content\"; (function(){\n \
|
||||
\ var D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n\
|
||||
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"\
|
||||
AdskeeperScriptRootC23244\")[ac](i);try{var iw=i.contentWindow.document;iw.open();iw.writeln(\"\
|
||||
<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var c=iw[b];}\n\
|
||||
\ catch(e){var\
|
||||
\ iw=d;var c=d[gi](\"AdskeeperScriptRootC23244\");}var dv=iw[ce]('div');dv.id=\"\
|
||||
MG_ID\";dv[st][ds]=n;dv.innerHTML=23244;c[ac](dv);\n \
|
||||
\ var s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"\
|
||||
//jsc.adskeeper.co.uk/a/d/addic7ed.com.23244.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n\
|
||||
\ \
|
||||
\ </script>\n \
|
||||
\ </div>\n \
|
||||
\ <!-- AdskeeperComposite\
|
||||
\ End -->\n\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td class=\"\
|
||||
NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"\
|
||||
\ \" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"\
|
||||
20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Popular\
|
||||
\ Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"\
|
||||
\ alt=\" \" />Useful</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"\
|
||||
20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Forums</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse By Shows</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/4906\">12 Monkeys</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV Shows Schedule</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\"\
|
||||
>Site Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/movie-subtitles\">Browse By Movies</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\"\
|
||||
>Frequently Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support\
|
||||
\ Us</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/top-uploaders\"\
|
||||
>Top Uploaders</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/620\"\
|
||||
>Modern Family</a></div></td>\n<td><div id=\"footermenu\">RSS Feeds</div></td>\n\
|
||||
<td><div id=\"footermenu\">Premium Accounts</div></td>\n</tr>\n<tr>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top Downloads</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td\
|
||||
\ class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"\
|
||||
\ \"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\"\
|
||||
>Video Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/log.php?mode=news\">All News</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"/show/450\">Parks and Recreation</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\"\
|
||||
>How to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently\
|
||||
\ Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"http://www.sub-talk.net\">Sub-Talk Forums</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/show/1277\">Shameless (US)</a></div></td>\n\
|
||||
<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows Talk</a></div></td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest\
|
||||
\ Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\"\
|
||||
>The Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation\
|
||||
\ Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\"\
|
||||
>Movies Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"\
|
||||
http://www.vreaubagaj.ro/troler/\" title=\"Trolere ieftine\" alt=\"Trolere\
|
||||
\ ieftine\">Trolere ieftine</a></div></td>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/show/130\">Family Guy</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
>Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img width=\"\
|
||||
20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"\
|
||||
TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \"\
|
||||
\ />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\"\
|
||||
>How to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\"\
|
||||
\ title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n\
|
||||
</center>\n\n<script type=\"text/javascript\">\nvar gaJsHost = ((\"https:\"\
|
||||
\ == document.location.protocol) ? \"https://ssl.\" : \"http://www.\");\n\
|
||||
document.write(unescape(\"%3Cscript src='\" + gaJsHost + \"google-analytics.com/ga.js'\
|
||||
\ type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script type=\"\
|
||||
text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\"\
|
||||
);\npageTracker._trackPageview();\n} catch(err) {}</script>\n\n\n<script type=\"\
|
||||
text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n\
|
||||
\ \
|
||||
\ \n</body></html>\n"}
|
||||
headers:
|
||||
cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
connection: [keep-alive]
|
||||
content-type: [text/html]
|
||||
date: ['Thu, 29 Oct 2015 22:04:23 GMT']
|
||||
expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
pragma: [no-cache]
|
||||
server: [nginx]
|
||||
set-cookie: [PHPSESSID=c4igbqtlgfe65hsh3j7k72ns95; path=/]
|
||||
x-powered-by: [PHP/5.3.3]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,600 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/1.1]
|
||||
method: GET
|
||||
uri: http://www.addic7ed.com/search.php?search=Dallas&Submit=Search
|
||||
response:
|
||||
body: {string: !!python/unicode "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0\
|
||||
\ Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"\
|
||||
>\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"\
|
||||
Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>\nSearch \"\
|
||||
Dallas\" Subtitle Download - Addic7ed.com - For all those TV Series Addic7s:\
|
||||
\ Subtitles, Tv Series and Movies Talk, Forum and more -</title>\n<link href=\"\
|
||||
http://www.addic7ed.com/css/wikisubtitles.css\" rel=\"stylesheet\" title=\"\
|
||||
default\" type=\"text/css\" />\n<link rel=\"SHORTCUT ICON\" href=\"favicon.ico\"\
|
||||
\ /> \n<script type=\"text/javascript\" src=\"http://www.addic7ed.com/js/mootools.v1.11.js\"\
|
||||
></script>\n\n</head>\n<body>\n<center><br />\n<table border=\"0\">\n<tr>\n\
|
||||
\ <td rowspan=\"9\"><a href=\"/\"><img height=\"200\" width=\"350\" src=\"\
|
||||
http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\" title=\"\
|
||||
Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com\
|
||||
\ - Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td\
|
||||
\ align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for\
|
||||
\ TV Shows and Movies.</small> \n<select name=\"applang\" class=\"inputCool\"\
|
||||
\ onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option\
|
||||
\ value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option\
|
||||
\ value=\"eu\">Euskera</option><option value=\"fr\">French</option><option\
|
||||
\ value=\"ga\">Galician</option><option value=\"de\">German</option><option\
|
||||
\ value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option\
|
||||
\ value=\"it\">Italian</option><option value=\"fa\">Persian</option><option\
|
||||
\ value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option\
|
||||
\ value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option\
|
||||
\ value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option\
|
||||
\ value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"\
|
||||
center\" colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\
|
||||
\t\t\t </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"\
|
||||
medium\"></g:plusone>\n <a href=\"http://twitter.com/addic7ed\" target=\"\
|
||||
_blank\"><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\"\
|
||||
\ alt=\"Twitter\" border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"\
|
||||
><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"\
|
||||
\ alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\"\
|
||||
>\n\n </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=tahoma&height=21&appId=121322186712\"\
|
||||
\ scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden;\
|
||||
\ width:80px; height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n\
|
||||
\ </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if lt IE 7]>\n <style type=\"\
|
||||
text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)\
|
||||
\ }\n </style>\n<![endif]-->\n<br />\n<center>\n<!-- MarketGidComposite Start\
|
||||
\ -->\n<div id=\"MarketGidScriptRootC13385\">\n <div id=\"MarketGidPreloadC13385\"\
|
||||
>\n <a id=\"mg_add13385\" href=\"http://mgid.com/advertisers/?utm_source=widget&utm_medium=text&utm_campaign=add\"\
|
||||
\ target=\"_blank\">Place your ad here</a><br> <a href=\"http://mgid.com/\"\
|
||||
\ target=\"_blank\">Loading...</a> \n </div>\n \
|
||||
\ <script>\n window.MGWidgetTitle13385\
|
||||
\ = \"Promoted Content\"; (function(){\n \
|
||||
\ var D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n\
|
||||
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"\
|
||||
MarketGidScriptRootC13385\")[ac](i);try{var iw=i.contentWindow.document;iw.open();iw.writeln(\"\
|
||||
<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var c=iw[b];}\n\
|
||||
\ catch(e){var\
|
||||
\ iw=d;var c=d[gi](\"MarketGidScriptRootC13385\");}var dv=iw[ce]('div');dv.id=\"\
|
||||
MG_ID\";dv[st][ds]=n;dv.innerHTML=13385;c[ac](dv);\n \
|
||||
\ var s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"\
|
||||
//jsc.mgid.com/a/d/addic7ed.com.13385.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n\
|
||||
\ \
|
||||
\ </script>\n \
|
||||
\ </div>\n \
|
||||
\ <!-- MarketGidComposite\
|
||||
\ End -->\n\n<script data-cfasync=false src=\"//s.ato.mx/p.js#id=7869&type=popunder&cap=1:24\"\
|
||||
></script>\n</center><br />\n\n<div id=\"container\"> \n \t<table class=\"\
|
||||
tabel70\" border=\"0\">\n \t<tr> <!-- table header -->\n \
|
||||
\ \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/tl.gif\"\
|
||||
\ /></td>\n <td></td>\n <td class=\"tablecorner\"\
|
||||
><img src=\"http://www.addic7ed.com/images/tr.gif\" /></td>\n </tr>\n\
|
||||
\ <tr>\n \t<td></td>\n <td>\n<form action=\"\
|
||||
/search.php\" method=\"get\">\n<div align=\"center\">\n<input name=\"search\"\
|
||||
\ type=\"text\" id=\"search\" size=\"50\" value=\"Dallas\" class=\"inputCool\"\
|
||||
/> \n <input name=\"Submit\" type=\"submit\" class=\"coolBoton\" value=\"\
|
||||
Search\" /></form><br />\n\n<b>181 results found</b> </div><br />\n\n<br />\n\
|
||||
\t<center>\n\n</center>\n<br />\n<center> <img src=\"http://www.addic7ed.com/images/database.png\"\
|
||||
\ /> <span class=\"titulo\">\nAre you looking for <a href=\"/show/802\" >Show\
|
||||
\ <i>Dallas</i></a> ?</span></center><br /><br />\n\n<table class=\"\
|
||||
tabel\" align=\"center\" width=\"80%\" border=\"0\">\n<tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/1/1/Digger%27s_Daughter\"\
|
||||
\ debug=\"31856\">Dallas - 01x01 - Digger's Daughter</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/1/2/Lessons\" debug=\"31855\">Dallas - 01x02 - Lessons</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/1/3/Spy_in_the_House\" debug=\"31854\">Dallas - 01x03 - Spy in\
|
||||
\ the House</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/1/4/Winds_of_Vengeance\" debug=\"31853\"\
|
||||
>Dallas - 01x04 - Winds of Vengeance</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/1/5/Barbecue\"\
|
||||
\ debug=\"31852\">Dallas - 01x05 - Barbecue</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/2/1/Reunion__%281%29\" debug=\"31906\">Dallas - 02x01 - Reunion\
|
||||
\ (1)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/2/Reunion__%282%29\" debug=\"31905\"\
|
||||
>Dallas - 02x02 - Reunion (2)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/3/Old_Acquaintance\" debug=\"31904\"\
|
||||
>Dallas - 02x03 - Old Acquaintance</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/4/Bypass\" debug=\"31903\">Dallas -\
|
||||
\ 02x04 - Bypass</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/5/Black_Market_Baby\" debug=\"31901\"\
|
||||
>Dallas - 02x05 - Black Market Baby</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/6/Double_Wedding\" debug=\"31900\">Dallas\
|
||||
\ - 02x06 - Double Wedding</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/7/Runaway\" debug=\"31899\">Dallas -\
|
||||
\ 02x07 - Runaway</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/8/Election\" debug=\"31898\">Dallas\
|
||||
\ - 02x08 - Election</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/9/Survival\" debug=\"31897\">Dallas\
|
||||
\ - 02x09 - Survival</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/10/Act_of_Love\" debug=\"31896\">Dallas\
|
||||
\ - 02x10 - Act of Love</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/11/Triangle\" debug=\"31895\">Dallas\
|
||||
\ - 02x11 - Triangle</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/12/Fallen_Idol\" debug=\"31894\">Dallas\
|
||||
\ - 02x12 - Fallen Idol</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/13/Kidnapped\" debug=\"31893\">Dallas\
|
||||
\ - 02x13 - Kidnapped</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/14/Home_Again\" debug=\"31892\">Dallas\
|
||||
\ - 02x14 - Home Again</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/15/For_Love_or_Money\" debug=\"31891\"\
|
||||
>Dallas - 02x15 - For Love or Money</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/16/Julie%27s_Return\" debug=\"31890\"\
|
||||
>Dallas - 02x16 - Julie's Return</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/17/The_Red_File__%281%29\" debug=\"\
|
||||
31889\">Dallas - 02x17 - The Red File (1)</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/2/18/The_Red_File__%282%29\"\
|
||||
\ debug=\"31888\">Dallas - 02x18 - The Red File (2)</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/2/19/Sue_Ellen%27s_Sister\" debug=\"31887\">Dallas - 02x19 -\
|
||||
\ Sue Ellen's Sister</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/20/Call_Girl\" debug=\"31886\">Dallas\
|
||||
\ - 02x20 - Call Girl</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/21/Royal_Marriage\" debug=\"31885\"\
|
||||
>Dallas - 02x21 - Royal Marriage</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/22/The_Outsiders\" debug=\"31884\">Dallas\
|
||||
\ - 02x22 - The Outsiders</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/2/23/John_Ewing_III__%281%29\" debug=\"\
|
||||
31883\">Dallas - 02x23 - John Ewing III (1)</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/2/24/John_Ewing_III_%282%29\" debug=\"31882\">Dallas - 02x24\
|
||||
\ - John Ewing III (2)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/3/1/Whatever_Happened_to_Baby_John%3F__%281%29\"\
|
||||
\ debug=\"31858\">Dallas - 03x01 - Whatever Happened to Baby John? (1)</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/3/2/Whatever_Happened_to_Baby_John%3F__%282%29\" debug=\"31857\"\
|
||||
>Dallas - 03x02 - Whatever Happened to Baby John? (2)</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/3/3/The_Silent_Killer\" debug=\"31881\">Dallas - 03x03 - The\
|
||||
\ Silent Killer</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/3/4/Secrets\" debug=\"31880\">Dallas -\
|
||||
\ 03x04 - Secrets</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/3/5/The_Kristin_Affair\" debug=\"31879\"\
|
||||
>Dallas - 03x05 - The Kristin Affair</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/3/6/The_Dove_Hunt\"\
|
||||
\ debug=\"31878\">Dallas - 03x06 - The Dove Hunt</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/3/7/The_Lost_Child\" debug=\"31877\">Dallas - 03x07 - The Lost\
|
||||
\ Child</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/3/8/Rodeo\" debug=\"31876\">Dallas - 03x08\
|
||||
\ - Rodeo</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/3/9/Mastectomy__%281%29\" debug=\"31875\"\
|
||||
>Dallas - 03x09 - Mastectomy (1)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/3/10/Mastectomy__%282%29\" debug=\"31874\"\
|
||||
>Dallas - 03x10 - Mastectomy (2)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/3/11/The_Heiress\" debug=\"31873\">Dallas\
|
||||
\ - 03x11 - The Heiress</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/3/12/Ellie_Saves_the_Day\" debug=\"31872\"\
|
||||
>Dallas - 03x12 - Ellie Saves the Day</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/3/13/Mother_of_the_Year\"\
|
||||
\ debug=\"31871\">Dallas - 03x13 - Mother of the Year</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/3/14/Return_Engagements\" debug=\"31870\">Dallas - 03x14 - Return\
|
||||
\ Engagements</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/3/15/Love_and_Marriage\" debug=\"31869\"\
|
||||
>Dallas - 03x15 - Love and Marriage</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/3/16/Power_Play\" debug=\"31868\">Dallas\
|
||||
\ - 03x16 - Power Play</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/3/17/Paternity_Suit\" debug=\"31867\"\
|
||||
>Dallas - 03x17 - Paternity Suit</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/3/18/Jenna%27s_Return\" debug=\"31866\"\
|
||||
>Dallas - 03x18 - Jenna's Return</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/3/19/Sue_Ellen%27s_Choice\" debug=\"31865\"\
|
||||
>Dallas - 03x19 - Sue Ellen's Choice</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/3/20/Second_Thoughts\"\
|
||||
\ debug=\"31864\">Dallas - 03x20 - Second Thoughts</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/3/21/Divorce___Ewing_Style\" debug=\"31863\">Dallas - 03x21 -\
|
||||
\ Divorce Ewing Style</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/3/22/Jock%27s_Trial__%281%29\" debug=\"\
|
||||
31862\">Dallas - 03x22 - Jock's Trial (1)</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/3/23/Jock%27s_Trial__%282%29\"\
|
||||
\ debug=\"31861\">Dallas - 03x23 - Jock's Trial (2)</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/3/24/The_Wheeler_Dealer\" debug=\"31860\">Dallas - 03x24 - The\
|
||||
\ Wheeler Dealer</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/3/25/A_House_Divided\" debug=\"31859\"\
|
||||
>Dallas - 03x25 - A House Divided</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/8/1/Killer_at_Large\" debug=\"69652\"\
|
||||
>Dallas - 08x01 - Killer at Large</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/9/1/The_Family_Ewing\" debug=\"31937\"\
|
||||
>Dallas - 09x01 - The Family Ewing</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/9/2/Rock_Bottom\" debug=\"31936\">Dallas\
|
||||
\ - 09x02 - Rock Bottom</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/9/3/Those_Eyes\" debug=\"31935\">Dallas\
|
||||
\ - 09x03 - Those Eyes</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/9/4/Resurrection\" debug=\"31934\">Dallas\
|
||||
\ - 09x04 - Resurrection</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/9/5/Saving_Grace\" debug=\"31933\">Dallas\
|
||||
\ - 09x05 - Saving Grace</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/9/6/Mothers\" debug=\"31932\">Dallas -\
|
||||
\ 09x06 - Mothers</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/9/7/The_Wind_of_Change\" debug=\"31931\"\
|
||||
>Dallas - 09x07 - The Wind of Change</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/9/8/Quandary\"\
|
||||
\ debug=\"31930\">Dallas - 09x08 - Quandary</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/9/9/Close_Encounters\" debug=\"31929\">Dallas - 09x09 - Close\
|
||||
\ Encounters</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/9/10/Suffer_the_Little_Children\" debug=\"\
|
||||
31928\">Dallas - 09x10 - Suffer the Little Children</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/9/11/The_Prize\" debug=\"31927\">Dallas - 09x11 - The Prize</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/9/12/En_Passant\" debug=\"31926\">Dallas - 09x12 - En Passant</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/9/13/Goodbye%2C_Farewell%2C_and_Amen\" debug=\"31925\">Dallas\
|
||||
\ - 09x13 - Goodbye, Farewell, and Amen</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/9/14/Curiosity_Killed_the_Cat\"\
|
||||
\ debug=\"31924\">Dallas - 09x14 - Curiosity Killed the Cat</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/9/15/The_Missing_Link\" debug=\"31923\">Dallas - 09x15 - The\
|
||||
\ Missing Link</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/9/16/Twenty_Four_Hours\" debug=\"31922\"\
|
||||
>Dallas - 09x16 - Twenty Four Hours</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/9/17/The_Deadly_Game\" debug=\"31921\"\
|
||||
>Dallas - 09x17 - The Deadly Game</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/9/18/Blame_it_on_Bogota\" debug=\"31920\"\
|
||||
>Dallas - 09x18 - Blame it on Bogota</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/9/19/Shadow_Games\"\
|
||||
\ debug=\"31919\">Dallas - 09x19 - Shadow Games</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/9/20/Missing\" debug=\"31918\">Dallas - 09x20 - Missing</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/9/21/Dire_Straits\" debug=\"31917\">Dallas - 09x21 - Dire Straits</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/9/22/Overture\" debug=\"31916\">Dallas - 09x22 - Overture</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/9/23/Sitting_Ducks\" debug=\"31915\">Dallas - 09x23 - Sitting\
|
||||
\ Ducks</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/9/24/Masquerade\" debug=\"31914\">Dallas\
|
||||
\ - 09x24 - Masquerade</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/9/25/Just_Desserts\" debug=\"31913\">Dallas\
|
||||
\ - 09x25 - Just Desserts</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/9/26/Nothing%27s_Ever_Perfect\" debug=\"\
|
||||
31912\">Dallas - 09x26 - Nothing's Ever Perfect</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/9/27/J.R._Rising\" debug=\"31911\">Dallas - 09x27 - J.R. Rising</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/9/28/Serendipity\" debug=\"31910\">Dallas - 09x28 - Serendipity</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/9/29/Thrice_in_a_Lifetime\" debug=\"31909\">Dallas - 09x29 -\
|
||||
\ Thrice in a Lifetime</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/9/30/Hello%2C_Goodbye%2C_Hello\" debug=\"\
|
||||
31908\">Dallas - 09x30 - Hello, Goodbye, Hello</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/9/31/Blast_From_the_Past\" debug=\"31907\">Dallas - 09x31 - Blast\
|
||||
\ From the Past</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/12/1/Carousel\" debug=\"25485\">Dallas\
|
||||
\ - 12x01 - Carousel</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/12/2/No_Greater_Love\" debug=\"25486\"\
|
||||
>Dallas - 12x02 - No Greater Love</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/12/3/The_Call_of_the_Wild\" debug=\"25487\"\
|
||||
>Dallas - 12x03 - The Call of the Wild</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/12/4/Out_of_the_Frying_Pan\"\
|
||||
\ debug=\"25488\">Dallas - 12x04 - Out of the Frying Pan</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/12/5/Road_Work\" debug=\"25489\">Dallas - 12x05 - Road Work</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/12/6/War_and_Love_and_the_Whole_Damned_Thing\" debug=\"25490\"\
|
||||
>Dallas - 12x06 - War and Love and the Whole Damned Thing</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/12/7/Showdown_at_the_Ewing_Corral\" debug=\"25491\">Dallas -\
|
||||
\ 12x07 - Showdown at the Ewing Corral</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/12/8/Deception\"\
|
||||
\ debug=\"25492\">Dallas - 12x08 - Deception</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/12/9/Counter_Attack\" debug=\"25493\">Dallas - 12x09 - Counter\
|
||||
\ Attack</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/12/10/The_Sting\" debug=\"25494\">Dallas\
|
||||
\ - 12x10 - The Sting</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/12/11/The_Two_Mrs._Ewings\" debug=\"25495\"\
|
||||
>Dallas - 12x11 - The Two Mrs. Ewings</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/12/12/The_Switch\"\
|
||||
\ debug=\"25496\">Dallas - 12x12 - The Switch</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/12/13/Here%27s_Papa%21\" debug=\"25497\">Dallas - 12x13 - Here's\
|
||||
\ Papa!</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/12/14/Comings_and_Goings\" debug=\"25498\"\
|
||||
>Dallas - 12x14 - Comings and Goings</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/12/15/Country_Girl\"\
|
||||
\ debug=\"25499\">Dallas - 12x15 - Country Girl</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/12/16/Wedding_Bell_Blues\" debug=\"25500\">Dallas - 12x16 - Wedding\
|
||||
\ Bell Blues</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/12/17/The_Way_We_Were\" debug=\"25501\"\
|
||||
>Dallas - 12x17 - The Way We Were</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/12/18/The_Serpent%27s_Tooth\" debug=\"\
|
||||
25502\">Dallas - 12x18 - The Serpent's Tooth</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/12/19/Three_Hundred\" debug=\"25503\">Dallas - 12x19 - Three\
|
||||
\ Hundred</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/12/20/April_Showers\" debug=\"25504\"\
|
||||
>Dallas - 12x20 - April Showers</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/12/21/And_Away_We_Go%21\" debug=\"25505\"\
|
||||
>Dallas - 12x21 - And Away We Go!</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/12/22/Yellow_Brick_Road\" debug=\"25506\"\
|
||||
>Dallas - 12x22 - Yellow Brick Road</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/12/23/The_Sound_of_Money\" debug=\"25507\"\
|
||||
>Dallas - 12x23 - The Sound of Money</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/12/24/The_Great_Texas_Waltz\"\
|
||||
\ debug=\"25508\">Dallas - 12x24 - The Great Texas Waltz</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/12/25/Mission_to_Moscow\" debug=\"25510\">Dallas - 12x25 - Mission\
|
||||
\ to Moscow</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/12/26/Reel_Life\" debug=\"25511\">Dallas\
|
||||
\ - 12x26 - Reel Life</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/13/1/Phantom_of_the_Oil_Rig\" debug=\"\
|
||||
26320\">Dallas - 13x01 - Phantom of the Oil Rig</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/13/2/The_Leopard%27s_Spots\" debug=\"26321\">Dallas - 13x02 -\
|
||||
\ The Leopard's Spots</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/13/3/Cry_Me_a_River_of_Oil\" debug=\"\
|
||||
26322\">Dallas - 13x03 - Cry Me a River of Oil</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/13/4/Ka-Booooom%21\" debug=\"26323\">Dallas - 13x04 - Ka-Booooom!</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/13/5/Sunrise%2C_Sunset\" debug=\"26324\">Dallas - 13x05 - Sunrise,\
|
||||
\ Sunset</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/13/6/Pride_and_Prejudice\" debug=\"26325\"\
|
||||
>Dallas - 13x06 - Pride and Prejudice</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/13/7/Fathers_and_Other_Strangers\"\
|
||||
\ debug=\"26326\">Dallas - 13x07 - Fathers and Other Strangers</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/13/8/Black_Tide\" debug=\"26327\">Dallas - 13x08 - Black Tide</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/13/9/Daddy_Dearest\" debug=\"26328\">Dallas - 13x09 - Daddy Dearest</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/13/10/Hell%27s_Fury\" debug=\"26329\">Dallas - 13x10 - Hell's\
|
||||
\ Fury</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/13/11/Cally_on_a_Hot_Tin_Roof\" debug=\"\
|
||||
26330\">Dallas - 13x11 - Cally on a Hot Tin Roof</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/13/12/Sex%2C_Lies_and_Videotape\" debug=\"26331\">Dallas - 13x12\
|
||||
\ - Sex, Lies and Videotape</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/13/13/Tale_of_Two_Cities\" debug=\"26332\"\
|
||||
>Dallas - 13x13 - Tale of Two Cities</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/13/14/Judgment_Day\"\
|
||||
\ debug=\"26333\">Dallas - 13x14 - Judgment Day</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/13/15/Unchain_My_Heart\" debug=\"26334\">Dallas - 13x15 - Unchain\
|
||||
\ My Heart</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/13/16/I_Dream_of_Jeannie\" debug=\"26335\"\
|
||||
>Dallas - 13x16 - I Dream of Jeannie</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/13/17/After_Midnight\"\
|
||||
\ debug=\"26336\">Dallas - 13x17 - After Midnight</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/13/18/The_Crucible\" debug=\"26337\">Dallas - 13x18 - The Crucible</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/13/19/Dear_Hearts_and_Gentle_People\" debug=\"26338\">Dallas\
|
||||
\ - 13x19 - Dear Hearts and Gentle People</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/13/20/Paradise_Lost\"\
|
||||
\ debug=\"26339\">Dallas - 13x20 - Paradise Lost</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/13/21/Will_Power\" debug=\"26340\">Dallas - 13x21 - Will Power</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/13/22/The_Smiling_Cobra\" debug=\"26341\">Dallas - 13x22 - The\
|
||||
\ Smiling Cobra</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/13/23/Jessica_Redux\" debug=\"26346\"\
|
||||
>Dallas - 13x23 - Jessica Redux</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/13/24/Family_Plot\" debug=\"26342\">Dallas\
|
||||
\ - 13x24 - Family Plot</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/13/25/The_Southfork_Wedding_Jinx\" debug=\"\
|
||||
26343\">Dallas - 13x25 - The Southfork Wedding Jinx</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas/13/26/Three%2C_Three%2C_Three_%281%29\" debug=\"26344\">Dallas\
|
||||
\ - 13x26 - Three, Three, Three (1)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas/13/27/Three%2C_Three%2C_Three_%282%29\"\
|
||||
\ debug=\"26345\">Dallas - 13x27 - Three, Three, Three (2)</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/film.png\" /></td><td><a href=\"movie/88544\"\
|
||||
\ debug=\"88544\">Dallas (1950)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/1/1/Changing_of_the_Guard\"\
|
||||
\ debug=\"63362\">Dallas (2012) - 01x01 - Changing of the Guard</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/1/2/Hedging_Your_Bets\" debug=\"63364\">Dallas (2012)\
|
||||
\ - 01x02 - Hedging Your Bets</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/1/3/The_Price_You_Pay\" debug=\"\
|
||||
63827\">Dallas (2012) - 01x03 - The Price You Pay</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/1/4/The_Last_Hurrah\" debug=\"63994\">Dallas (2012)\
|
||||
\ - 01x04 - The Last Hurrah</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/1/5/Truth_and_consequences\"\
|
||||
\ debug=\"64210\">Dallas (2012) - 01x05 - Truth and consequences</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/1/6/The_Enemy_of_My_Enemy\" debug=\"64512\">Dallas\
|
||||
\ (2012) - 01x06 - The Enemy of My Enemy</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/7/Collateral_Damage\"\
|
||||
\ debug=\"64686\">Dallas (2012) - 01x07 - Collateral Damage</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/1/8/No_Good_Deed\" debug=\"64933\">Dallas (2012) -\
|
||||
\ 01x08 - No Good Deed</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/1/9/Family_Business\" debug=\"\
|
||||
65100\">Dallas (2012) - 01x09 - Family Business</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/1/10/Revelations\" debug=\"65276\">Dallas (2012) -\
|
||||
\ 01x10 - Revelations</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/2/1/Battle_Lines\" debug=\"\
|
||||
71069\">Dallas (2012) - 02x01 - Battle Lines</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/2/2/Venomous_Creatures\" debug=\"71070\">Dallas (2012)\
|
||||
\ - 02x02 - Venomous Creatures</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/2/3/Sins_of_the_Father\" debug=\"\
|
||||
71358\">Dallas (2012) - 02x03 - Sins of the Father</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/2/4/False_Confessions\" debug=\"71644\">Dallas (2012)\
|
||||
\ - 02x04 - False Confessions</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/2/5/Trial_and_Error\" debug=\"\
|
||||
71949\">Dallas (2012) - 02x05 - Trial and Error</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/2/6/Blame_Game\" debug=\"72265\">Dallas (2012) - 02x06\
|
||||
\ - Blame Game</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/2/7/The_Furious_and_the_Fast\"\
|
||||
\ debug=\"72625\">Dallas (2012) - 02x07 - The Furious and the Fast</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/2/8/J.R.%27s_Masterpiece\" debug=\"72969\">Dallas\
|
||||
\ (2012) - 02x08 - J.R.'s Masterpiece</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/9/Ewings_Unite%21\"\
|
||||
\ debug=\"73242\">Dallas (2012) - 02x09 - Ewings Unite!</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/2/10/Guilt_And_Innocence\" debug=\"73578\">Dallas\
|
||||
\ (2012) - 02x10 - Guilt And Innocence</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/11/Let_Me_In\"\
|
||||
\ debug=\"73846\">Dallas (2012) - 02x11 - Let Me In</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/2/12/A_Call_to_Arms\" debug=\"74098\">Dallas (2012)\
|
||||
\ - 02x12 - A Call to Arms</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/2/13/Love_%40_Family\" debug=\"\
|
||||
74099\">Dallas (2012) - 02x13 - Love & Family</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/2/14/Guilt_By_Association\" debug=\"74342\">Dallas\
|
||||
\ (2012) - 02x14 - Guilt By Association</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/15/Legacies\"\
|
||||
\ debug=\"74347\">Dallas (2012) - 02x15 - Legacies</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/3/1/The_Return\" debug=\"84652\">Dallas (2012) - 03x01\
|
||||
\ - The Return</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/2/Trust_Me\" debug=\"84941\"\
|
||||
>Dallas (2012) - 03x02 - Trust Me</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/3/Playing_Chicken\" debug=\"\
|
||||
85388\">Dallas (2012) - 03x03 - Playing Chicken</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/3/4/Lifting_the_Veil\" debug=\"85735\">Dallas (2012)\
|
||||
\ - 03x04 - Lifting the Veil</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/5/D.T.R.\" debug=\"86033\"\
|
||||
>Dallas (2012) - 03x05 - D.T.R.</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/6/Like_Father%2C_Like_Son\"\
|
||||
\ debug=\"86406\">Dallas (2012) - 03x06 - Like Father, Like Son</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/3/7/Like_a_Bad_Penny\" debug=\"86664\">Dallas (2012)\
|
||||
\ - 03x07 - Like a Bad Penny</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/8/Where_There%27s_Smoke\"\
|
||||
\ debug=\"86948\">Dallas (2012) - 03x08 - Where There's Smoke</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/3/9/Denial%2C_Anger%2C_Acceptance\" debug=\"91222\"\
|
||||
>Dallas (2012) - 03x09 - Denial, Anger, Acceptance</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/3/10/Dead_Reckoning\" debug=\"91469\">Dallas (2012)\
|
||||
\ - 03x10 - Dead Reckoning</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/11/Hurt\" debug=\"91634\"\
|
||||
>Dallas (2012) - 03x11 - Hurt</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/12/Victims_of_Love\" debug=\"\
|
||||
91837\">Dallas (2012) - 03x12 - Victims of Love</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/3/13/Boxed_In\" debug=\"91959\">Dallas (2012) - 03x13\
|
||||
\ - Boxed In</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/14/Endgame\" debug=\"92148\"\
|
||||
>Dallas (2012) - 03x14 - Endgame</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/15/Brave_New_World\" debug=\"\
|
||||
92160\">Dallas (2012) - 03x15 - Brave New World</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/film.png\" /></td><td><a href=\"movie/82717\"\
|
||||
\ debug=\"82717\">Dallas Buyers Club (2013)</a></td></tr><tr><p>\n<p>\n</table>\n\
|
||||
</td>\n <td></td>\n </tr>\n <tr> <!--\
|
||||
\ table footer -->\n \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/bl.gif\"\
|
||||
\ /></td>\n <td></td>\n <td class=\"tablecorner\"\
|
||||
><img src=\"http://www.addic7ed.com/images/br.gif\" /></td>\n </tr>\n\
|
||||
\ </table>\n </div>\n<!-- AdskeeperComposite Start -->\n<div id=\"\
|
||||
AdskeeperScriptRootC23244\">\n <div id=\"AdskeeperPreloadC23244\">\n \
|
||||
\ <a id=\"mg_add23244\" href=\"\" target=\"_blank\">Place your ad\
|
||||
\ here</a><br> <a href=\"http://adskeeper.co.uk/\" target=\"_blank\"\
|
||||
>Loading...</a> \n </div>\n <script>\n\
|
||||
\ window.MGWidgetTitle23244 = \"Promoted\
|
||||
\ Content\"; (function(){\n \
|
||||
\ var D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n\
|
||||
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"\
|
||||
AdskeeperScriptRootC23244\")[ac](i);try{var iw=i.contentWindow.document;iw.open();iw.writeln(\"\
|
||||
<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var c=iw[b];}\n\
|
||||
\ catch(e){var\
|
||||
\ iw=d;var c=d[gi](\"AdskeeperScriptRootC23244\");}var dv=iw[ce]('div');dv.id=\"\
|
||||
MG_ID\";dv[st][ds]=n;dv.innerHTML=23244;c[ac](dv);\n \
|
||||
\ var s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"\
|
||||
//jsc.adskeeper.co.uk/a/d/addic7ed.com.23244.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n\
|
||||
\ \
|
||||
\ </script>\n \
|
||||
\ </div>\n \
|
||||
\ <!-- AdskeeperComposite\
|
||||
\ End -->\n\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td class=\"\
|
||||
NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"\
|
||||
\ \" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"\
|
||||
20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Popular\
|
||||
\ Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"\
|
||||
\ alt=\" \" />Useful</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"\
|
||||
20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Forums</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse By Shows</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/4906\">12 Monkeys</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV Shows Schedule</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\"\
|
||||
>Site Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/movie-subtitles\">Browse By Movies</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\"\
|
||||
>Frequently Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support\
|
||||
\ Us</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/top-uploaders\"\
|
||||
>Top Uploaders</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/620\"\
|
||||
>Modern Family</a></div></td>\n<td><div id=\"footermenu\">RSS Feeds</div></td>\n\
|
||||
<td><div id=\"footermenu\">Premium Accounts</div></td>\n</tr>\n<tr>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top Downloads</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td\
|
||||
\ class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"\
|
||||
\ \"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\"\
|
||||
>Video Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/log.php?mode=news\">All News</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"/show/450\">Parks and Recreation</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\"\
|
||||
>How to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently\
|
||||
\ Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"http://www.sub-talk.net\">Sub-Talk Forums</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/show/1277\">Shameless (US)</a></div></td>\n\
|
||||
<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows Talk</a></div></td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest\
|
||||
\ Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\"\
|
||||
>The Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation\
|
||||
\ Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\"\
|
||||
>Movies Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"\
|
||||
http://www.vreaubagaj.ro/troler/\" title=\"Trolere ieftine\" alt=\"Trolere\
|
||||
\ ieftine\">Trolere ieftine</a></div></td>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/show/130\">Family Guy</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
>Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img width=\"\
|
||||
20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"\
|
||||
TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \"\
|
||||
\ />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\"\
|
||||
>How to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\"\
|
||||
\ title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n\
|
||||
</center>\n\n<script type=\"text/javascript\">\nvar gaJsHost = ((\"https:\"\
|
||||
\ == document.location.protocol) ? \"https://ssl.\" : \"http://www.\");\n\
|
||||
document.write(unescape(\"%3Cscript src='\" + gaJsHost + \"google-analytics.com/ga.js'\
|
||||
\ type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script type=\"\
|
||||
text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\"\
|
||||
);\npageTracker._trackPageview();\n} catch(err) {}</script>\n\n\n<script type=\"\
|
||||
text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n\
|
||||
\ \
|
||||
\ \n</body></html>\n"}
|
||||
headers:
|
||||
cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
connection: [keep-alive]
|
||||
content-type: [text/html]
|
||||
date: ['Thu, 29 Oct 2015 22:04:23 GMT']
|
||||
expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
pragma: [no-cache]
|
||||
server: [nginx]
|
||||
set-cookie: [PHPSESSID=sejdbmcf4iiv1ikc9pmv4nma52; path=/]
|
||||
x-powered-by: [PHP/5.3.3]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,704 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/1.1]
|
||||
method: GET
|
||||
uri: http://www.addic7ed.com/search.php?search=Grey+s+Anatomy&Submit=Search
|
||||
response:
|
||||
body: {string: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\
|
||||
\ \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"\
|
||||
http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\"\
|
||||
\ content=\"text/html; charset=utf-8\" />\n<title>\nSearch \"Grey s Anatomy\"\
|
||||
\ Subtitle Download - Addic7ed.com - For all those TV Series Addic7s: Subtitles,\
|
||||
\ Tv Series and Movies Talk, Forum and more -</title>\n<link href=\"http://www.addic7ed.com/css/wikisubtitles.css\"\
|
||||
\ rel=\"stylesheet\" title=\"default\" type=\"text/css\" />\n<link rel=\"\
|
||||
SHORTCUT ICON\" href=\"favicon.ico\" /> \n<script type=\"text/javascript\"\
|
||||
\ src=\"http://www.addic7ed.com/js/mootools.v1.11.js\"></script>\n\n</head>\n\
|
||||
<body>\n<center><br />\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a\
|
||||
\ href=\"/\"><img height=\"200\" width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\"\
|
||||
\ border=\"0\" title=\"Addic7ed.com - Quality Subtitles for TV Shows and\
|
||||
\ movies\" alt=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\"\
|
||||
\ /></a></td>\n</tr>\n<tr><td align=\"center\" colspan=\"2\">\n<h1><small>Download\
|
||||
\ free subtitles for TV Shows and Movies.</small> \n<select name=\"\
|
||||
applang\" class=\"inputCool\" onchange=\"changeAppLang();\" id=\"comboLang\"\
|
||||
><option value=\"ar\">Arabic</option><option value=\"ca\">Catala</option><option\
|
||||
\ selected=\"selected\" value=\"en\">English</option><option value=\"eu\"\
|
||||
>Euskera</option><option value=\"fr\">French</option><option value=\"ga\"\
|
||||
>Galician</option><option value=\"de\">German</option><option value=\"gr\"\
|
||||
>Greek</option><option value=\"hu\">Hungarian</option><option value=\"it\"\
|
||||
>Italian</option><option value=\"fa\">Persian</option><option value=\"pl\"\
|
||||
>Polish</option><option value=\"pt\">Portuguese</option><option value=\"br\"\
|
||||
>Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option\
|
||||
\ value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option\
|
||||
\ value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"\
|
||||
center\" colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\
|
||||
\t\t\t </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"\
|
||||
medium\"></g:plusone>\n <a href=\"http://twitter.com/addic7ed\" target=\"\
|
||||
_blank\"><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\"\
|
||||
\ alt=\"Twitter\" border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"\
|
||||
><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"\
|
||||
\ alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\"\
|
||||
>\n\n </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=tahoma&height=21&appId=121322186712\"\
|
||||
\ scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden;\
|
||||
\ width:80px; height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n\
|
||||
\ </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if lt IE 7]>\n <style type=\"\
|
||||
text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)\
|
||||
\ }\n </style>\n<![endif]-->\n<br />\n<center>\n<!-- MarketGidComposite Start\
|
||||
\ -->\n<div id=\"MarketGidScriptRootC13385\">\n <div id=\"MarketGidPreloadC13385\"\
|
||||
>\n <a id=\"mg_add13385\" href=\"http://mgid.com/advertisers/?utm_source=widget&utm_medium=text&utm_campaign=add\"\
|
||||
\ target=\"_blank\">Place your ad here</a><br> <a href=\"http://mgid.com/\"\
|
||||
\ target=\"_blank\">Loading...</a> \n </div>\n \
|
||||
\ <script>\n window.MGWidgetTitle13385\
|
||||
\ = \"Promoted Content\"; (function(){\n \
|
||||
\ var D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n\
|
||||
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"\
|
||||
MarketGidScriptRootC13385\")[ac](i);try{var iw=i.contentWindow.document;iw.open();iw.writeln(\"\
|
||||
<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var c=iw[b];}\n\
|
||||
\ catch(e){var\
|
||||
\ iw=d;var c=d[gi](\"MarketGidScriptRootC13385\");}var dv=iw[ce]('div');dv.id=\"\
|
||||
MG_ID\";dv[st][ds]=n;dv.innerHTML=13385;c[ac](dv);\n \
|
||||
\ var s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"\
|
||||
//jsc.mgid.com/a/d/addic7ed.com.13385.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n\
|
||||
\ \
|
||||
\ </script>\n \
|
||||
\ </div>\n \
|
||||
\ <!-- MarketGidComposite\
|
||||
\ End -->\n\n<script data-cfasync=false src=\"//s.ato.mx/p.js#id=7869&type=popunder&cap=1:24\"\
|
||||
></script>\n</center><br />\n\n<div id=\"container\"> \n \t<table class=\"\
|
||||
tabel70\" border=\"0\">\n \t<tr> <!-- table header -->\n \
|
||||
\ \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/tl.gif\"\
|
||||
\ /></td>\n <td></td>\n <td class=\"tablecorner\"\
|
||||
><img src=\"http://www.addic7ed.com/images/tr.gif\" /></td>\n </tr>\n\
|
||||
\ <tr>\n \t<td></td>\n <td>\n<form action=\"\
|
||||
/search.php\" method=\"get\">\n<div align=\"center\">\n<input name=\"search\"\
|
||||
\ type=\"text\" id=\"search\" size=\"50\" value=\"Grey s Anatomy\" class=\"\
|
||||
inputCool\"/> \n <input name=\"Submit\" type=\"submit\" class=\"coolBoton\"\
|
||||
\ value=\"Search\" /></form><br />\n\n<b>Over <b><b>200 results found</b>\
|
||||
\ </div><br />\n\n<br />\n\t<center>\n\n</center>\n<br />\n<center> <img\
|
||||
\ src=\"http://www.addic7ed.com/images/database.png\" /> <span class=\"titulo\"\
|
||||
>\nAre you looking for <a href=\"/show/30\" >Show <i>Grey's Anatomy</i></a> ?</span></center><br\
|
||||
\ /><br />\n\n<table class=\"tabel\" align=\"center\" width=\"80%\" border=\"\
|
||||
0\">\n<tr><td><img src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a\
|
||||
\ href=\"serie/Grey%27s_Anatomy/1/2/The_first_cut_is_the_deepest\" debug=\"\
|
||||
3319\">Grey's Anatomy - 01x02 - The first cut is the deepest</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/1/3/Winning_a_battle_losing_the_war\" debug=\"3320\"\
|
||||
>Grey's Anatomy - 01x03 - Winning a battle losing the war</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/1/4/No_man%27s_land\" debug=\"3322\">Grey's Anatomy\
|
||||
\ - 01x04 - No man's land</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/1/5/Shake_your_groove_thing\"\
|
||||
\ debug=\"3323\">Grey's Anatomy - 01x05 - Shake your groove thing</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/1/6/If_tomorrow_never_comes\" debug=\"3324\">Grey's\
|
||||
\ Anatomy - 01x06 - If tomorrow never comes</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/1/7/The_self_destruction_button\" debug=\"3325\">Grey's\
|
||||
\ Anatomy - 01x07 - The self destruction button</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/1/8/Save_me\" debug=\"3326\">Grey's Anatomy - 01x08\
|
||||
\ - Save me</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/1/9/Who%27s_zoomin%27_who\"\
|
||||
\ debug=\"3329\">Grey's Anatomy - 01x09 - Who's zoomin' who</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/2/1/Raindrops_keep_falling_on_my_head\" debug=\"3274\"\
|
||||
>Grey's Anatomy - 02x01 - Raindrops keep falling on my head</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/2/2/Enough_is_enough_%28no_more_tears%29\" debug=\"\
|
||||
3275\">Grey's Anatomy - 02x02 - Enough is enough (no more tears)</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/2/3/Make_me_lose_control\" debug=\"3276\">Grey's Anatomy\
|
||||
\ - 02x03 - Make me lose control</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/2/4/Deny%2C_deny%2C_deny\" debug=\"\
|
||||
3277\">Grey's Anatomy - 02x04 - Deny, deny, deny</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/2/5/Bring_the_pain\" debug=\"3278\">Grey's Anatomy\
|
||||
\ - 02x05 - Bring the pain</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/2/6/Into_you_like_a_train\"\
|
||||
\ debug=\"3279\">Grey's Anatomy - 02x06 - Into you like a train</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/2/7/Something_to_talk_about\" debug=\"3281\">Grey's\
|
||||
\ Anatomy - 02x07 - Something to talk about</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/2/8/Let_it_be\" debug=\"3282\">Grey's Anatomy - 02x08\
|
||||
\ - Let it be</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/2/9/Thanks_for_the_memories\"\
|
||||
\ debug=\"3283\">Grey's Anatomy - 02x09 - Thanks for the memories</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/2/10/Much_too_much\" debug=\"3284\">Grey's Anatomy\
|
||||
\ - 02x10 - Much too much</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/2/11/Owner_of_a_lonely_heart\"\
|
||||
\ debug=\"3285\">Grey's Anatomy - 02x11 - Owner of a lonely heart</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/2/12/Grandma_got_run_over_by_a_reindeer\" debug=\"\
|
||||
3286\">Grey's Anatomy - 02x12 - Grandma got run over by a reindeer</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/2/13/Begin_the_begin\" debug=\"3287\">Grey's Anatomy\
|
||||
\ - 02x13 - Begin the begin</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/2/14/Tell_me_sweet_little_lies\"\
|
||||
\ debug=\"3288\">Grey's Anatomy - 02x14 - Tell me sweet little lies</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/2/15/Break_on_through\" debug=\"3289\">Grey's Anatomy\
|
||||
\ - 02x15 - Break on through</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/2/16/It%27s_the_end_of_the_world\"\
|
||||
\ debug=\"3290\">Grey's Anatomy - 02x16 - It's the end of the world</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/2/17/As_we_know_it\" debug=\"3291\">Grey's Anatomy\
|
||||
\ - 02x17 - As we know it</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/2/18/Yesterday\" debug=\"3292\"\
|
||||
>Grey's Anatomy - 02x18 - Yesterday</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/2/19/What_have_I_done_to_deserve_this%3F\"\
|
||||
\ debug=\"3293\">Grey's Anatomy - 02x19 - What have I done to deserve this?</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/2/21/Superstition\" debug=\"3295\">Grey's Anatomy -\
|
||||
\ 02x21 - Superstition</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/2/22/The_name_of_the_game\"\
|
||||
\ debug=\"3296\">Grey's Anatomy - 02x22 - The name of the game</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/2/23/Blues_for_sister_someone\" debug=\"3297\">Grey's\
|
||||
\ Anatomy - 02x23 - Blues for sister someone</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/2/24/Damage_case\" debug=\"3298\">Grey's Anatomy -\
|
||||
\ 02x24 - Damage case</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/2/25/17_seconds\" debug=\"3300\"\
|
||||
>Grey's Anatomy - 02x25 - 17 seconds</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Grey%27s_Anatomy/2/26/Deterioration_of_the_fight_or_flight_response\"\
|
||||
\ debug=\"3301\">Grey's Anatomy - 02x26 - Deterioration of the fight or flight\
|
||||
\ response</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/2/27/Losing_my_religion\" debug=\"\
|
||||
3302\">Grey's Anatomy - 02x27 - Losing my religion</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/3/1/Time_has_come_today\" debug=\"397\">Grey's Anatomy\
|
||||
\ - 03x01 - Time has come today</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/3/2/I_am_a_tree\" debug=\"398\"\
|
||||
>Grey's Anatomy - 03x02 - I am a tree</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Grey%27s_Anatomy/3/3/Sometimes_a_fantasy\"\
|
||||
\ debug=\"399\">Grey's Anatomy - 03x03 - Sometimes a fantasy</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/3/4/What_I_am\" debug=\"400\">Grey's Anatomy - 03x04\
|
||||
\ - What I am</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/3/5/Oh%2C_the_guilt\" debug=\"\
|
||||
401\">Grey's Anatomy - 03x05 - Oh, the guilt</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/3/6/Let_the_angels_commit\" debug=\"402\">Grey's Anatomy\
|
||||
\ - 03x06 - Let the angels commit</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/3/7/Where_the_boys_are\" debug=\"\
|
||||
403\">Grey's Anatomy - 03x07 - Where the boys are</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/3/8/Staring_at_the_sun\" debug=\"404\">Grey's Anatomy\
|
||||
\ - 03x08 - Staring at the sun</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/3/9/From_a_whisper_to_a_scream\"\
|
||||
\ debug=\"405\">Grey's Anatomy - 03x09 - From a whisper to a scream</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/3/10/Don%27t_stand_so_close_to_me\" debug=\"406\">Grey's\
|
||||
\ Anatomy - 03x10 - Don't stand so close to me</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/3/11/Six_days_%28I%29\" debug=\"407\">Grey's Anatomy\
|
||||
\ - 03x11 - Six days (I)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/3/12/Six_days_%28II%29\" debug=\"\
|
||||
408\">Grey's Anatomy - 03x12 - Six days (II)</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/3/13/Great_expectations\" debug=\"409\">Grey's Anatomy\
|
||||
\ - 03x13 - Great expectations</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/3/14/Wishin%27_and_hopin%27\"\
|
||||
\ debug=\"410\">Grey's Anatomy - 03x14 - Wishin' and hopin'</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/3/15/Walk_on_water\" debug=\"411\">Grey's Anatomy -\
|
||||
\ 03x15 - Walk on water</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/3/16/Drowning_on_dry_land\"\
|
||||
\ debug=\"412\">Grey's Anatomy - 03x16 - Drowning on dry land</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/3/17/Some_kind_of_miracle\" debug=\"413\">Grey's Anatomy\
|
||||
\ - 03x17 - Some kind of miracle</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/3/18/Scars_and_souvenirs\" debug=\"\
|
||||
414\">Grey's Anatomy - 03x18 - Scars and souvenirs</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/3/19/My_favorite_mistake\" debug=\"415\">Grey's Anatomy\
|
||||
\ - 03x19 - My favorite mistake</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/3/20/Time_after_time\" debug=\"\
|
||||
723\">Grey's Anatomy - 03x20 - Time after time</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/3/21/Desire\" debug=\"778\">Grey's Anatomy - 03x21\
|
||||
\ - Desire</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/3/22/The_other_side_of_this_life_%28part_1%29\"\
|
||||
\ debug=\"822\">Grey's Anatomy - 03x22 - The other side of this life (part\
|
||||
\ 1)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/3/23/The_other_side_of_this_life_%28part_2%29\"\
|
||||
\ debug=\"823\">Grey's Anatomy - 03x23 - The other side of this life (part\
|
||||
\ 2)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/3/25/Didn%27t_we_almost_have_it_all%3F\"\
|
||||
\ debug=\"1064\">Grey's Anatomy - 03x25 - Didn't we almost have it all?</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/4/0/Come_rain_or_come_shine%3A_From_Grey%27s_Anatomy_to_Private_Practice\"\
|
||||
\ debug=\"6479\">Grey's Anatomy - 04x00 - Come rain or come shine: From Grey's\
|
||||
\ Anatomy to Private Practice</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/4/1/A_change_is_gonna_come\"\
|
||||
\ debug=\"2374\">Grey's Anatomy - 04x01 - A change is gonna come</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/4/3/Sometimes_a_fantasy\" debug=\"2587\">Grey's Anatomy\
|
||||
\ - 04x03 - Sometimes a fantasy</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/4/4/The_heart_of_the_matter\"\
|
||||
\ debug=\"2807\">Grey's Anatomy - 04x04 - The heart of the matter</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/4/5/Haunt_you_everyday\" debug=\"2942\">Grey's Anatomy\
|
||||
\ - 04x05 - Haunt you everyday</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/4/6/Kung_fu_fighting\" debug=\"\
|
||||
3077\">Grey's Anatomy - 04x06 - Kung fu fighting</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/4/7/Physical_attraction..._chemical_reaction\" debug=\"\
|
||||
3234\">Grey's Anatomy - 04x07 - Physical attraction... chemical reaction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/4/8/Forever_young\" debug=\"3492\">Grey's Anatomy -\
|
||||
\ 04x08 - Forever young</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/4/9/Crash_into_me_%28Part_1%29\"\
|
||||
\ debug=\"3810\">Grey's Anatomy - 04x09 - Crash into me (Part 1)</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/4/10/Crash_into_me_%28Part_2%29\" debug=\"4390\">Grey's\
|
||||
\ Anatomy - 04x10 - Crash into me (Part 2)</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Grey%27s_Anatomy/4/11/Lay_your_hands_on_me\"\
|
||||
\ debug=\"5798\">Grey's Anatomy - 04x11 - Lay your hands on me</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/4/12/Where_The_Wild_Things_Are\" debug=\"8585\">Grey's\
|
||||
\ Anatomy - 04x12 - Where The Wild Things Are</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/4/13/Piece_of_My_Heart\" debug=\"8741\">Grey's Anatomy\
|
||||
\ - 04x13 - Piece of My Heart</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/4/14/The_Becoming\" debug=\"\
|
||||
8856\">Grey's Anatomy - 04x14 - The Becoming</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/4/15/Losing_My_Mind\" debug=\"9078\">Grey's Anatomy\
|
||||
\ - 04x15 - Losing My Mind</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/10/19/I%27m_Winning\" debug=\"\
|
||||
86778\">Grey's Anatomy - 10x19 - I'm Winning</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/10/20/Go_It_Alone\" debug=\"87067\">Grey's Anatomy\
|
||||
\ - 10x20 - Go It Alone</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/10/21/Change_of_Heart\" debug=\"\
|
||||
87427\">Grey's Anatomy - 10x21 - Change of Heart</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/10/22/We_Are_Never_Ever_Getting_Back_Together\" debug=\"\
|
||||
87737\">Grey's Anatomy - 10x22 - We Are Never Ever Getting Back Together</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/10/23/Everything_I_Try_to_Do%2C_Nothing_Seems_to_Turn_Out_Right\"\
|
||||
\ debug=\"87969\">Grey's Anatomy - 10x23 - Everything I Try to Do, Nothing\
|
||||
\ Seems to Turn Out Right</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/10/24/Fear_%28of_the_Unknown%29\"\
|
||||
\ debug=\"88200\">Grey's Anatomy - 10x24 - Fear (of the Unknown)</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/11/1/I_Must_Have_Lost_It_on_the_Wind\" debug=\"92229\"\
|
||||
>Grey's Anatomy - 11x01 - I Must Have Lost It on the Wind</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/11/2/Puzzle_With_a_Piece_Missing\" debug=\"92449\"\
|
||||
>Grey's Anatomy - 11x02 - Puzzle With a Piece Missing</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/11/3/Got_To_Be_Real\" debug=\"92639\">Grey's Anatomy\
|
||||
\ - 11x03 - Got To Be Real</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/11/4/Only_Mama_Knows\" debug=\"\
|
||||
92884\">Grey's Anatomy - 11x04 - Only Mama Knows</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/11/5/Bend_and_Break\" debug=\"93163\">Grey's Anatomy\
|
||||
\ - 11x05 - Bend and Break</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/11/6/Don%27t_Let%27s_Start\"\
|
||||
\ debug=\"93580\">Grey's Anatomy - 11x06 - Don't Let's Start</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/11/7/Could_We_Start_Again%2C_Please\" debug=\"93851\"\
|
||||
>Grey's Anatomy - 11x07 - Could We Start Again, Please</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/11/8/Risk\" debug=\"94097\">Grey's Anatomy - 11x08\
|
||||
\ - Risk</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/11/9/Where_Do_We_Go_From_Here\"\
|
||||
\ debug=\"96403\">Grey's Anatomy - 11x09 - Where Do We Go From Here</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/11/10/The_Bed%27s_Too_Big_Without_You\" debug=\"96670\"\
|
||||
>Grey's Anatomy - 11x10 - The Bed's Too Big Without You</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/11/11/All_I_Could_Do_Was_Cry\" debug=\"96983\">Grey's\
|
||||
\ Anatomy - 11x11 - All I Could Do Was Cry</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Grey%27s_Anatomy/11/12/The_Great_Pretender\"\
|
||||
\ debug=\"97330\">Grey's Anatomy - 11x12 - The Great Pretender</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/11/13/Staring_at_the_End\" debug=\"97621\">Grey's Anatomy\
|
||||
\ - 11x13 - Staring at the End</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/11/14/The_Distance\" debug=\"\
|
||||
97880\">Grey's Anatomy - 11x14 - The Distance</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/11/15/I_Feel_the_Earth_Move\" debug=\"98204\">Grey's\
|
||||
\ Anatomy - 11x15 - I Feel the Earth Move</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Grey%27s_Anatomy/11/16/Don%27t_Dream_It%27s_Over\"\
|
||||
\ debug=\"98464\">Grey's Anatomy - 11x16 - Don't Dream It's Over</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/11/17/With_or_Without_You\" debug=\"98780\">Grey's\
|
||||
\ Anatomy - 11x17 - With or Without You</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Grey%27s_Anatomy/11/18/When_I_Grow_Up\"\
|
||||
\ debug=\"99029\">Grey's Anatomy - 11x18 - When I Grow Up</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/11/19/Crazy_Love\" debug=\"99326\">Grey's Anatomy -\
|
||||
\ 11x19 - Crazy Love</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/11/20/One_Flight_Down\" debug=\"\
|
||||
99621\">Grey's Anatomy - 11x20 - One Flight Down</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/11/21/How_to_Save_a_Life\" debug=\"99850\">Grey's Anatomy\
|
||||
\ - 11x21 - How to Save a Life</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/11/22/She%27s_Leaving_Home\"\
|
||||
\ debug=\"100099\">Grey's Anatomy - 11x22 - She's Leaving Home</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/11/23/Time_Stops\" debug=\"100428\">Grey's Anatomy\
|
||||
\ - 11x23 - Time Stops</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/11/24/You%27re_My_Home\" debug=\"\
|
||||
100708\">Grey's Anatomy - 11x24 - You're My Home</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/12/1/Sledgehammer\" debug=\"104266\">Grey's Anatomy\
|
||||
\ - 12x01 - Sledgehammer</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/12/2/Walking_Tall\" debug=\"\
|
||||
104484\">Grey's Anatomy - 12x02 - Walking Tall</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/12/3/I_Choose_You\" debug=\"104737\">Grey's Anatomy\
|
||||
\ - 12x03 - I Choose You</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/12/4/Old_Time_Rock_and_Roll\"\
|
||||
\ debug=\"104995\">Grey's Anatomy - 12x04 - Old Time Rock and Roll</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/12/5/Guess_Who%E2%80%99s_Coming_to_Dinner\" debug=\"\
|
||||
105233\">Grey's Anatomy - 12x05 - Guess Who\u2019s Coming to Dinner</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/3/0/\" debug=\"673\">Grey's Anatomy - Special Every\
|
||||
\ Moment Counts</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/1/1/A_Hard_Day%27s_Night\" debug=\"\
|
||||
3317\">Greys Anatomy - 01x01 - A Hard Day's Night</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/2/0/Special_Recap_Straight_To_The_Heart\" debug=\"\
|
||||
57939\">Greys Anatomy - 02x00 - Special Recap Straight To The Heart</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/2/20/Band_Aid_Covers_The_Bullet_Hole\" debug=\"3294\"\
|
||||
>Greys Anatomy - 02x20 - Band Aid Covers The Bullet Hole</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/3/24/Testing_1_2_3\" debug=\"943\">Greys Anatomy -\
|
||||
\ 03x24 - Testing 1 2 3</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/4/2/Love_Addiction\" debug=\"\
|
||||
2455\">Greys Anatomy - 04x02 - Love Addiction</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/4/16/Freedom\" debug=\"14983\">Greys Anatomy - 04x16\
|
||||
\ - Freedom</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/4/17/Freedom\" debug=\"14981\"\
|
||||
>Greys Anatomy - 04x17 - Freedom</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/5/1/Dream_a_Little_Dream_of_Me\"\
|
||||
\ debug=\"9530\">Greys Anatomy - 05x01 - Dream a Little Dream of Me</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/5/2/Dream_a_Little_Dream_of_Me_%282%29\" debug=\"9531\"\
|
||||
>Greys Anatomy - 05x02 - Dream a Little Dream of Me (2)</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/5/3/Here_Comes_The_Flood\" debug=\"9532\">Greys Anatomy\
|
||||
\ - 05x03 - Here Comes The Flood</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/5/4/Brave_New_World\" debug=\"\
|
||||
9533\">Greys Anatomy - 05x04 - Brave New World</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/5/5/There_s_No_I_In_Team\" debug=\"9534\">Greys Anatomy\
|
||||
\ - 05x05 - There s No I In Team</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/5/6/Life_During_Wartime\" debug=\"\
|
||||
9535\">Greys Anatomy - 05x06 - Life During Wartime</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/5/7/Rise_Up\" debug=\"9536\">Greys Anatomy - 05x07\
|
||||
\ - Rise Up</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/5/8/These_Ties_That_Bind\" debug=\"\
|
||||
9537\">Greys Anatomy - 05x08 - These Ties That Bind</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/5/9/In_the_Midnight_Hour\" debug=\"9538\">Greys Anatomy\
|
||||
\ - 05x09 - In the Midnight Hour</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/5/10/All_By_Myself\" debug=\"\
|
||||
9539\">Greys Anatomy - 05x10 - All By Myself</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/5/11/Wish_You_Were_Here\" debug=\"9540\">Greys Anatomy\
|
||||
\ - 05x11 - Wish You Were Here</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/5/12/Sympathy_For_The_Devil\"\
|
||||
\ debug=\"9541\">Greys Anatomy - 05x12 - Sympathy For The Devil</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/5/13/Stairway_To_Heaven\" debug=\"9799\">Greys Anatomy\
|
||||
\ - 05x13 - Stairway To Heaven</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/5/14/Beat_Your_Heart_Out\" debug=\"\
|
||||
10598\">Greys Anatomy - 05x14 - Beat Your Heart Out</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/5/15/Before_and_After\" debug=\"10696\">Greys Anatomy\
|
||||
\ - 05x15 - Before and After</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/5/16/An_Honest_Mistake\" debug=\"\
|
||||
10916\">Greys Anatomy - 05x16 - An Honest Mistake</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/5/17/I_Will_Follow_You_Into_The_Dark\" debug=\"11385\"\
|
||||
>Greys Anatomy - 05x17 - I Will Follow You Into The Dark</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/5/18/Stand_By_Me\" debug=\"11574\">Greys Anatomy -\
|
||||
\ 05x18 - Stand By Me</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/5/19/Elevator_Love_Letter\"\
|
||||
\ debug=\"11720\">Greys Anatomy - 05x19 - Elevator Love Letter</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/5/20/Sweet_Surrender\" debug=\"12120\">Greys Anatomy\
|
||||
\ - 05x20 - Sweet Surrender</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/5/21/No_Good_At_Saying_Sorry\"\
|
||||
\ debug=\"12187\">Greys Anatomy - 05x21 - No Good At Saying Sorry</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/5/22/What_A_Difference_A_Day_Makes\" debug=\"12604\"\
|
||||
>Greys Anatomy - 05x22 - What A Difference A Day Makes</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/5/23/Here_s_to_Future_Days\" debug=\"12815\">Greys\
|
||||
\ Anatomy - 05x23 - Here s to Future Days</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Grey%27s_Anatomy/5/24/Now_or_Never\"\
|
||||
\ debug=\"19654\">Greys Anatomy - 05x24 - Now or Never</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/6/1/Good_Mourning\" debug=\"20730\">Greys Anatomy -\
|
||||
\ 06x01 - Good Mourning</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/6/2/Goodbye\" debug=\"20734\"\
|
||||
>Greys Anatomy - 06x02 - Goodbye</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/6/3/I_Always_Feel_Like_Somebody%27s_Watchin%27_Me\"\
|
||||
\ debug=\"20845\">Greys Anatomy - 06x03 - I Always Feel Like Somebody's Watchin'\
|
||||
\ Me</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/6/4/Tainted_Obligation\" debug=\"\
|
||||
21278\">Greys Anatomy - 06x04 - Tainted Obligation</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/6/5/Invasion\" debug=\"21821\">Greys Anatomy - 06x05\
|
||||
\ - Invasion</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/6/6/I_Saw_What_I_Saw\" debug=\"\
|
||||
22077\">Greys Anatomy - 06x06 - I Saw What I Saw</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/6/7/Give_Peace_a_Chance\" debug=\"22186\">Greys Anatomy\
|
||||
\ - 06x07 - Give Peace a Chance</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/6/8/Invest_In_Love\" debug=\"\
|
||||
22372\">Greys Anatomy - 06x08 - Invest In Love</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/6/9/New_History\" debug=\"22551\">Greys Anatomy - 06x09\
|
||||
\ - New History</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/6/10/Holidaze\" debug=\"22987\"\
|
||||
>Greys Anatomy - 06x10 - Holidaze</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/6/11/Blink\" debug=\"24025\"\
|
||||
>Greys Anatomy - 06x11 - Blink</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/6/12/I_Like_You_So_Much_Better_When_You%27re_Naked\"\
|
||||
\ debug=\"24149\">Greys Anatomy - 06x12 - I Like You So Much Better When You're\
|
||||
\ Naked</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/6/13/State_of_Love_and_Trust\"\
|
||||
\ debug=\"24356\">Greys Anatomy - 06x13 - State of Love and Trust</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/6/14/Valentine%27s_Day_Massacre\" debug=\"24357\">Greys\
|
||||
\ Anatomy - 06x14 - Valentine's Day Massacre</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/6/15/The_Time_Warp\" debug=\"24358\">Greys Anatomy\
|
||||
\ - 06x15 - The Time Warp</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/6/16/Perfect_Little_Accident\"\
|
||||
\ debug=\"24360\">Greys Anatomy - 06x16 - Perfect Little Accident</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/6/17/Push\" debug=\"24361\">Greys Anatomy - 06x17 -\
|
||||
\ Push</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/6/18/Suicide_Is_Painless\" debug=\"\
|
||||
24363\">Greys Anatomy - 06x18 - Suicide Is Painless</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/6/19/Sympathy_for_the_Parents\" debug=\"24364\">Greys\
|
||||
\ Anatomy - 06x19 - Sympathy for the Parents</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/6/20/Hook%2C_Line_and_Sinner\" debug=\"26829\">Greys\
|
||||
\ Anatomy - 06x20 - Hook, Line and Sinner</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Grey%27s_Anatomy/6/21/How_Insensitive\"\
|
||||
\ debug=\"27124\">Greys Anatomy - 06x21 - How Insensitive</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/6/22/Shiny_Happy_People\" debug=\"27440\">Greys Anatomy\
|
||||
\ - 06x22 - Shiny Happy People</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/6/23/Sanctuary\" debug=\"27642\"\
|
||||
>Greys Anatomy - 06x23 - Sanctuary</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/6/24/Death_and_All_His_Friends\"\
|
||||
\ debug=\"27643\">Greys Anatomy - 06x24 - Death and All His Friends</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/7/1/With_You_I%27m_Born_Again\" debug=\"32691\">Greys\
|
||||
\ Anatomy - 07x01 - With You I'm Born Again</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/7/2/Shock_to_the_System\" debug=\"33409\">Greys Anatomy\
|
||||
\ - 07x02 - Shock to the System</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/7/3/Superfreak\" debug=\"33724\"\
|
||||
>Greys Anatomy - 07x03 - Superfreak</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/7/4/Can%27t_Fight_Biology\"\
|
||||
\ debug=\"33951\">Greys Anatomy - 07x04 - Can't Fight Biology</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/7/5/Almost_Grown\" debug=\"34333\">Greys Anatomy -\
|
||||
\ 07x05 - Almost Grown</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/7/6/These_Arms_of_Mine\" debug=\"\
|
||||
34547\">Greys Anatomy - 07x06 - These Arms of Mine</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/7/7/That%27s_me_Trying\" debug=\"34806\">Greys Anatomy\
|
||||
\ - 07x07 - That's me Trying</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/7/8/Something%27s_Gotta_Give\"\
|
||||
\ debug=\"35082\">Greys Anatomy - 07x08 - Something's Gotta Give</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/7/9/Slow_night%2C_so_long\" debug=\"35409\">Greys Anatomy\
|
||||
\ - 07x09 - Slow night, so long</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/7/10/Adrift_and_at_Peace\" debug=\"\
|
||||
36178\">Greys Anatomy - 07x10 - Adrift and at Peace</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/7/11/Disarm\" debug=\"37827\">Greys Anatomy - 07x11\
|
||||
\ - Disarm</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/7/12/Start_Me_Up\" debug=\"\
|
||||
38194\">Greys Anatomy - 07x12 - Start Me Up</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/7/13/Don%27t_Deceive_Me_%28Please_Don%27t_Go%29\" debug=\"\
|
||||
39294\">Greys Anatomy - 07x13 - Don't Deceive Me (Please Don't Go)</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/7/14/P.Y.T._%28Pretty_Young_Thing%29\" debug=\"39718\"\
|
||||
>Greys Anatomy - 07x14 - P.Y.T. (Pretty Young Thing)</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/7/15/Golden_Hour\" debug=\"40076\">Greys Anatomy -\
|
||||
\ 07x15 - Golden Hour</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/7/16/Not_Responsible\" debug=\"\
|
||||
40384\">Greys Anatomy - 07x16 - Not Responsible</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/7/17/This_Is_How_We_Do_It\" debug=\"41874\">Greys Anatomy\
|
||||
\ - 07x17 - This Is How We Do It</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/7/18/Song_Beneath_the_Song\"\
|
||||
\ debug=\"42165\">Greys Anatomy - 07x18 - Song Beneath the Song</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/7/19/It%27s_A_Long_Way_Back\" debug=\"43554\">Greys\
|
||||
\ Anatomy - 07x19 - It's A Long Way Back</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Grey%27s_Anatomy/7/20/White_Wedding\"\
|
||||
\ debug=\"43984\">Greys Anatomy - 07x20 - White Wedding</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/7/21/I_Will_Survive\" debug=\"44315\">Greys Anatomy\
|
||||
\ - 07x21 - I Will Survive</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/7/22/Unaccompanied_Minor\" debug=\"\
|
||||
45220\">Greys Anatomy - 07x22 - Unaccompanied Minor</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/8/1/Free_Falling_and_She%27s_Gone\" debug=\"50161\"\
|
||||
>Greys Anatomy - 08x01 - Free Falling and She's Gone</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/8/2/She%27s_Gone\" debug=\"50165\">Greys Anatomy -\
|
||||
\ 08x02 - She's Gone</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/8/3/Take_the_Lead\" debug=\"\
|
||||
50493\">Greys Anatomy - 08x03 - Take the Lead</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/8/4/What_Is_It_About_Men\" debug=\"50820\">Greys Anatomy\
|
||||
\ - 08x04 - What Is It About Men</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/8/5/Love%2C_Loss_and_Legacy\"\
|
||||
\ debug=\"51303\">Greys Anatomy - 08x05 - Love, Loss and Legacy</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/8/6/Poker_Face\" debug=\"52562\">Greys Anatomy - 08x06\
|
||||
\ - Poker Face</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/8/7/Put_Me_In%2C_Coach\" debug=\"\
|
||||
53639\">Greys Anatomy - 08x07 - Put Me In, Coach</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/8/8/Heart_Shaped_Box\" debug=\"54497\">Greys Anatomy\
|
||||
\ - 08x08 - Heart Shaped Box</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/8/9/Dark_Was_the_Night\" debug=\"\
|
||||
54975\">Greys Anatomy - 08x09 - Dark Was the Night</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/8/10/Suddenly\" debug=\"58595\">Greys Anatomy - 08x10\
|
||||
\ - Suddenly</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Grey%27s_Anatomy/8/11/This_Magic_Moment\" debug=\"\
|
||||
58830\">Greys Anatomy - 08x11 - This Magic Moment</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/8/12/Hope_For_The_Hopeless\" debug=\"59022\">Greys\
|
||||
\ Anatomy - 08x12 - Hope For The Hopeless</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Grey%27s_Anatomy/8/13/If%2C_Then\"\
|
||||
\ debug=\"59416\">Greys Anatomy - 08x13 - If, Then</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Grey%27s_Anatomy/8/14/All_You_Need_Is_Love\" debug=\"59675\">Greys Anatomy\
|
||||
\ - 08x14 - All You Need Is Love</a></td></tr><tr><p>\n<p>\n</table>\n</td>\n\
|
||||
\ <td></td>\n </tr>\n <tr> <!-- table\
|
||||
\ footer -->\n \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/bl.gif\"\
|
||||
\ /></td>\n <td></td>\n <td class=\"tablecorner\"\
|
||||
><img src=\"http://www.addic7ed.com/images/br.gif\" /></td>\n </tr>\n\
|
||||
\ </table>\n </div>\n<!-- AdskeeperComposite Start -->\n<div id=\"\
|
||||
AdskeeperScriptRootC23244\">\n <div id=\"AdskeeperPreloadC23244\">\n \
|
||||
\ <a id=\"mg_add23244\" href=\"\" target=\"_blank\">Place your ad\
|
||||
\ here</a><br> <a href=\"http://adskeeper.co.uk/\" target=\"_blank\"\
|
||||
>Loading...</a> \n </div>\n <script>\n\
|
||||
\ window.MGWidgetTitle23244 = \"Promoted\
|
||||
\ Content\"; (function(){\n \
|
||||
\ var D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n\
|
||||
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"\
|
||||
AdskeeperScriptRootC23244\")[ac](i);try{var iw=i.contentWindow.document;iw.open();iw.writeln(\"\
|
||||
<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var c=iw[b];}\n\
|
||||
\ catch(e){var\
|
||||
\ iw=d;var c=d[gi](\"AdskeeperScriptRootC23244\");}var dv=iw[ce]('div');dv.id=\"\
|
||||
MG_ID\";dv[st][ds]=n;dv.innerHTML=23244;c[ac](dv);\n \
|
||||
\ var s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"\
|
||||
//jsc.adskeeper.co.uk/a/d/addic7ed.com.23244.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n\
|
||||
\ \
|
||||
\ </script>\n \
|
||||
\ </div>\n \
|
||||
\ <!-- AdskeeperComposite\
|
||||
\ End -->\n\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td class=\"\
|
||||
NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"\
|
||||
\ \" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"\
|
||||
20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Popular\
|
||||
\ Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"\
|
||||
\ alt=\" \" />Useful</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"\
|
||||
20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Forums</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse By Shows</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/4906\">12 Monkeys</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV Shows Schedule</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\"\
|
||||
>Site Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/movie-subtitles\">Browse By Movies</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\"\
|
||||
>Frequently Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support\
|
||||
\ Us</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/top-uploaders\"\
|
||||
>Top Uploaders</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/620\"\
|
||||
>Modern Family</a></div></td>\n<td><div id=\"footermenu\">RSS Feeds</div></td>\n\
|
||||
<td><div id=\"footermenu\">Premium Accounts</div></td>\n</tr>\n<tr>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top Downloads</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td\
|
||||
\ class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"\
|
||||
\ \"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\"\
|
||||
>Video Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/log.php?mode=news\">All News</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"/show/450\">Parks and Recreation</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\"\
|
||||
>How to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently\
|
||||
\ Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"http://www.sub-talk.net\">Sub-Talk Forums</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/show/1277\">Shameless (US)</a></div></td>\n\
|
||||
<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows Talk</a></div></td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest\
|
||||
\ Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\"\
|
||||
>The Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation\
|
||||
\ Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\"\
|
||||
>Movies Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"\
|
||||
http://www.vreaubagaj.ro/troler/\" title=\"Trolere ieftine\" alt=\"Trolere\
|
||||
\ ieftine\">Trolere ieftine</a></div></td>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/show/130\">Family Guy</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
>Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img width=\"\
|
||||
20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"\
|
||||
TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \"\
|
||||
\ />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\"\
|
||||
>How to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\"\
|
||||
\ title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n\
|
||||
</center>\n\n<script type=\"text/javascript\">\nvar gaJsHost = ((\"https:\"\
|
||||
\ == document.location.protocol) ? \"https://ssl.\" : \"http://www.\");\n\
|
||||
document.write(unescape(\"%3Cscript src='\" + gaJsHost + \"google-analytics.com/ga.js'\
|
||||
\ type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script type=\"\
|
||||
text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\"\
|
||||
);\npageTracker._trackPageview();\n} catch(err) {}</script>\n\n\n<script type=\"\
|
||||
text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n\
|
||||
\ \
|
||||
\ \n</body></html>\n"}
|
||||
headers:
|
||||
cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
connection: [keep-alive]
|
||||
content-type: [text/html]
|
||||
date: ['Thu, 29 Oct 2015 22:04:26 GMT']
|
||||
expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
pragma: [no-cache]
|
||||
server: [nginx]
|
||||
set-cookie: [PHPSESSID=sk6d26tm76rqcrmi22ho89kiu6; path=/]
|
||||
x-powered-by: [PHP/5.3.3]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,287 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/1.1]
|
||||
method: GET
|
||||
uri: http://www.addic7ed.com/search.php?search=Dallas+2012&Submit=Search
|
||||
response:
|
||||
body: {string: !!python/unicode "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0\
|
||||
\ Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"\
|
||||
>\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"\
|
||||
Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>\nSearch \"\
|
||||
Dallas 2012\" Subtitle Download - Addic7ed.com - For all those TV Series Addic7s:\
|
||||
\ Subtitles, Tv Series and Movies Talk, Forum and more -</title>\n<link href=\"\
|
||||
http://www.addic7ed.com/css/wikisubtitles.css\" rel=\"stylesheet\" title=\"\
|
||||
default\" type=\"text/css\" />\n<link rel=\"SHORTCUT ICON\" href=\"favicon.ico\"\
|
||||
\ /> \n<script type=\"text/javascript\" src=\"http://www.addic7ed.com/js/mootools.v1.11.js\"\
|
||||
></script>\n\n</head>\n<body>\n<center><br />\n<table border=\"0\">\n<tr>\n\
|
||||
\ <td rowspan=\"9\"><a href=\"/\"><img height=\"200\" width=\"350\" src=\"\
|
||||
http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\" title=\"\
|
||||
Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com\
|
||||
\ - Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td\
|
||||
\ align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for\
|
||||
\ TV Shows and Movies.</small> \n<select name=\"applang\" class=\"inputCool\"\
|
||||
\ onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option\
|
||||
\ value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option\
|
||||
\ value=\"eu\">Euskera</option><option value=\"fr\">French</option><option\
|
||||
\ value=\"ga\">Galician</option><option value=\"de\">German</option><option\
|
||||
\ value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option\
|
||||
\ value=\"it\">Italian</option><option value=\"fa\">Persian</option><option\
|
||||
\ value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option\
|
||||
\ value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option\
|
||||
\ value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option\
|
||||
\ value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"\
|
||||
center\" colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"\
|
||||
button white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\
|
||||
\t\t\t </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"\
|
||||
medium\"></g:plusone>\n <a href=\"http://twitter.com/addic7ed\" target=\"\
|
||||
_blank\"><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\"\
|
||||
\ alt=\"Twitter\" border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"\
|
||||
><img width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"\
|
||||
\ alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\"\
|
||||
>\n\n </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&send=false&layout=button_count&width=450&show_faces=false&action=like&colorscheme=light&font=tahoma&height=21&appId=121322186712\"\
|
||||
\ scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden;\
|
||||
\ width:80px; height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n\
|
||||
\ </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if lt IE 7]>\n <style type=\"\
|
||||
text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)\
|
||||
\ }\n </style>\n<![endif]-->\n<br />\n<center>\n<!-- MarketGidComposite Start\
|
||||
\ -->\n<div id=\"MarketGidScriptRootC13385\">\n <div id=\"MarketGidPreloadC13385\"\
|
||||
>\n <a id=\"mg_add13385\" href=\"http://mgid.com/advertisers/?utm_source=widget&utm_medium=text&utm_campaign=add\"\
|
||||
\ target=\"_blank\">Place your ad here</a><br> <a href=\"http://mgid.com/\"\
|
||||
\ target=\"_blank\">Loading...</a> \n </div>\n \
|
||||
\ <script>\n window.MGWidgetTitle13385\
|
||||
\ = \"Promoted Content\"; (function(){\n \
|
||||
\ var D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n\
|
||||
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"\
|
||||
MarketGidScriptRootC13385\")[ac](i);try{var iw=i.contentWindow.document;iw.open();iw.writeln(\"\
|
||||
<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var c=iw[b];}\n\
|
||||
\ catch(e){var\
|
||||
\ iw=d;var c=d[gi](\"MarketGidScriptRootC13385\");}var dv=iw[ce]('div');dv.id=\"\
|
||||
MG_ID\";dv[st][ds]=n;dv.innerHTML=13385;c[ac](dv);\n \
|
||||
\ var s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"\
|
||||
//jsc.mgid.com/a/d/addic7ed.com.13385.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n\
|
||||
\ \
|
||||
\ </script>\n \
|
||||
\ </div>\n \
|
||||
\ <!-- MarketGidComposite\
|
||||
\ End -->\n\n<script data-cfasync=false src=\"//s.ato.mx/p.js#id=7869&type=popunder&cap=1:24\"\
|
||||
></script>\n</center><br />\n\n<div id=\"container\"> \n \t<table class=\"\
|
||||
tabel70\" border=\"0\">\n \t<tr> <!-- table header -->\n \
|
||||
\ \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/tl.gif\"\
|
||||
\ /></td>\n <td></td>\n <td class=\"tablecorner\"\
|
||||
><img src=\"http://www.addic7ed.com/images/tr.gif\" /></td>\n </tr>\n\
|
||||
\ <tr>\n \t<td></td>\n <td>\n<form action=\"\
|
||||
/search.php\" method=\"get\">\n<div align=\"center\">\n<input name=\"search\"\
|
||||
\ type=\"text\" id=\"search\" size=\"50\" value=\"Dallas 2012\" class=\"inputCool\"\
|
||||
/> \n <input name=\"Submit\" type=\"submit\" class=\"coolBoton\" value=\"\
|
||||
Search\" /></form><br />\n\n<b>40 results found</b> </div><br />\n\n<br />\n\
|
||||
\t<center>\n\n</center>\n<br />\n<center> <img src=\"http://www.addic7ed.com/images/database.png\"\
|
||||
\ /> <span class=\"titulo\">\nAre you looking for <a href=\"/show/2559\"\
|
||||
\ >Show <i>Dallas (2012)</i></a> ?</span></center><br /><br />\n\n<table\
|
||||
\ class=\"tabel\" align=\"center\" width=\"80%\" border=\"0\">\n<tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/1/1/Changing_of_the_Guard\" debug=\"63362\">Dallas\
|
||||
\ (2012) - 01x01 - Changing of the Guard</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/2/Hedging_Your_Bets\"\
|
||||
\ debug=\"63364\">Dallas (2012) - 01x02 - Hedging Your Bets</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/1/3/The_Price_You_Pay\" debug=\"63827\">Dallas (2012)\
|
||||
\ - 01x03 - The Price You Pay</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/1/4/The_Last_Hurrah\" debug=\"\
|
||||
63994\">Dallas (2012) - 01x04 - The Last Hurrah</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/1/5/Truth_and_consequences\" debug=\"64210\">Dallas\
|
||||
\ (2012) - 01x05 - Truth and consequences</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/6/The_Enemy_of_My_Enemy\"\
|
||||
\ debug=\"64512\">Dallas (2012) - 01x06 - The Enemy of My Enemy</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/1/7/Collateral_Damage\" debug=\"64686\">Dallas (2012)\
|
||||
\ - 01x07 - Collateral Damage</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/1/8/No_Good_Deed\" debug=\"\
|
||||
64933\">Dallas (2012) - 01x08 - No Good Deed</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/1/9/Family_Business\" debug=\"65100\">Dallas (2012)\
|
||||
\ - 01x09 - Family Business</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/1/10/Revelations\" debug=\"\
|
||||
65276\">Dallas (2012) - 01x10 - Revelations</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/2/1/Battle_Lines\" debug=\"71069\">Dallas (2012) -\
|
||||
\ 02x01 - Battle Lines</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/2/2/Venomous_Creatures\" debug=\"\
|
||||
71070\">Dallas (2012) - 02x02 - Venomous Creatures</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/2/3/Sins_of_the_Father\" debug=\"71358\">Dallas (2012)\
|
||||
\ - 02x03 - Sins of the Father</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/2/4/False_Confessions\" debug=\"\
|
||||
71644\">Dallas (2012) - 02x04 - False Confessions</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/2/5/Trial_and_Error\" debug=\"71949\">Dallas (2012)\
|
||||
\ - 02x05 - Trial and Error</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/2/6/Blame_Game\" debug=\"72265\"\
|
||||
>Dallas (2012) - 02x06 - Blame Game</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/2/7/The_Furious_and_the_Fast\"\
|
||||
\ debug=\"72625\">Dallas (2012) - 02x07 - The Furious and the Fast</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/2/8/J.R.%27s_Masterpiece\" debug=\"72969\">Dallas\
|
||||
\ (2012) - 02x08 - J.R.'s Masterpiece</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/9/Ewings_Unite%21\"\
|
||||
\ debug=\"73242\">Dallas (2012) - 02x09 - Ewings Unite!</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/2/10/Guilt_And_Innocence\" debug=\"73578\">Dallas\
|
||||
\ (2012) - 02x10 - Guilt And Innocence</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/11/Let_Me_In\"\
|
||||
\ debug=\"73846\">Dallas (2012) - 02x11 - Let Me In</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/2/12/A_Call_to_Arms\" debug=\"74098\">Dallas (2012)\
|
||||
\ - 02x12 - A Call to Arms</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/2/13/Love_%40_Family\" debug=\"\
|
||||
74099\">Dallas (2012) - 02x13 - Love & Family</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/2/14/Guilt_By_Association\" debug=\"74342\">Dallas\
|
||||
\ (2012) - 02x14 - Guilt By Association</a></td></tr><tr><tr><td><img src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/15/Legacies\"\
|
||||
\ debug=\"74347\">Dallas (2012) - 02x15 - Legacies</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/3/1/The_Return\" debug=\"84652\">Dallas (2012) - 03x01\
|
||||
\ - The Return</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/2/Trust_Me\" debug=\"84941\"\
|
||||
>Dallas (2012) - 03x02 - Trust Me</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/3/Playing_Chicken\" debug=\"\
|
||||
85388\">Dallas (2012) - 03x03 - Playing Chicken</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/3/4/Lifting_the_Veil\" debug=\"85735\">Dallas (2012)\
|
||||
\ - 03x04 - Lifting the Veil</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/5/D.T.R.\" debug=\"86033\"\
|
||||
>Dallas (2012) - 03x05 - D.T.R.</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/6/Like_Father%2C_Like_Son\"\
|
||||
\ debug=\"86406\">Dallas (2012) - 03x06 - Like Father, Like Son</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/3/7/Like_a_Bad_Penny\" debug=\"86664\">Dallas (2012)\
|
||||
\ - 03x07 - Like a Bad Penny</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/8/Where_There%27s_Smoke\"\
|
||||
\ debug=\"86948\">Dallas (2012) - 03x08 - Where There's Smoke</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/3/9/Denial%2C_Anger%2C_Acceptance\" debug=\"91222\"\
|
||||
>Dallas (2012) - 03x09 - Denial, Anger, Acceptance</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/3/10/Dead_Reckoning\" debug=\"91469\">Dallas (2012)\
|
||||
\ - 03x10 - Dead Reckoning</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/11/Hurt\" debug=\"91634\"\
|
||||
>Dallas (2012) - 03x11 - Hurt</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/12/Victims_of_Love\" debug=\"\
|
||||
91837\">Dallas (2012) - 03x12 - Victims of Love</a></td></tr><tr><tr><td><img\
|
||||
\ src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"\
|
||||
serie/Dallas_%282012%29/3/13/Boxed_In\" debug=\"91959\">Dallas (2012) - 03x13\
|
||||
\ - Boxed In</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/14/Endgame\" debug=\"92148\"\
|
||||
>Dallas (2012) - 03x14 - Endgame</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ /></td><td><a href=\"serie/Dallas_%282012%29/3/15/Brave_New_World\" debug=\"\
|
||||
92160\">Dallas (2012) - 03x15 - Brave New World</a></td></tr><tr><p>\n<p>\n\
|
||||
</table>\n</td>\n <td></td>\n </tr>\n \
|
||||
\ <tr> <!-- table footer -->\n \t<td class=\"tablecorner\"><img\
|
||||
\ src=\"http://www.addic7ed.com/images/bl.gif\" /></td>\n <td></td>\n\
|
||||
\ <td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/br.gif\"\
|
||||
\ /></td>\n </tr>\n </table>\n </div>\n<!-- AdskeeperComposite\
|
||||
\ Start -->\n<div id=\"AdskeeperScriptRootC23244\">\n <div id=\"AdskeeperPreloadC23244\"\
|
||||
>\n <a id=\"mg_add23244\" href=\"\" target=\"_blank\">Place your\
|
||||
\ ad here</a><br> <a href=\"http://adskeeper.co.uk/\" target=\"_blank\"\
|
||||
>Loading...</a> \n </div>\n <script>\n\
|
||||
\ window.MGWidgetTitle23244 = \"Promoted\
|
||||
\ Content\"; (function(){\n \
|
||||
\ var D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n\
|
||||
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"\
|
||||
AdskeeperScriptRootC23244\")[ac](i);try{var iw=i.contentWindow.document;iw.open();iw.writeln(\"\
|
||||
<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var c=iw[b];}\n\
|
||||
\ catch(e){var\
|
||||
\ iw=d;var c=d[gi](\"AdskeeperScriptRootC23244\");}var dv=iw[ce]('div');dv.id=\"\
|
||||
MG_ID\";dv[st][ds]=n;dv.innerHTML=23244;c[ac](dv);\n \
|
||||
\ var s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"\
|
||||
//jsc.adskeeper.co.uk/a/d/addic7ed.com.23244.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n\
|
||||
\ \
|
||||
\ </script>\n \
|
||||
\ </div>\n \
|
||||
\ <!-- AdskeeperComposite\
|
||||
\ End -->\n\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td class=\"\
|
||||
NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"\
|
||||
\ \" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"\
|
||||
20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Popular\
|
||||
\ Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"\
|
||||
http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"\
|
||||
\ alt=\" \" />Useful</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"\
|
||||
20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img\
|
||||
\ src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Forums</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse By Shows</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/4906\">12 Monkeys</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV Shows Schedule</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\"\
|
||||
>Site Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/movie-subtitles\">Browse By Movies</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\"\
|
||||
>Frequently Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support\
|
||||
\ Us</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/top-uploaders\"\
|
||||
>Top Uploaders</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/620\"\
|
||||
>Modern Family</a></div></td>\n<td><div id=\"footermenu\">RSS Feeds</div></td>\n\
|
||||
<td><div id=\"footermenu\">Premium Accounts</div></td>\n</tr>\n<tr>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top Downloads</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td\
|
||||
\ class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"\
|
||||
\ alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"\
|
||||
\ \"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\"\
|
||||
>Video Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/log.php?mode=news\">All News</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"/show/450\">Parks and Recreation</a></div></td>\n<td><div id=\"\
|
||||
footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\"\
|
||||
>How to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently\
|
||||
\ Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"http://www.sub-talk.net\">Sub-Talk Forums</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"/show/1277\">Shameless (US)</a></div></td>\n\
|
||||
<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div id=\"footermenu\"\
|
||||
><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows Talk</a></div></td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest\
|
||||
\ Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\"\
|
||||
>The Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation\
|
||||
\ Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\"\
|
||||
>Movies Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"\
|
||||
http://www.vreaubagaj.ro/troler/\" title=\"Trolere ieftine\" alt=\"Trolere\
|
||||
\ ieftine\">Trolere ieftine</a></div></td>\n<td><div id=\"footermenu\"><a\
|
||||
\ href=\"/show/130\">Family Guy</a></div></td>\n<td><div id=\"footermenu\"\
|
||||
>Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img width=\"\
|
||||
20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"\
|
||||
TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \"\
|
||||
\ />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\"\
|
||||
>How to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n\
|
||||
</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n\
|
||||
<td><div id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div\
|
||||
\ id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\"\
|
||||
\ title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n\
|
||||
</center>\n\n<script type=\"text/javascript\">\nvar gaJsHost = ((\"https:\"\
|
||||
\ == document.location.protocol) ? \"https://ssl.\" : \"http://www.\");\n\
|
||||
document.write(unescape(\"%3Cscript src='\" + gaJsHost + \"google-analytics.com/ga.js'\
|
||||
\ type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script type=\"\
|
||||
text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\"\
|
||||
);\npageTracker._trackPageview();\n} catch(err) {}</script>\n\n\n<script type=\"\
|
||||
text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n\
|
||||
\ \
|
||||
\ \n</body></html>\n"}
|
||||
headers:
|
||||
cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
connection: [keep-alive]
|
||||
content-type: [text/html]
|
||||
date: ['Thu, 29 Oct 2015 22:04:24 GMT']
|
||||
expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
pragma: [no-cache]
|
||||
server: [nginx]
|
||||
set-cookie: [PHPSESSID=2krcj2c1nf1ds4risaji3dkf41; path=/]
|
||||
x-powered-by: [PHP/5.3.3]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,843 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/1.1]
|
||||
method: GET
|
||||
uri: http://napiprojekt.pl/unit_napisy/dl.php?f=6303e7ee6a835e9fcede9fb2fb00cb36&pass=&l=PL&nick=&kolejka=false&t=0ce4a&napios=Linux&v=dreambox
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
ezExODl9ezEyNzF9VLN1bWFjemVuaWU6fHNpbnU2DQp7MzE0Nn17MzE4OX0vTmllIHJvenVtaWVj
|
||||
aWU/DQp7MzE4OX17MzI0NH0vSrlkcm8gS3J5cHRvbmEgc2nqIHJvenBhZGEuDQp7MzI0NH17MzI5
|
||||
OX1UbyBrd2VzdGlhIHR5Z29kbmkuDQp7MzI5OX17MzM5MH1Pc3RyemVnYbNlbSwgv2UgZWtzcGxv
|
||||
YXRhY2phIGq5ZHJhfHRvIHNhbW9i82pzdHdvLg0KezMzOTd9ezM0NDV9VG8gamVkeW5pZSBwcnp5
|
||||
c3BpZXN6ebNvIGltcGxvemrqLg0KezM0NDh9ezM1NTh9UmV6ZXJ3eSBlbmVyZ2V0eWN6bmUgYnmz
|
||||
eSBuYSB3eWN6ZXJwYW5pdS58Q28gbWllbGmcbXkgenJvYmnmLCBFbD8NCnszNTU4fXszNjQ0fVp3
|
||||
cvNjaeYgc2nqIGt1IGd3aWF6ZG9tLnxKYWsgbmFzaSBwcnpvZGtvd2llLg0KezM2NDR9ezM2OTV9
|
||||
U7kgdGFtIJx3aWF0eSx8bmFkYWq5Y2Ugc2nqIGRvIHphbWllc3prYW5pYS4NCnszNjk3fXszNzQ1
|
||||
fU1vv2VteSB6YWN6ueZ8b2QgbmFzenljaCBkYXdueWNoIGtvbG9uaWkuDQp7Mzc0NX17MzgyOX1O
|
||||
YXByYXdk6iBzdWdlcnVqZXN6fGV3YWt1YWNq6iBjYbNlaiBwbGFuZXR5Pw0KezM4Mjl9ezM5MTN9
|
||||
TmllLiBMb3MgamVqIG1pZXN6a2HxY/N3fGplc3QganW/IHByemVzuWR6b255Lg0KezM5Mzd9ezQw
|
||||
NDV9UHJ6ZWthv2NpZSBtaSBrb250cm9s6iBuYWQgS29kZXhlbS58WmFwZXduaeogcHJ6ZXRyd2Fu
|
||||
aWUgbmFzemVqIHJhc3kuDQp7NDA0NX17NDE2OX1XY2m5vyBqZXN0IG5hZHppZWphLnxUcnp5bWGz
|
||||
ZW0garkgdyByYW1pb25hY2guDQp7NDQ5OH17NDYxNX0tIE5pbmllanN6eW0gUmFkYSB6b3N0YWpl
|
||||
IHJvendpuXphbmEufC0gWiBjenlqZWdvIHJvemthenU/DQp7NDYxOH17NDY2Nn1Nb2plZ28uDQp7
|
||||
NDcyOH17NDgyMn1SZXN6dGEgem9zdGFuaWUgb3O5ZHpvbmEgaSB1a2FyYW5hLg0KezQ4NzB9ezQ5
|
||||
MjV9Q28gdHkgd3lwcmF3aWFzeiwgWm9kPyF8VG8gc3phbGXxc3R3byENCns0OTI1fXs0OTY4fVBv
|
||||
d2luaWVuZW0gdG8genJvYmnmIGp1vyBkYXduby4NCns0OTY4fXs1MDgxfVByemV6IGljaCBuaWVr
|
||||
b/FjerljZSBzaeogZGViYXR5fGRvcHJvd2FkemlsaSBLcnlwdG9uYSBkbyB6Z3VieSENCns1MTM4
|
||||
fXs1MjI0fVByemVqbXVqZXN6IHezYWR66iBzabO5P3xOaWUgYupkemllc3ogbWlhsyBraW0gcnq5
|
||||
ZHpp5i4NCns1MjI0fXs1MzM3fVBvbfO/IG1pIHdp6mMgb2NhbGnmIG5hc3q5IHJhc+oufFphY3pu
|
||||
aWVteSBuYSBub3dvLg0KezUzMzd9ezU0NDB9V3lwbGVuaW15IGRlZ2VuZXJhdPN3LHxrdPNyenkg
|
||||
ZG9wcm93YWR6aWxpIGRvIHVwYWRrdS4NCns1NDQwfXs1NTI5fUEga3RvIHpkZWN5ZHVqZSwga29n
|
||||
byBvc3pjeupkemnmPw0KezU1NjB9ezU2MDN9VHk/DQp7NTYzNH17NTc0MH1OaWUgcvNiIHRlZ28s
|
||||
IEVsLiBOaWUgY2hj6ix8YnmcbXkgc3RhbGkgc2nqIHdyb2dhbWkuDQp7NTc0NX17NTgxMn1as2Ft
|
||||
YbNlnCBvYm93abl6dWq5Y2UgbmFzIHphc2FkeS4NCns1ODE3fXs1ODkxfVBvZG5pb3OzZZwgbWll
|
||||
Y3p8cHJ6ZWNpd2tvIHezYXNuZW11IGx1ZG93aS4NCns1OTA1fXs2MDM1fVVzemFudWrqIGN6s293
|
||||
aWVrYSwga3TzcnltIGtpZWR5nCBiebNlnC58TmllIHBvdHdvcmEsIGpha2ltIHNp6iBzdGGzZZwu
|
||||
DQp7NjExNn17NjE3MX1aYWJyYeYgZ28uDQp7NjI5NH17NjM2Nn0vLSBXc3p5c3RrbyB3IHBvcnq5
|
||||
ZGt1P3wtIFogZHJvZ2khDQp7NjM5Mn17NjQyOH1Qb3dpZWR6aWGzZW0uLi4NCns2ODA5fXs2OTI3
|
||||
fS0gUG+zuWN6IG1uaWUgeiBMYXK5LnwvLSBaYSB0b2K5LCBKb3IhDQp7NzAxMX17NzEzMH1MYXJh
|
||||
LCBwcnp5Z290dWogc3RhcnQufFByenli6mTqIGphayBuYWpzenliY2llai4NCns3NDU5fXs3NTA0
|
||||
fUgnUmFrYSENCns4NDI4fXs4NDkyfS0gV2lkemlhs2GcIEtvZGV4P3wvLSBKZXN0IHBvZCByYXR1
|
||||
c3plbS4NCns4NDkyfXs4NTg4fS9Pc3RyemVnYW0sIL9lIHplapxjaWUgdGFtfC9qZXN0IHByemVz
|
||||
dOpwc3R3ZW0ga2xhc3kgQi4uLg0Kezg1ODh9ezg2OTh9VG8ganW/IG5pZXdhv25lLCBLZWxleC58
|
||||
jHdpYXQgc2nqIGtv8WN6eS4NCnsxMDIyOH17MTAzNTN9Sm9yLUVsLCB6IHJvemthenUgZ2VuZXJh
|
||||
s2EgWm9kYSx8bWFzeiBvZGRh5iBLb2RleC4NCnsxMTUxMX17MTE1NjZ9U3Bva29qbmllLCBIJ3Jh
|
||||
a2EuDQp7MTIwNDF9ezEyMTA4fS0gWm5hbGWfbGmcY2llIGp1vyCcd2lhdD98LSBUYWsuDQp7MTIx
|
||||
MTN9ezEyMTk5fS9Lcrm/eSB3b2vzsyC/87N0ZWogZ3dpYXpkeXwvY2m5Z3UgZ7Pzd25lZ28uDQp7
|
||||
MTIyMzB9ezEyMjc2fU2zb2RhIGd3aWF6ZGEuDQp7MTIyNzZ9ezEyMzM4fUplZ28ga29t83JraSBi
|
||||
6mS5IGN6ZXJwYeZ8eiBuaWVqIGVuZXJnaeouDQp7MTIzOTF9ezEyNDUxfVd5Z2y5ZGEgbmEgdG8s
|
||||
fL9lIG1hIGludGVsaWdlbnRuuSBwb3B1bGFjauouDQp7MTI0NjV9ezEyNTQyfULqZHppZSB3eXJ6
|
||||
dXRraWVtLCBkeml3b2y5Z2llbS4NCnsxMjU4M317MTI2NDB9LSBaYWJparkgZ28ufC0gSmFrPw0K
|
||||
ezEyNjU5fXsxMjcyOX1C6mR6aWUgZGxhIG5pY2ggYm9naWVtLg0KezEyNzQ2fXsxMjgwMX1BIGpl
|
||||
nGxpIHN0YXRlayBuaWUgZG9sZWNpPw0KezEyODI1fXsxMjg3OH1PbiB6Z2luaWUgZ2R6aWWcIHRh
|
||||
bS4uLg0KezEyODc4fXsxMjkyNX13IHNhbW90bm+cY2kuDQp7MTI5NTR9ezEyOTk1fU5pZSBtb2fq
|
||||
Lg0KezEyOTk1fXsxMzA3OX1NeZxsYbNhbSwgv2UgcG90cmFmaeosIGFsZS4uLnxraWVkeSBqdb8g
|
||||
c2nqIHVyb2R6abMuLi4NCnsxMzA5MX17MTMyMjB9S3J5cHRvbmEgY3pla2EgemFns2FkYS58VG8g
|
||||
ZGxhIG5pZWdvIGplZHluYSBzemFuc2EuDQp7MTMyMjN9ezEzMjk1fUkgZGxhIG5hc3plZ28gbHVk
|
||||
dS4NCnsxMzMwMn17MTMzMjN9TyBjbyBjaG9kemksIEtlZWxleD8NCnsxMzMyM317MTMzODZ9L1Bp
|
||||
6uYgc3RhdGvzdyBib2pvd3ljaHwvbmFkbGF0dWplIHplIHdzY2hvZHUuDQp7MTMzODZ9ezEzNDQz
|
||||
fS9aZXNrYW5vd2FsaSBzeXN0ZW15IG9icm9ubmUgY3l0YWRlbGkuDQp7MTM0NDN9ezEzNTEzfS0g
|
||||
WmGzYWR1auogS29kZXgufC0gWmFjemVrYWouDQp7MTM1NjZ9ezEzNjM1fURhaiBtaSBuYSBuaWVn
|
||||
byBwb3BhdHJ6ZeYuDQp7MTM3MTJ9ezEzNzgxfU5pZSB6b2JhY3rqLHxqYWsgc3Rhd2lhIHBpZXJ3
|
||||
c3plIGtyb2tpLg0KezEzODI3fXsxMzg4OX1OaWUgdXOzeXN66ix8amFrIHd5bWF3aWEgbmFzemUg
|
||||
aW1pb25hLg0KezE0MDA3fXsxNDA5MX1UYW0sIHBvnHLzZCBnd2lhemQuLi4NCnsxNDEyMn17MTQx
|
||||
OTR9YupkemllIL95sy4NCnsxNTU0OH17MTU1ODR9r2VnbmFqLCBzeW51Lg0KezE1NjExfXsxNTY3
|
||||
M31aYWJpZXJ6IHplIHNvYrkgbWFyemVuaWEuDQp7MTY1OTl9ezE2Njc4fU9zdHJ6ZWxh5iBns/N3
|
||||
bmUgd2VqnGNpZS4NCnsxNzA0Mn17MTcxMDl9L0xhZHkgTGFybywgbmFw6mQgZ290b3d5IGRvIHN0
|
||||
YXJ0dS4NCnsxNzEwOX17MTcxNTB9VXJ1Y2hvbSBzaWxuaWtpLg0KezE3MTU3fXsxNzE4NH1HZW5l
|
||||
cmFsZS4NCnsxNzE4Nn17MTcyNzd9WmFyZWplc3Ryb3dhbGmcbXkgb2RwYWxlbmllIHNpbG5pa/N3
|
||||
fHdld265dHJ6IGN5dGFkZWxpLg0KezE3Mjk0fXsxNzMzMn1TdGFydHVquS4NCnsxNzM1Nn17MTc0
|
||||
MTR9T2JzdGF3Y2llIHTqIHBsYXRmb3Jt6i4NCnsxNzcwNn17MTc4NTN9V2llbSwgv2UgdWtyYWSz
|
||||
ZZwgS29kZXgufFp3cvPmIGdvLCBhIGRhcnVq6iBjaSC/eWNpZS4NCnsxNzg3OX17MTc5NDR9VG8g
|
||||
ZHJ1Z2Egc3phbnNhIGRsYSBjYbNlZ28gS3J5cHRvbmEuDQp7MTc5NDZ9ezE4MDExfU5pZSB0eWxr
|
||||
byBkbGEgdHljaCx8a3TzcnljaCB1em5hc3ogemEgZ29kbnljaC4NCnsxODAzNX17MTgxMzh9LSBD
|
||||
b5wgdHkgenJvYmmzP3wtIE1hbXkgZHppZWNrbywgWm9kLg0KezE4MTUwfXsxODE4Nn1DaLNvcGNh
|
||||
Lg0KezE4MTg4fXsxODI2NX1QaWVyd3N6ZSBuYXR1cmFsbmUgdXJvZHplbmllIG9kIHN0dWxlY2ku
|
||||
DQp7MTgyODR9ezE4MzkwfULqZHppZSB3b2xueS58U2FtIHpkZWN5ZHVqZSBvIHN3b2plaiBwcnp5
|
||||
c3qzb5xjaS4NCnsxODQxOH17MTg0NTR9SGVyZXpqYSENCnsxODQ5M317MTg1Mjl9Wm5pc3pjennm
|
||||
IGdvIQ0KezE5ODAyfXsxOTg2NH1Qb3OzdWNoYWogbW5pZSwgTGFybyENCnsxOTg2NH17MTk5NDN9
|
||||
S29kZXggamVzdCBwcnp5c3qzb5xjabkgS3J5cHRvbmEuDQp7MTk5NjB9ezIwMDA4fVByemVyd2lq
|
||||
IHN0YXJ0IQ0KezIwNDc4fXsyMDUyOH1OaWUhDQp7MjEyMzN9ezIxMzYzfVdhc3ogc3luLi4ufERv
|
||||
a7lkIGdvIHd5c7Nhs2GcPw0KezIxNDI1fXsyMTU1MH1NYSBuYSBpbWnqIEthbCwgc3luIEVsYS4N
|
||||
CnsyMTYzNH17MjE3MjJ9SmVzdCBwb3phIHR3b2ltIHphc2nqZ2llbS4NCnsyMTk0NX17MjIwMjB9
|
||||
WmVzdHJ6ZWxp5iB0ZW4gc3RhdGVrLg0KezIyMTc1fXsyMjIxMX0vQ2VsIG5hbWllcnpvbnkuDQp7
|
||||
MjI0OTd9ezIyNTg4fS9SenXmY2llIGJyb/EufC9KZXN0ZZxjaWUgb3RvY3plbmkuDQp7MjI4MjV9
|
||||
ezIyOTM1fS9HZW5lcmFsZSBab2QsfC96YSBtb3JkZXJzdHdvIGkgemRyYWTqLA0KezIyOTQwfXsy
|
||||
MzA0OH0vUmFkYSBza2F6dWplIGNpZWJpZXxpIHBvem9zdGGzeWNoIHJlYmVsaWFudPN3DQp7MjMw
|
||||
NDh9ezIzMTQ5fW5hIDMwMCBjeWtsaSBvZG5vd3kgc29tYXR5Y3puZWouDQp7MjMxNjN9ezIzMjI4
|
||||
fU1hc3ogamFraWWcIG9zdGF0bmllIHOzb3dvPw0KezIzMjc2fXsyMzM2OX1OaWUgemFiaWplY2ll
|
||||
IG5hcyx8v2VieSBuaWUgcG9icnVkemnmIHNvYmllIHK5aywNCnsyMzM2OX17MjM0NTN9emEgdG8g
|
||||
enN5s2FjaWUgbmFzfHcgb3RjaLNh8SBuYSB3aWVjem5vnOYhDQp7MjM0OTJ9ezIzNTc4fUpvci1F
|
||||
bCBzs3Vzem5pZSBva3JlnGxpsyB3YXN8YmFuZLkgZ7N1cGPzdy4NCnsyMzU4MH17MjM2NDB9Q28g
|
||||
ZG8gamVkbmVnbyENCnsyMzY0NX17MjM2NzJ9QSB0eS4uLg0KezIzNzEyfXsyMzc4NH1XaWVyenlz
|
||||
eiwgv2UgdHfzaiBzeW4gamVzdCBiZXpwaWVjem55Pw0KezIzNzk0fXsyMzgyNX1PZG5hamTqIGdv
|
||||
Lg0KezIzODM3fXsyMzkxNn1PZHp5c2thbSB0byx8Y28gbmFtIHphYnJhbGmcY2llIQ0KezIzOTc0
|
||||
fXsyNDAxMH1PZG5hamTqIGdvLg0KezI0MDQzfXsyNDEwMX1PZG5hamTqLCBMYXJvLg0KezI0MTcw
|
||||
fXsyNDIyMX1PZG5hamTqIGdvIQ0KezI2NjU3fXsyNjc0MH0vTGFkeSBMYXJvLHwvcG93aW5uYSBw
|
||||
YW5pIHBvc3p1a2HmIHNjaHJvbmllbmlhLg0KezI2NzUyfXsyNjgxMn1OaWUgbWEgZ2R6aWUgc2nq
|
||||
IHNrcnnmLCBLZWxvci4NCnsyNjg0NH17MjY5MDZ9Sm9yLUVsIG1pYbMgcmFjauouDQp7MjY5NDd9
|
||||
ezI2OTk1fVRvIGtvbmllYy4NCnsyNzI3MH17MjczNjl9TmllY2ggdHfzaiCcd2lhdHxi6mR6aWUg
|
||||
bGVwc3p5LCBLYWwuDQp7Mjk1NDZ9ezI5NjQ0fVV3Yb9haiwgZ7N1cGt1LHxibyB6b3N0YW5pZSB6
|
||||
IGNpZWJpZSBtb2tyYSBwbGFtYSENCnsyOTY5OX17Mjk3OTB9U2u5ZCBvbmkgY2nqIHd5dHJ6YXNu
|
||||
6mxpLCBts29keT8NCnsyOTgwOX17Mjk4NTB9L1phYmV6cGllY3p55iBwb2uzYWQhDQp7Mjk4NTB9
|
||||
ezI5OTMyfU9kZWJyYWxpnG15IHdlendhbmllIG8gcG9tb2N8eiBwbGF0Zm9ybXkgbmEgd3NjaPNk
|
||||
IG9kIG5hcy4NCnsyOTkzMn17Mjk5Nzd9WmFiZXpwaWVjennmIHBva7NhZCENCnszMDA3NX17MzAx
|
||||
MjN9L0plZG5vc3RraSBjeXdpbG5lLCBuaWUgemJsab9h5iBzaeohDQp7MzAxMjN9ezMwMTgzfS9V
|
||||
c3prb2R6b255IGplc3QgamVkZW4geiB6YXdvcvN3LnwvUGxhdGZvcm1hIG1vv2Ugd3lidWNobrnm
|
||||
Lg0KezMwMTgzfXszMDI1M31acm96dW1pYbNlbS58QSBjbyB6IGx1ZJ9taT8NCnszMDI1NX17MzAz
|
||||
NTF9Ly0gTmllIG1harkgc3phbnMufC0gTbNvZHksIHByenluaWWcIG1pIGxvcm5ldGvqLg0KezMw
|
||||
Mzk3fXszMDQ0Mn1Ns29keSENCnszMDYzNH17MzA3MjN9VG8gb3N0YXRuaWEgYnV0bGEhfE5pZSB3
|
||||
eXRyenltYW15IGSzdb9laiENCnszMDk0M317MzA5ODR9L1R1IHN0cmG/IHd5YnJ6Zb9hLg0KezMw
|
||||
OTg0fXszMTA2M30vWnJvYmlteSBqZXN6Y3plIGplZGVuIHByemVsb3R8L2kgd3lub3NpbXkgc2nq
|
||||
IHN0uWQuDQp7MzEwOTR9ezMxMTU0fUN6ZWthamNpZSwgd2lkeuogbHVkemkgbmEgbLlkb3dpc2t1
|
||||
IQ0KezMxNjUxfXszMTcxMX0vRGF3YWogdGVnbyBvc3RhdG5pZWdvLnwvTXVzaW15IHN0YXJ0b3dh
|
||||
5iENCnszMTcxMX17MzE3NzV9V3NrYWt1aiF8Q28gdHkgd3lwcmF3aWFzej8hDQp7MzE4OTV9ezMx
|
||||
OTMxfVN0YXJ0dWplbXkhDQp7MzI4NDV9ezMyOTE0fS9LaWVkeSBLYW5zYXMgc3Rhs28gc2nqIHRl
|
||||
cnl0b3JpdW0uLi4NCnszMjk0OH17MzI5ODF9L0NsYXJrIQ0KezMzMDI5fXszMzA3Mn1Vd2G/YXN6
|
||||
LCBDbGFyaz8NCnszMzE3MX17MzMyNTV9U3B5dGGzYW0gY2nqfG8gcGllcndzenljaCBvc2Fkbmlr
|
||||
83cgdyBLYW5zYXMuDQp7MzM1NjZ9ezMzNjE3fURvYnJ6ZSBzaeogY3p1amVzeiwgQ2xhcms/DQp7
|
||||
MzM3ODl9ezMzODIzfUNsYXJrIQ0KezMzOTY5fXszNDAwM31DbGFyayENCnszNDA3NX17MzQxNjN9
|
||||
LSBXeWpknywgQ2xhcmshfC0gWm9zdGF3Y2llIG1uaWUuDQp7MzQxNzN9ezM0MjE5fVdlendhs2Ft
|
||||
IHR3b2q5IG1hdGvqLg0KezM0MzUwfXszNDQyMH1KZXN0ZW0hfENsYXJrLCBjbyBzaeogc3Rhs28s
|
||||
IHNrYXJiaWU/DQp7MzQ0ODV9ezM0NTQyfS8tIE90d29yenlzeiBkcnp3aT98Ly0gQ28gbXUgb2Ri
|
||||
abNvPw0KezM0NTQyfXszNDU4NX0vLSBUbyBkeml3YWsufC8tIE1hemdhai4NCnszNDU4OH17MzQ2
|
||||
NDV9L1JvZHppY2UgbmllIHBvendhbGFquSBtdXwvYmF3aeYgc2nqIHogaW5ueW1pIGR6aWXmbWku
|
||||
DQp7MzQ2NDh9ezM0Njg0fS9XaWVtLg0KezM0Njg2fXszNDc4OX1Ta2FyYmllISBKYWsgbWFtIGNp
|
||||
IHBvbfNjLHxza29ybyBtbmllIG5pZSB3cHWcY2lzej8NCnszNDc5NH17MzQ4NTZ9jHdpYXQgamVz
|
||||
dCB6Ynl0IGR1v3ksIG1hbW8uDQp7MzQ4NTZ9ezM0OTA0fS9UbyBnbyB6bW5pZWpzei4NCnszNDk1
|
||||
MH17MzQ5OTh9UG8gcHJvc3R1Li4uDQp7MzUwNDN9ezM1MTAxfXNrdXAgc2nqIG5hIG1vaW0gZ7Nv
|
||||
c2llLg0KezM1MTMyfXszNTE5NH0vVWRhd2FqLCC/ZSB0byB3eXNwYS4NCnszNTE5NH17MzUyNDd9
|
||||
L0dkemllnCBuYSBvY2VhbmllLg0KezM1MjY2fXszNTMxOX1XaWR6aXN6IGq5Pw0KezM1Mzg0fXsz
|
||||
NTQyMn1XaWR66i4NCnszNTQ0MX17MzU0OTR9ULN58SB3IGplaiBraWVydW5rdSwga29jaGFuaWUu
|
||||
DQp7MzU4MDN9ezM1ODY2fUNvIG1pIGplc3QsIG1hbW8/DQp7MzU5MTh9ezM1OTY2fUNsYXJrLg0K
|
||||
ezM3OTY4fXszODA0OH1IZWosIHBpZXJkb7NvIXxPZ2y5ZGGzZZwgbWVjej8NCnszODA2NH17Mzgx
|
||||
MzZ9LSBab3N0YXcgZ28sIFBldGUufC0gQSB0eSBjbz8gSmVnbyBkemlld2N6eW5hPw0KezM4MTM5
|
||||
fXszODE5MX1DaGPqIHVzs3lzemXmLHxjbyBtYSBkbyBwb3dpZWR6ZW5pYS4NCnszODIyNX17Mzgy
|
||||
NzB9Tm8gc7N1Y2hhbSwgY2lvs2t1Lg0KezQwNjgyfXs0MDgxOX0vTfNqIHN5biBiebMgdyBhdXRv
|
||||
YnVzaWUufC9XaWR6aWGzLCBjbyB6cm9iabMgQ2xhcmsuDQp7NDA4MjZ9ezQwOTE1fVdpZW0ufFRv
|
||||
LCBjbyBtdSBzaeogd3lkYXdhs28uLi4NCns0MDkxN317NDA5ODl9VG8gYnmzYSBy6mthIGJvc2th
|
||||
Lg0KezQwOTg5fXs0MTAzN31UbyBiebNhIGJvv2Egb3BhdHJ6bm+c5i4NCns0MTE0MH17NDEyMjd9
|
||||
LSBDaHliYSB0cm9jaOogd3lvbGJyenltaWFzei58LSBXY2FsZSBuaWUuDQp7NDEyNDF9ezQxMzAx
|
||||
fUxhbmEgaSBGb3JueSB0Zb8gdG8gd2lkemllbGkuDQp7NDEzMDF9ezQxMzkyfS9OaWUgcGllcndz
|
||||
enkgcmF6fC9DbGFyayB6cm9iabMgY2+cIHRha2llZ28uDQp7NDE3NTJ9ezQxODkxfS0gSmEgdHls
|
||||
a28gY2hjaWGzZW0gcG9t82MufC0gV2llbSwgYWxlIGp1vyBvIHR5bSByb3ptYXdpYWxpnG15Lg0K
|
||||
ezQxOTE3fXs0MTk4N31Sb3ptYXdpYWxpnG15IG8gdHltLnxNdXNpc3ouLi4NCns0MTk5Mn17NDIw
|
||||
ODN9TXVzaXN6IHphY2hvd2HmfHN382ogZGFyIHcgdGFqZW1uaWN5Lg0KezQyMDkwfXs0MjE3MX1N
|
||||
aWGzZW0gcG96d29saeYgaW0gdW1yemXmPw0KezQyMjk2fXs0MjM0NH1Nb79lLg0KezQyMzgyfXs0
|
||||
MjQ3OH1UdSBjaG9kemkgbyBjb5wgd2nqY2VqfG5pvyC/eWNpZSBuYXN6ZSBpIG5hc3p5Y2ggYmxp
|
||||
c2tpY2guDQp7NDI1NDN9ezQyNTg5fUtpZWR5IJx3aWF0Li4uDQp7NDI1OTh9ezQyNjk5fUtpZWR5
|
||||
IJx3aWF0IGRvd2llIHNp6iwgY28gcG90cmFmaXN6LHx0byB3c3p5c3RrbyB6bWllbmkuDQp7NDI3
|
||||
MDF9ezQyNzQ5fU5hc3q5IHdpYXLqLCBwb2dsuWR5Li4uDQp7NDI3Njh9ezQyODQwfXpuYWN6ZW5p
|
||||
ZSBjerNvd2llY3pl8XN0d2EsIHdzenlzdGtvLg0KezQyODQzfXs0Mjk2M31XaWR6aWGzZZwgcmVh
|
||||
a2Nq6iBtYW15IFBldGUnYS58T25hIHNp6iBjaWViaWUgYm9pLg0KezQzMDAxfXs0MzA0NH1EbGFj
|
||||
emVnbz8NCns0MzA2MX17NDMxMzV9THVkemllIGJvarkgc2nqIHRlZ28sfGN6ZWdvIG5pZSByb3p1
|
||||
bWllarkuDQp7NDMxMzh9ezQzMTg4fU1hIHJhY2rqPw0KezQzMjA1fXs0MzI4MX1UbyBkYXIgb2Qg
|
||||
Qm9nYT8NCns0MzI5MX17NDMzMjB9UG93aWVkei4NCns0MzY4NH17NDM3MzB9VyB0eW0gY2nqIHpu
|
||||
YWxln2xpnG15Lg0KezQzNzczfXs0Mzg0N31CeWxpnG15IHBld25pLHy/ZSB6amF3aSBzaeoga3Rv
|
||||
nCB6IHJ6uWR1Lg0KezQzODUwfXs0Mzg5OH1BbGUgbmlrdCBuaWUgcHJ6eXN6ZWSzLg0KezQ0MjM4
|
||||
fXs0NDMyMH1UbyB6bmFsYXqzZW0gcHJ6eSB0b2JpZS4NCns0NDM0Nn17NDQ0MTN9WmFicmGzZW0g
|
||||
dG8gZG8gbWV0YWx1cmdhfHcgS2Fuc2FzIFN0YXRlLg0KezQ0NDE2fXs0NDQ4NX1Qb3dpZWR6aWGz
|
||||
LCC/ZSB6IGN6ZWdva29sd2lla3x0byBiebNvIHpyb2Jpb25lLi4uDQp7NDQ0OTd9ezQ0NTY5fXRv
|
||||
IG5pZSBtYSB0ZWdvfHcgdGFibGljeSBwaWVyd2lhc3Rr83cuDQp7NDQ2MTl9ezQ0NzE1fUlubnlt
|
||||
aSBzs293eSwgdG8gbmllIHBvY2hvZHppfHogbmFzemVnbyCcd2lhdGEuDQp7NDQ3NTF9ezQ0ODIx
|
||||
fVR5IHLzd25pZb8uDQp7NDQ4NDd9ezQ0OTY3fUplc3RlnCBvZHBvd2llZHppuSBuYSBweXRhbmll
|
||||
OnwiQ3p5IGplc3RlnG15IHNhbWkgd2Ugd3N6ZWNonHdpZWNpZT8iLg0KezQ1MDAxfXs0NTA4OX0t
|
||||
IEFsZSBqYSBuaWUgY2hj6i58LSBXY2FsZSBjaeogbmllIHdpbmnqLg0KezQ1MDkyfXs0NTE4M31U
|
||||
byBiebNvYnkgb2dyb21uZSBicnplbWnqIGRsYSBrYb9kZWdvLHxhbGUgdHkgbmllIGplc3RlnCB6
|
||||
d3lrs3ltIGN6s293aWVraWVtLg0KezQ1MTgzfXs0NTI1MH1XaWVyeuosIL9lLi4uDQp7NDUyNzZ9
|
||||
ezQ1MzM5fXd5c7Nhbm8gY2nqIHR1fHogamFraWVnb5wgcG93b2R1Lg0KezQ1MzQ4fXs0NTQyMH1U
|
||||
ZSB3c3p5c3RraWUgem1pYW55LHxrdPNyeWNoIGRvnHdpYWRjemFzeiwNCns0NTQyMH17NDU1NDB9
|
||||
a2llZHmcIG9rYb+5IHNp6iBis29nb3OzYXdpZfFzdHdlbS58Qupkemllc3ogbXVzaWGzIHd0ZWR5
|
||||
IGRva29uYeYgd3lib3J1Lg0KezQ1NTUwfXs0NTY0OH1Denkgc3RhbrnmIGR1bW5pZXxwcnplZCBs
|
||||
dWR6a7kgcmFzuSwgY3p5IHRlvyBuaWUuDQp7NDU2ODF9ezQ1NzUzfU5pZSBt82ezYnltIHBvIHBy
|
||||
b3N0dXx1ZGF3YeYgdHdvamVnbyBzeW5hPw0KezQ1NzY4fXs0NTgyMX1KZXN0ZZwgbW9pbSBzeW5l
|
||||
bS4NCns0NTkxOX17NDYwMTB9QWxlIGdkemllnCB0YW18bWFzeiB0Zb8gZHJ1Z2llZ28gb2pjYSwN
|
||||
Cns0NjAxMH17NDYwNjd9a3TzcnkgZGGzIGNpIGlubmUgaW1p6i4NCns0NjEzNX17NDYyMTF9UHJ6
|
||||
eXOzYbMgY2nqIHR1fHogamFraWVnb5wgcG93b2R1Lg0KezQ2MjUwfXs0NjMwN31JIGNob+ZieSBt
|
||||
aWGzbyBjaSB0b3x6YWq55iBjYbNlIL95Y2llLA0KezQ2MzA3fXs0NjM4NH1tdXNpc3ogcG96bmHm
|
||||
IHRlbiBwb3fzZC4NCns0Njc2OH17NDY4NTZ9LSBUbyBuaWUgbWlhs3kgYnnmIOZ3aWN6ZW5pYT98
|
||||
LSBabWlhbmEgcGxhbvN3Lg0KezQ2ODU2fXs0NjkzMX1abmFsZZ9saSBjb5wgZHppd25lZ298bmEg
|
||||
V3lzcGllIEVsbGVzbWVyZSdhLg0KezQ2OTMxfXs0NzAwNX0tIENhs3kgdHlkemll8SByb2JpuSB0
|
||||
YW0genJ6dXR5LnwtIERvIHRlaiBwaXBpZPN3eT8NCns0NzAwNX17NDcwNTN9TmllerN5IG9kamF6
|
||||
ZCwgY28/DQp7NDcwNTN9ezQ3MTA2fUFtZXJ5a2FuaWUgdGW/IHByenlqZWNoYWxpLnxDYbNhIG1h
|
||||
c2EuDQp7NDcxMDZ9ezQ3MTc4fU5henl3YWq5IHRvIGFub21hbGm5LHxjb2tvbHdpZWsgdG8gem5h
|
||||
Y3p5Lg0KezQ3MTgwfXs0NzI2MX0tIE9kd2FsIHNp6iwgbfN3aeogcG93Yb9uaWUufC0gTm8gY28g
|
||||
dHksIENocmlzc3kuDQp7NDcyNjF9ezQ3MzA3fS0gU3BhZGFqIXwtIFVzablkny4NCns0NzMwN317
|
||||
NDc0MDN9LSBQdXN6Y3phaiF8LSBab3N0YXcgarkuDQp7NDc0Njh9ezQ3NTIwfUJvIGNvLCB0d2Fy
|
||||
ZHppZWx1Pw0KezQ3NTIwfXs0NzYwN31CbyBi6mTqIG11c2lhsyBwb3Byb3Np5ix8v2VieZwgd3lz
|
||||
emVksy4NCns0NzYzMX17NDc3MzF9V3lqZOosIGtpZWR5IGLqZOogbWlhs3xuYSB0byBvY2hvdOou
|
||||
DQp7NDc5NDJ9ezQ3OTk1fVphY3p5bmEgc2nqLg0KezQ4MTU2fXs0ODIzM31OaWUgd2FydG8uDQp7
|
||||
NDgzOTZ9ezQ4NDk5fU5pZSB6YXBvbW5paiBuYXBpd2t1LCBkdXBrdS4NCns0OTc1N317NDk3ODR9
|
||||
RHpp6mtpLg0KezQ5ODEwfXs0OTgzOX1DemWc5i4NCns0OTg1MX17NDk4OTl9V2l0YW0sIHBhbm5v
|
||||
IExhbmUuDQp7NDk5MTF9ezUwMDIxfS0gSmVkIEV1YmFua3MsICJBcmN0aWMgQ2FyZ28iLnwtIERh
|
||||
bGVrbyBkbyBiYXp5Pw0KezUwMDIxfXs1MDA3Nn1PYvN6IGplc3QgemEgd3puaWVzaWVuaWVtLnxa
|
||||
YXByb3dhZHrqIHBhbmm5Lg0KezUwMDc2fXs1MDA5OH2Md2lldG5pZS4NCns1MDA5OH17NTAxNTN9
|
||||
Sm9lIHphYmllcnplIHBhbmkgYmFnYb9lLg0KezUwMTU4fXs1MDI3M30tIFBvbfO/IGplai58LSBP
|
||||
c3Ryb79uaWUsIHO5IGNp6r9raWUuDQp7NTAzMTR9ezUwNDMxfVN6Y3plcnplIG3zd2m5Yyx8bmll
|
||||
IHByemVwYWRhbSB6YSAiVGhlIERhaWx5IFBsYW5ldCIuDQp7NTA0Mzh9ezUwNTI1fUFsZSB0ZW4g
|
||||
cmVwb3J0Yb8sfGt083J5IHpyb2Jps2EgcGFuaSB6IDEuIGR5d2l6arkuLi4NCns1MDUzOX17NTA1
|
||||
ODd9QnmzZW0gcG9kIHdyYb9lbmllbS4NCns1MDU4OX17NTA3MDd9TmFqbGVwaWVqIHBpc3plIG1p
|
||||
IHNp6nx3IGthbWl6ZWxjZSBrdWxvb2Rwb3JuZWouDQp7NTA4MjJ9ezUwODQ0fS9QYW5ubyBMYW5l
|
||||
Lg0KezUwODQ4fXs1MDk0NH1QdbNrb3duaWsgSGFyZHkgeiBkb3fzZHp0d2EsfGEgdG8gZHIgRW1p
|
||||
bCBIYW1pbHRvbi4NCns1MDk0NH17NTEwMjN9U3BvZHppZXdhbGmcbXkgc2nqIHBhbml8ZG9waWVy
|
||||
byBqdXRyby4NCns1MTAyM317NTEwOTV9V7NhnG5pZSBkbGF0ZWdvIHByenlsZWNpYbNhbSBkemlz
|
||||
aWFqLg0KezUxMDk4fXs1MTE2Mn1XeWphnG5pam15IHNvYmllIGplZG5vLg0KezUxMTYyfXs1MTIy
|
||||
NX1KZXN0ZW0gdHUgdHlsa28gZGxhdGVnbyx8v2UgdG8gdGVyZW55IEthbmFkeSwNCns1MTIyN317
|
||||
NTEzMTZ9YSBzuWQgYXBlbGFjeWpueSBvZHJ6dWNps3x3YXN6IHduaW9zZWsgbyB6YWthemFuaWUg
|
||||
bWkgd3N06nB1Lg0KezUxMzI1fXs1MTQ0NX1Ta29ybyBtaWVyemVuaWUgZml1dPN3IG1hbXkgemEg
|
||||
c29iuSx8bW+/ZWNpZSBtaSBwb2themHmLCBjbyB6bmFsZZ9saZxjaWU/DQp7NTE0OTN9ezUxNTgy
|
||||
fVNhdGVsaXR5IE5BU0Egd3lrcnmzeSBhbm9tYWxp6i4NCns1MTU4Mn17NTE2NzF9ULN5dHkgbG9k
|
||||
b3dlIGJsb2t1arkgc3lnbmGzLHxhbGUgeiBwZXdub5xjabkgY2+cIHRhbSBqZXN0Lg0KezUxNjcx
|
||||
fXs1MTc1N30tIE1vv2UgcmFkemllY2thILPzZJ8gcG9kd29kbmE/fC0gV7l0cGxpd2UuIFRvIG1h
|
||||
IDMwMCBtZXRy83cuDQp7NTE3NTl9ezUxODI3fU8gd2llbGUgd2nqa3N6ZXxuab8gb2ty6nR5IHog
|
||||
dGFtdHljaCBjemFz83cuDQp7NTE4MzZ9ezUxODg2fUEgdGVyYXogbmFqZHppd25pZWpzemUuDQp7
|
||||
NTE4OTh9ezUyMDI2fUzzZCwga3Tzcnkgb3RhY3phIHRlbiBvYmlla3QsfG1hIHByYXdpZSAyMCB0
|
||||
eXNp6mN5IGxhdC4NCns1MjA3Nn17NTIxMTR9L1Bhbm5vIExhbmUhDQp7NTIxMjZ9ezUyMTYyfVBy
|
||||
b3N66iBzaeogbmllIHdhs+pzYeYuDQp7NTIxNjJ9ezUyMjI3fU5vY7kgdGVtcGVyYXR1cmEgc3Bh
|
||||
ZGEgdHUgZG8gLTQwLg0KezUyMjM3fXs1MjI5Nn1OaWUgem5hbGWfbGlieZxteSBwYW5pfGG/IGRv
|
||||
IHdpb3NueS4NCns1MjM3MX17NTI0MTJ9UHJvc3rqIGJhcmR6by4NCns1MjQ4MX17NTI1Nzl9LSBB
|
||||
IGplnGxpIGLqZOogY2hjaWGzYSBzaXVzaXU/fC0gVyBruWNpZSBzdG9pIHdpYWRyby4NCns1MzQw
|
||||
N317NTM0Njl9QSB0eSBkb2u5ZCBzaeogd3licmGzZZw/DQp7NTg4Nzh9ezU4OTU5fUp1vyBkb2Jy
|
||||
emUuDQp7NTkzMDB9ezU5MzU1fU1hc3oga3J3b3RvayB3ZXdu6nRyem55Lg0KezU5MzU1fXs1OTQy
|
||||
MH1KZZxsaSBnbyBuaWUgemF0YW11auouLi4NCns1OTQ1Nn17NTk1Mzd9VW1pZW0gcm9iaeYgcnpl
|
||||
Y3p5LHxrdPNyeWNoIGlubmkgbmllIHBvdHJhZmm5Lg0KezU5NTM3fXs1OTU4NX1Ucnp5bWFqIG1u
|
||||
aWUgemEgcupr6i4NCns1OTU4NX17NTk2MzF9QupkemllIGJvbGGzby4NCns2MTEwNX17NjExOTl9
|
||||
L1RvLCBjbyBwdbNrb3duaWsgSGFyZHkgaSBqZWdvIHplc3Dzs3wvdXpuYWxpIHphIHJhZHppZWNr
|
||||
uSCz82SfIHBvZHdvZG65LA0KezYxMTk5fXs2MTI2MX0vYnmzbyB6ZGVjeWRvd2FuaWUgYmFyZHpp
|
||||
ZWogZWd6b3R5Y3puZS4NCns2MTI2OH17NjEzMjh9L0FuYWxpemEgaXpvdG9wb3dhfC9sb2R1IHdv
|
||||
a/OzIG9iaWVrdHUgd3lrYXphs2EsDQp7NjEzMzF9ezYxNDQ4fS+/ZSBiebMgb24gdyBuaW0gdXdp
|
||||
6nppb255fC9vZCAxOCB0eXNp6mN5IGxhdC4NCns2MTQ1OH17NjE1NTR9L0NvIGRvIG1vamVnbyB3
|
||||
eWJhd2N5LHwvem5pa265syB3cmF6IHogb2Rsb3RlbSBvYmlla3R1Lg0KezYxNTY4fXs2MTY4NX0v
|
||||
T2themGzbyBzaeosfC+/ZSBqZWdvIHRvv3NhbW+c5iBiebNhIGZhs3N6eXdhLg0KezYxNjg4fXs2
|
||||
MTgwMX0vSmVnbyBpc3RuaWVuaWV8L3JvZHppIHByemVyYb9harljZSBweXRhbmlhLA0KezYxODAx
|
||||
fXs2MTg2MH0vamVkbmFrIHdpZW0sIGNvIHdpZHppYbNhbS4NCns2MTg3N317NjE5OTV9RG9zemxp
|
||||
IGRvIHduaW9za3UsfGm/IG9iaWVrdCBpIGplZ28gcGFzYb9lcg0KezYxOTk3fXs2MjA0N31uaWUg
|
||||
cG9jaG9kerkgeiBaaWVtaS4NCns2MjA4OH17NjIxNTV9TmllIHd5ZHJ1a3Vq6iB0ZWdvLnxUbyBt
|
||||
b2e5IGJ55iB0eWxrbyB0d29qZSB1cm9qZW5pYS4NCns2MjE1OH17NjIyMzB9Q3l3aWxuaSBwcmFj
|
||||
b3duaWN5fHBvdHdpZXJkemlsaSBtb2q5IHdlcnNq6i4NCns2MjIzMH17NjIyOTJ9UGVudGFnb24g
|
||||
emFwcnplY3phIGlzdG5pZW5pdSBzdGF0a3UuDQp7NjIyOTR9ezYyMzg4fUJvIFBlbnRhZ29uIG9k
|
||||
IHRlZ28gamVzdCx8v2VieSB6YXByemVjemHmLg0KezYyNDAwfXs2MjQ4NH1UbyBqYSwgUGVycnku
|
||||
fERvc3Rhs2FtIFB1bGl0emVyYS4NCns2MjQ4NH17NjI1NDR9LSBXaepjIHphY2hvd3VqIHNp6iBz
|
||||
dG9zb3duaWUufC0gRHJ1a3VqZXN6IGFsYm8gb2RjaG9keuouDQp7NjI1NDZ9ezYyNjIxfU5pZSBt
|
||||
b79lc3oufFdpub9lIGNp6iB1bW93YS4NCns2MjY1NH17NjI3Njd9TmllIHd5cHVzemN66iBoaXN0
|
||||
b3JpaXxvIG9iY3ljaCB3nHLzZCBuYXMuDQp7NjI5MDh9ezYyOTU5fU5pYyB6IHRlZ28uDQp7NjMw
|
||||
MDl9ezYzMDY2fVN6a29ja2EgZGxhIHBhbmkuDQp7NjMwNzZ9ezYzMTIyfVd5c3mzYW0gY2kgb3J5
|
||||
Z2luYbMuDQp7NjMxMjJ9ezYzMjE1fU5hY3plbG55IGdvIG5pZSB3eWRydWt1amUsfGFsZSBnZHli
|
||||
eSB0YWsgd3ljaWVrsyBkbyBzaWVjaS4uLg0KezYzMjIyfXs2MzMwNn1DenkgbmllIG9waXNhs2Gc
|
||||
IGtpZWR5nHxtb2plaiBzdHJvbnkgc7Nvd2FtaToNCns2MzMxM317NjM0MDl9LSAib5xsaXpns3kg
|
||||
cmFrIG9is3VkeSI/fC0gTmFkYWwgdGFrIHV3Yb9hbSwgV29vZGJ1cm4uDQp7NjM0MTJ9ezYzNDg0
|
||||
fS0gQWxlIHRvIG11c2kgd3lqnOYgbmEgamF3LnwtIERsYWN6ZWdvPw0KezYzNDkxfXs2MzU5Mn1O
|
||||
aWVjaCBt82ogdGFqZW1uaWN6eSB3eWJhd2ljaWVsIHdpZSx8v2Ugem5hbSBwcmF3ZOouDQp7NjM5
|
||||
MTV9ezY0MDMwfS9EaWFnbm9zdHlrYSB6YWtv8WN6b25hLnwvVG+/c2Ftb5zmIHBvdHdpZXJkem9u
|
||||
YS4NCns2NDA0MH17NjQxMTl9L1dzenlzdGtpZSBzeXN0ZW15IHNwcmF3bmUuDQp7NjQzOTV9ezY0
|
||||
NTA1fVdpZHppZeYgY2nqfGpha28gZG9yb3OzZWdvIG3qv2N6eXpu6i4NCns2NDU0Nn17NjQ2NTZ9
|
||||
LSBHZHlieSB0eWxrbyBMYXJhIG1vZ7NhIHRvIHpvYmFjennmLnwtIEtpbSBqZXN0ZZw/DQp7NjQ2
|
||||
NjZ9ezY0NzMwfUplc3RlbSB0d29pbSBvamNlbSwgS2FsLg0KezY0NzQyfXs2NDgzOH1BIHezYZxj
|
||||
aXdpZSBqZWdvIGNpZW5pZW0sIJx3aWFkb21vnGNpuS4NCns2NDg4NH17NjQ5NzB9TmF6eXdhbSBz
|
||||
aeogSm9yLUVsLg0KezY1MDI1fXs2NTA4MH1BIEthbD8NCns2NTEzNn17NjUxNzR9VG8gbW9qZSBp
|
||||
bWnqLg0KezY1MTg4fXs2NTI0OH1LYWwtRWwsIHcgcnplY3p5IHNhbWVqLg0KezY1Mjg3fXs2NTM0
|
||||
OX1NYW0gdHlsZSBweXRh8S4NCns2NTM5N317NjU1MzZ9U2u5ZCBwb2Nob2R66j98RGxhY3plZ28g
|
||||
bW5pZSB0dSB3eXOzYbNlnD8NCns2NTUzOH17NjU1ODJ9UG9jaG9kemlzeiB6IEtyeXB0b25hLg0K
|
||||
ezY1NjQ0fXs2NTc2OX1aZSCcd2lhdGEgbyBiYXJkemllaiBzdXJvd3ltfJxyb2Rvd2lza3Ugbmm/
|
||||
IHppZW1za2llLg0KezY1ODM2fXs2NjAxM31EYXdubyB0ZW11LCB3IGVyemUgZWtzcGFuc2ppLHxu
|
||||
YXN6YSByYXNhIHBvbGVjaWGzYSBrdSBnd2lhemRvbSwNCns2NjAyM317NjYwOTJ9dyBwb3N6dWtp
|
||||
d2FuaXUgbm93eWNoIHNpZWRsaXNrLg0KezY2MTE5fXs2NjI0Nn1UZW4gc3RhdGVrIGJ5syBqZWRu
|
||||
eW0geiB3aWVsdXx3eXOzYW55Y2ggdyBiZXprcmVzLg0KezY2MjY1fXs2NjMyN31TdHdvcnp5bGmc
|
||||
bXkgcGxhY/N3a2l8bmEgaW5ueWNoIHBsYW5ldGFjaCwNCns2NjMyN317NjY0MzV9db95d2FquWMg
|
||||
bWFjaGluLHxieSBkb3N0b3Nvd2HmIJxyb2Rvd2lza28uDQp7NjY0Njl9ezY2NTk4fVByemV6IHN0
|
||||
byB0eXNp6mN5IGxhdHxuYXN6YSBjeXdpbGl6YWNqYSBiebNhIHcgcm96a3dpY2llLg0KezY2NTk4
|
||||
fXs2NjcyM30tIERva29ueXdhbGmcbXkgY3Vk83cufC0gQ28gc2nqIHN0YbNvPw0KezY2NzY0fXs2
|
||||
Njg1N31Vc3Rhbm93aW9ubyBzenR1Y3puuSBrb250cm9s6iB1cm9kemXxLg0KezY2ODU5fXs2Njk1
|
||||
NX1Qb3J6dWNvbm8gcGxhY/N3a2kgdyBrb3Ntb3NpZS4NCns2Njk1NX17NjcwMTh9V3ljemVycGFs
|
||||
aZxteSBuYXN6ZSB6YXNvYnkgbmF0dXJhbG5lLg0KezY3MDIzfXs2NzE0Mn1Ta3V0a2llbSBiebNh
|
||||
fGRlc3RhYmlsaXphY2phIGq5ZHJhIHBsYW5ldHkuDQp7NjcxODZ9ezY3MzAxfU5hc3ogd29qc2tv
|
||||
d3kgcHJ6eXfzZGNhLHxnZW5lcmGzIFpvZCwNCns2NzMwM317NjczNTh9ZG9rb25hsyB6YW1hY2h1
|
||||
IHN0YW51Li4uDQp7NjczOTd9ezY3NDUyfWFsZSBiebNvIGp1vyB6YSBw859uby4NCns2NzQ4MH17
|
||||
Njc1NTB9UmF6ZW0geiB0d29quSBtYXRruXxwcnpld2lkemllbGmcbXkga2F0YXN0cm9m6g0KezY3
|
||||
NTUwfXs2NzYyNH1pIHBvZGrqbGmcbXkga3Jva2ksfGJ5IHphcGV3bmnmIGNpIHByemV0cndhbmll
|
||||
Lg0KezY3NjU4fXs2NzcxOH1UbyBqZXN0IGtvbW9yYSBuYXJvZHppbi4NCns2NzcxOH17Njc3OTl9
|
||||
V3N6eXNjeSBLcnlwdG9uaWFuaWV8dyB0YWtpZWogc2nqIHBvY3rqbGkuDQp7Njc4MDJ9ezY3ODkz
|
||||
fUthv2RlIGR6aWVja28gbWlhs28gc3Bls25p5nxva3JlnGxvbrkgcm9s6iB3IHNwb7NlY3pl8XN0
|
||||
d2llLg0KezY3OTAwfXs2Nzk5MX1KYWtvIHJvYm90bmlrLCB3b2pvd25payx8cHJ6eXfzZGNhIGkg
|
||||
dGFrIGRhbGVqLg0KezY4MDAzfXs2ODA4N31SYXplbSB6IHR3b2q5IG1hdGu5IHdpZXJ6eWxpnG15
|
||||
LHy/ZSBLcnlwdG9uIHV0cmFjabMgY2+cIGNlbm5lZ28uDQp7NjgwODd9ezY4MTU5fUVsZW1lbnQg
|
||||
d3lib3J1LCBzemFuc3kuDQp7NjgxNTl9ezY4MjY3fUEgamWcbGkgZHppZWNrbyBtYXJ6ebNvLHxi
|
||||
eSB6b3N0YeYga2ltnCBpbm55bSwgbmm/IHphcGxhbm93YW5vPw0KezY4MzEwfXs2ODM5Mn1BIGpl
|
||||
nGxpIG1hcnp5s28gbyB3eb9zenljaCBjZWxhY2g/DQp7NjgzOTR9ezY4NDQyfUJ5s2WcIHVjaWVs
|
||||
ZZxuaWVuaWVtfG5hc3plaiB3aWFyeSwgS2FsLg0KezY4NDQ0fXs2ODUyMX1QaWVyd3N6ZSBuYXR1
|
||||
cmFsbmUgbmFyb2R6aW55fG9kIHdpZWvzdy4NCns2ODUyOH17Njg2MTJ9RGxhdGVnbyBwb5x3aepj
|
||||
aWxpnG15IHdzenlzdGtvLHxieZwgb2NhbGGzLg0KezY4NjIyfXs2ODY3OX1EbGFjemVnbyBuaWUg
|
||||
cG9sZWNpZWxpnGNpZSB6ZSBtbrk/DQp7Njg3Mzl9ezY4Nzc4fU5pZSBtb2dsaZxteS4NCns2ODgx
|
||||
MX17Njg4NzF9TWltbyB0ZWdvLHxqYWsgYmFyZHpvIGNoY2llbGmcbXksDQp7Njg4NzZ9ezY4OTM4
|
||||
fWphayBiYXJkem8gY2nqIGtvY2hhbGmcbXkuLi4NCns2ODkzOH17NjkwNjB9QnlsaZxteSB3eXR3
|
||||
b3JlbSBuaWVwb3dvZHpl8XxuYXN6ZWdvIJx3aWF0YSwgcG9kb2JuaWUgamFrIFpvZC4NCns2OTA2
|
||||
M317NjkxMTF9WndpuXphbmkgemUgc3d5bSBsb3NlbS4NCns2OTExM317NjkxNjR9LSBaYXRlbSB6
|
||||
b3N0YbNlbSBzYW0ufC0gTmllLg0KezY5MjAwfXs2OTI4OH1KZXN0ZZwgbmEgcvN3bml8ZHppZWNr
|
||||
aWVtIFppZW1pIGkgS3J5cHRvbmEuDQp7NjkyOTN9ezY5Mzc1fU1vv2VzeiB1b3NhYmlh5iB0byx8
|
||||
Y28gdyBvYnUgnHdpYXRhY2ggbmFqbGVwc3plLg0KezY5Mzc1fXs2OTQ2M31Nb79lc3ogYnnmIG1h
|
||||
cnplbmllbSx8emEga3TzcmUgb2RkYWxpnG15IHogbWF0a7kgv3ljaWUuDQp7Njk1NzF9ezY5NjUz
|
||||
fVRvIHByYXdkYSwgv2UgbWllc3prYfFjeSBaaWVtaXxy879uabkgc2nqIG9kIG5hcy4NCns2OTY1
|
||||
M317Njk3MTV9QWxlIHdpZXJ66iwgv2UgdG8gZG9icnplLg0KezY5NzE1fXs2OTc4OX1OaWUgcG9w
|
||||
ZbNuabkgdHljaCBzYW15Y2ggYrPqZPN3LHxjbyBteS4NCns2OTc4OX17Njk4NTl9TyBpbGUgaWNo
|
||||
IHBvcHJvd2FkemlzeiwgS2FsLg0KezY5ODczfXs2OTk0OH1PIGlsZSBkYXN6IGltIG5hZHppZWrq
|
||||
Lg0KezcwMDA1fXs3MDA3MH1UbyB3s2GcbmllIG96bmFjemEgdGVuIHN5bWJvbC4NCns3MDA3Mn17
|
||||
NzAxMzl9U3ltYm9sIHJvZHppbnkgRWwgb3puYWN6YSBuYWR6aWVq6i4NCns3MDEzOX17NzAyOTV9
|
||||
TmFkemllamEgdG8gcG9kc3Rhd2EsfGJ5IHcgbHVkemlhY2ggb2RuYWxln+YgZG9icm8uDQp7NzAz
|
||||
Mjl9ezcwNDA4fVRvIHezYZxuaWUgbW+/ZXN6IGltIGRh5i4NCns3MDg1NH17NzA5MDl9L0RsYWN6
|
||||
ZWdvIHRhayBzaeogb2QgbmljaCBy879uaeo/DQp7NzA5MzN9ezcxMDMxfS9JY2ggU7Nv8WNlIGpl
|
||||
c3QgbbNvZHN6ZXwvaSBqYZxuaWVqc3plIG5pvyBuYXN6ZS4NCns3MTAzNn17NzEwOTZ9L1R3b2pl
|
||||
IGtvbfNya2l8L2N6ZXJwabkgeiBuaWVnbyBlbmVyZ2nqLA0KezcxMDk2fXs3MTE4N30vd3ptYWNu
|
||||
aWFquWMgdHdvamUgbWnqnG5pZSx8L3Nr83LqIGkgem15c7N5Lg0KezcxMjA2fXs3MTMzNn0vWmll
|
||||
bXNrYSBncmF3aXRhY2phIGplc3Qgc7NhYnN6YSx8L2EgYXRtb3NmZXJhIGJhcmR6aWVqIG+/eXdj
|
||||
emEuDQp7NzEzMzZ9ezcxNDEzfS9XeXJvc7NlnCBzaWxuaWVqc3p5fC9wb25hZCBtb2plIHd5b2Jy
|
||||
Yb9lbmlhLg0KezcxNDIwfXs3MTU1Nn0vQnkgc2nqIGRvd2llZHppZeYsIGphayBzaWxueSx8L211
|
||||
c2lzeiBzaeogd2Npub8gc3ByYXdkemHmLg0KezcyODA2fXs3MjkxMX0vUG9rYb9lc3ogbWllc3pr
|
||||
YfFjb20gWmllbWkgaWRlYbMsfC9kbyBrdPNyZWdvIGLqZLkgZLm/eeYuDQp7NzI5NDJ9ezczMDU1
|
||||
fS9C6mS5IHBy82Jvd2HmIGNp6iBnb25p5ix8L2LqZLkgc2nqIHBvdHlrYeYsIHVwYWRh5i4NCns3
|
||||
MzA1N317NzMxMDV9L0FsZSB6IGN6YXNlbS4uLg0KezczMTMyfXs3MzIwNH0vZG+zuWN6uSBkbyBj
|
||||
aWViaWUsfC9raWVkeSB3c3RhbmllIHOzb/FjZS4NCns3MzIzMH17NzMzNTl9L1ogY3phc2VtLHwv
|
||||
cG9tb79lc3ogaW0gY3p5bmnmIGN1ZGEuDQp7NzUzMjN9ezc1NDMzfS9KYWsgem5hbGWf5iBrb2dv
|
||||
nCx8L2t0byBjYbNlIL95Y2llIHNp6iB1a3J5d2GzPw0Kezc1NDMzfXs3NTUwOH0vVHJ6ZWJhIHN6
|
||||
dWth5nwvd5xy82QgbWllanNraWNoIGxlZ2VuZC4NCns3NTUxN317NzU1OTZ9L1eccvNkIHpuYWpv
|
||||
bXljaCB6bmFqb21lZ28sfC9rdPNyenkgamFrb2J5IGdvIHdpZHppZWxpLg0Kezc1NjEzfXs3NTY4
|
||||
M30vRGxhIG5pZWt083J5Y2ggYnmzIGFuaW+zZW0gc3Ry879lbS4NCns3NTY4M317NzU3Nzl9L0Rs
|
||||
YSBpbm55Y2ggamVkeW5pZSBkdWNoZW0uDQp7NzU4MjR9ezc1OTQ5fS9JbSBkYWxlaiB3IGN6YXNp
|
||||
ZSx8L3R5bSBiYXJkemllaiB3c3p5c3RrbyB6YWN66rNvIHNp6iB6YXrqYmlh5i4NCns3NTk0OX17
|
||||
NzYwMzd9LSBabmEgcGFuIG1vv2UgUGV0ZSdhIFJvc3NhP3wtIFByYWN1amUgdyBJSG9wLg0Kezc2
|
||||
MDQyfXs3NjA5NX1Q82pkemllIHBhbmkgdyB0YW10eW0ga2llcnVua3UuLi4NCns3NjEwOX17NzYx
|
||||
NTd9UGV0ZSBSb3NzPw0Kezc2MTg0fXs3NjMxM31DaGNpYbNhYnltIHBvcm96bWF3aWHmIG8gYXV0
|
||||
b2J1c2llLHxrdPNyeSB3cGFksyBkbyByemVraS4NCns3NjQ1NX17NzY1MDN9UnVzdHkhDQp7NzY1
|
||||
MTB9ezc2NTQzfVBhbmkgS2VudD8NCns3NjU1NX17NzY2MjV9SmVzdGVtIExvaXMgTGFuZXx6ICJU
|
||||
aGUgRGFpbHkgUGxhbmV0Ii4NCns3NjYzN317NzY2ODV9U3Bva/NqIQ0Kezc2NjkwfXs3Njc3Nn1D
|
||||
aGNpYbNhYnltIHBvcm96bWF3aWHmIG8gcGFuaSBzeW51Lg0Kezc2ODI5fXs3NjkxM31KT05BVEhB
|
||||
TiBLRU5UfFVLT0NIQU5ZIE2lryBJIE9KQ0lFQw0Kezc3MjAzfXs3NzMwNn1XaWVkemlhs2FtLCC/
|
||||
ZSB3IGtv8WN1fG1uaWUgem5hamR6aWVzei4NCns3NzQzM317Nzc0OTB9U2u5ZCBqZXN0ZZw/DQp7
|
||||
Nzc0OTB9ezc3NTQ4fUNoY+ogb3Bvd2llZHppZeYgnHdpYXR1IHR3b2q5IGhpc3RvcmnqLg0Kezc3
|
||||
NTQ4fXs3NzY4Mn0tIEEgamWcbGkgamEgdGVnbyBuaWUgY2hj6j98LSBUbyBuaWV1bmlrbmlvbmUu
|
||||
DQp7Nzc2ODV9ezc3NzU5fUt0b5wgenJvYmkgemRq6mNpZSx8ZG93aWUgc2nqLCBnZHppZSBtaWVz
|
||||
emthc3ouDQp7Nzc3NTl9ezc3Nzk1fVd0ZWR5IHpub3d1IHpuaWtu6i4NCns3Nzc5N317Nzc4NzJ9
|
||||
VWRhs29ieSBjaSBzaeogdG8sfGdkeWJ5nCBwcnplc3RhsyBwb21hZ2HmIGx1ZHppb20sDQp7Nzc4
|
||||
NzR9ezc3OTYwfWFsZSBjenVq6ix8v2UgdG8gbmllIHdjaG9kemkgdyByYWNodWLqLg0Kezc4MDMw
|
||||
fXs3ODA3NX1N82ogb2pjaWVjIHdpZXJ6ebMsDQp7NzgwNzV9ezc4MTU1fb9lIGplnGxpIGx1ZHpp
|
||||
ZSBkb3dpZWR6uSBzaeosfGtpbSBqZXN0ZW0uLi4NCns3ODE4MX17NzgyNDZ9d3lyemVrbrkgc2nq
|
||||
IG1uaWUsIHplIHN0cmFjaHUuDQp7NzgzMDF9ezc4MzUxfS9NYW0ganW/IGRvnOYgdWtyeXdhbmlh
|
||||
IHNp6i4NCns3ODM1MX17Nzg0MDJ9Q2hj6iByb2Jp5iBjb5wgcG+/eXRlY3puZWdvLg0Kezc4NDAy
|
||||
fXs3ODQ3MX1QcmFjYSBuYSBmYXJtaWV8bmllIGplc3QgcG+/eXRlY3puYT8NCns3ODQ3M317Nzg1
|
||||
MDJ9VGVnbyBuaWUgcG93aWVkemlhs2VtLg0Kezc4NTAyfXs3ODU3Mn1OYXN6YSByb2R6aW5hIHBy
|
||||
YWN1amUgbmEgcm9saXxvZCBwaepjaXUgcG9rb2xl8S4NCns3ODU3NH17Nzg2MzR9V2FzemEsIGFs
|
||||
ZSBuaWUgbW9qYS4NCns3ODYzNH17Nzg3MzJ9TmF3ZXQgbmllIGplc3RlnCBtb2ltIG9qY2VtLnxU
|
||||
eSB0eWxrbyBtbmllIHpuYWxherNlnC4NCns3ODczMn17Nzg3NjR9Q2xhcmshDQp7Nzg4MTZ9ezc4
|
||||
ODc0fU5pYyBzaeogbmllIHN0YbNvLg0Kezc4OTAwfXs3ODk2NX1DbGFyayBtYSByYWNq6i4NCns3
|
||||
ODk3MH17NzkwMzJ9TmllIGplc3RlnG15IHR3b2ltaSByb2R6aWNhbWkuDQp7NzkwNDJ9ezc5MTM1
|
||||
fUFsZSBvZCBzYW1lZ28gcG9jerl0a3V8ZG9rs2FkYWxpnG15IHdzemVsa2ljaCBzdGFyYfEuDQp7
|
||||
NzkxMzV9ezc5MjYwfU1vv2UgdG8ganW/IG5pZSB3eXN0YXJjenkuDQp7NzkzNDl9ezc5NDIzfS0g
|
||||
UG9zs3VjaGFqLCB0YXRvLi4ufC0gQ3pla2FqLg0Kezc5OTEyfXs3OTk3N31OYSBlc3Rha2Fk6i4N
|
||||
Cns3OTk5Nn17ODAwNDF9SWSfY2llIG5hIGVzdGFrYWTqIQ0KezgwMDc3fXs4MDEwOX1LcnlqY2ll
|
||||
IHNp6iENCns4MDEyNX17ODAxNzF9SWSfY2llIHphIG5pbSENCns4MDI3Nn17ODAzMDh9VXRrbuqz
|
||||
YSENCns4MDM1MX17ODAzOTJ9WmEgbW65IQ0KezgwNDA2fXs4MDQ4MH1IYW5rIHpvc3RhsyB3IHdv
|
||||
emllIQ0KezgwNTE0fXs4MDU2NH0tIFDzamTqIHBvIG5pZWdvLnwtIE5pZS4NCns4MDU4MX17ODA2
|
||||
Mzh9WmFiaWVyeiBtYW3qIG5hIGVzdGFrYWTqLg0KezgxMzMxfXs4MTM4N30tIEpvbmF0aGFuIXwt
|
||||
IE5pYyBtdSBuaWUgamVzdC4NCns4MTg2OH17ODE5MDd9LSBKb25hdGhhbiF8LSBab3N0YfEsIG1h
|
||||
bW8uDQp7ODI1MjV9ezgyNTY2fS9UYXRvIQ0KezgyNjQ1fXs4MjczNn0vUG96d29sabNlbSB6Z2lu
|
||||
ueYgb2pjdSx8L2JvIG11IHVmYbNlbS4NCns4MjczOX17ODI4Mzl9QnmzIHByemVrb25hbnksfL9l
|
||||
IGJ5s28gemEgd2N6ZZxuaWUuDQp7ODI4NTZ9ezgyOTE2fYx3aWF0IG5pZSBiebMgbmEgbW5pZSBn
|
||||
b3Tzdy4NCns4Mjk1MH17ODMwMTV9QSB0eSBqYWsgdXdhv2Fzej8NCns4MzA5OH17ODMxNTR9TGVw
|
||||
aWVqIHV3Yb9haiwgTG9pcy4NCns4MzE3OH17ODMyMTF9UGVycnkgY2nqIHphYmlqZS4NCns4MzIx
|
||||
Nn17ODMyODN9V2llLCC/ZSB0byB0eSBqZXN0ZZx8YW5vbmltb3d5bSCfcvNks2VtIFdvb2RidXJu
|
||||
YS4NCns4MzI4OH17ODMzMzZ9Um96ZXJ3aWUgY2nqIG5hIHN0cnrqcHkuDQp7ODMzNjB9ezgzMzkz
|
||||
fVBhdHJ6Y2llIG5hIG5puS4NCns4MzQ0NH17ODM1MDh9TmllIHd5ZGGzZW0gbmEgdG8gemV6d29s
|
||||
ZW5pYS4NCns4MzUwOH17ODM1NzN9RGGzYZwgdG8gV29vZGJ1cm5vd2ksfL9lYnkgcHWcY2mzIHRv
|
||||
IHcgSW50ZXJuZWNpZS4NCns4MzU3Nn17ODM2NTV9V3lkYXdjeSC/uWRharksfL9lYnltIGNp6iBw
|
||||
b3p3YbMuDQp7ODM2NTd9ezgzNzE5fUkgdGFrIHRvIHJ6dWNhbS4NCns4MzcyMn17ODM3ODJ9LSBU
|
||||
YWsgcG8gcHJvc3R1P3wtIFezYZxuaWUuDQp7ODM4MDh9ezgzODc1fS0gQSB0d29qZSBwcnplY3p1
|
||||
Y2lhP3wtIE5pZSBzcHJhd2R6abN5IHNp6i4NCns4Mzg3NX17ODM5MDZ9VGEgaGlzdG9yaWEgdG8g
|
||||
bmlld3lwYbMuDQp7ODM5MDl9ezgzOTkzfUEgbW+/ZSBuaWUgYnmzYSB0YWsgY2lla2F3YSx8amFr
|
||||
IHNp6iBzcG9kemlld2GzYZwuDQp7ODQwMTR9ezg0MDkxfUR3YSB0eWdvZG5pZSBiZXpws2F0bmVn
|
||||
byB1cmxvcHUuDQp7ODQwOTF9ezg0MTU4fUplc3pjemUgamVkZW4gdGFraSB3eXNrb2ssfHRvIGNp
|
||||
6iB6d29sbmnqLg0Kezg0MTU4fXs4NDE4MH1Eb2JyemUuDQp7ODQxODV9ezg0Mjc4fVNrb3JvIG1h
|
||||
bSB0d29quSB6Z29k6ix8bmllY2ggYupkuSB0cnp5IHR5Z29kbmllLg0Kezg0MzI0fXs4NDM4NH1X
|
||||
aWVyeuosIL9lIGNvnCB3aWR6aWGzYZwsDQp7ODQzODR9ezg0NDU1fWFsZSBuaWUgdXdpZXJ66ix8
|
||||
v2UgcHJ6ZWN6dWNpZSBjaeogbXlsabNvLg0Kezg0NDU4fXs4NDU2OH1aIGpha2llZ29rb2x3aWVr
|
||||
IHBvd29kdXxwb3J6dWNhc3ogdOogc3ByYXfqLi4uDQp7ODQ1NzF9ezg0NjUwfS0gdXdhv2FtLCC/
|
||||
ZSBwb3N06nB1amVzeiBzs3Vzem5pZS58LSBEbGFjemVnbz8NCns4NDY4Nn17ODQ3ODR9V3lvYnJh
|
||||
v2FzeiBzb2JpZSByZWFrY2rqIGx1ZHppLi4uDQp7ODQ3ODl9ezg0OTA5fWdkeWJ5IGRvd2llZHpp
|
||||
ZWxpIHNp6nxvIGlzdG5pZW5pdSBrb2dvnCB0YWtpZWdvPw0Kezg1MzUwfXs4NTM4OH1CaWVyeiBn
|
||||
byENCns4NTUzNH17ODU1ODB9UG9wYXRyemNpZSB0eWxrbyENCns4NTk4MH17ODYwMzF9QnmzYSB0
|
||||
dSBkemllbm5pa2Fya2EuDQp7ODYwNDN9ezg2MTEyfVNwb2tvam5pZSwgdG8gcHJ6eWphY2nzs2th
|
||||
Lg0Kezg2MTc1fXs4NjIzMn0tIE1hbW8ufC0gQ28/DQp7ODYyNjh9ezg2MzI2fS0gWm5hbGF6s2Vt
|
||||
IGljaC58LSBLb2dvPw0Kezg2MzUyfXs4NjM5NX1Nb2ljaCByb2R6aWPzdy4NCns4NjQxNH17ODY0
|
||||
NTV9TfNqIGx1ZC4NCns4NjQ2N317ODY1NDl9V2llbSwgc2u5ZCBwb2Nob2R66i4NCns4NjYzN317
|
||||
ODY2ODB9VG8gd3NwYW5pYWxlLg0Kezg2NzI2fXs4Njc3NH1CYXJkem8gc2nqIGNpZXN66i4NCns4
|
||||
Njk5NX17ODcwNjl9LSBPIGNvIGNob2R6aT98LSBPIG5pYy4NCns4NzExNH17ODcyMDN9R2R5IGJ5
|
||||
s2WcIG1hbHV0a2ksfGuzYWSzYW0gc2nqIHByenkga2+zeXNjZS4NCns4NzIwM317ODcyNTN9V3Oz
|
||||
dWNoaXdhs2FtIHNp6iB3IHR382ogb2RkZWNoLg0Kezg3MjczfXs4NzMyOH1CebNvIGNpIGNp6r9r
|
||||
by4NCns4NzM0Mn17ODc0MzF9TepjenmzZZwgc2nqLHxhIGphIHNp6iB6YW1hcnR3aWGzYW0uDQp7
|
||||
ODc0MzF9ezg3NTEwfUJhs2GcIHNp6iwgv2Uga3RvnCBwb3puYSBwcmF3ZOouDQp7ODc1MTB9ezg3
|
||||
NjMwfU5pZS58UHJhd2RhIG8gdG9iaWUgamVzdCBjdWRvd25hLg0Kezg3NjM3fXs4NzcxNH1XaWVk
|
||||
emllbGmcbXkgdG8sfGdkeSB0eWxrbyBjaeogdWpyemVsaZxteS4NCns4Nzc3MX17ODc5MDN9V2ll
|
||||
ZHppZWxpnG15LCC/ZSBraWVkeZx8Y2GzeSCcd2lhdCB0byB6cm96dW1pZS4NCns4NzkzMH17ODc5
|
||||
Nzh9UG8gcHJvc3R1hQ0Kezg3OTgwfXs4ODA1NH1ib2rqIHNp6iwgv2UgbWkgY2llYmllIHphYmlv
|
||||
crkuDQp7ODgwOTB9ezg4MTQ4fU5pZ2R6aWUgc2nqIG5pZSB3eWJpZXJhbSwgbWFtby4NCns4ODE5
|
||||
MX17ODgyMzl9T2JpZWN1auouDQp7ODgzNjh9ezg4NTIyfS0gUGFuaWUgZ2VuZXJhbGUufC0gVG8g
|
||||
a29tZXRhPyBBc3Rlcm9pZGE/DQp7ODg1NDN9ezg4NjU0fUtvbWV0eSBuaWUgZG9rb251arkga29y
|
||||
ZWt0eSBrdXJzdS4NCns4ODcwOX17ODg4MjF9Q2hjaWGzZW0sIL9lYnkgcGFuIHRvIHpvYmFjenmz
|
||||
LHx6YW5pbSBrdG+cIHd5d2+zYSBvZ/Nsbm+cd2lhdG93uSBwYW5pa+ouDQp7ODg4NDN9ezg4OTQx
|
||||
fVN0YXRlayBqZXN0IG5hIG9yYmljaWUgb2tvs29rc2nqv3ljb3dlai4NCns4ODk1Nn17ODkwMDF9
|
||||
TmllIHdpYWRvbW8gcG8gY28uDQp7ODkwMTN9ezg5MDkyfVBy82Jvd2FsaZxjaWUga29udGFrdHU/
|
||||
DQp7ODkwOTV9ezg5MTYyfUphayBuYSByYXppZSBuaWUgb2Rwb3dpYWRharkuDQp7ODkyMTB9ezg5
|
||||
MjY1fVRvIHR5bGtvIHByenlwdXN6Y3plbmlhLA0Kezg5Mjc3fXs4OTM5N31hbGUga3Rva29sd2ll
|
||||
ayB0eW0gcHJ6eWxlY2lhsyx8Y2hjZSB3eXdyemXmIG5hIG5hcyB3cmG/ZW5pZS4NCns4OTUzMX17
|
||||
ODk2MDN9S3RvnCB3aWUsfGdkemllIG1hbXkgemFwYXNvd2UgdG9uZXJ5Pw0Kezg5NjAzfXs4OTY2
|
||||
M30tIE8gY28gY2hvZHppP3wtIEplc3QgbmEgd3N6eXN0a2ljaCBrYW5hs2FjaC4NCns4OTY2M317
|
||||
ODk3MTF9TXVzaXN6IHRvIHpvYmFjennmLg0KezkwMzUxfXs5MDM5MH1DbGFyayENCns5MDM5MH17
|
||||
OTA0NDB9SWTqLg0KezkxNTE0fXs5MTU2Mn0vTmllIGplc3RlnGNpZSBzYW1pLg0KezkxNjA1fXs5
|
||||
MTY2M30vTmllLi4uIGplc3QuLi4gc2EuLi4NCns5MTcwM317OTE3Njh9L05pZSBqZXN0ZZxjaWUg
|
||||
c2FtaS4NCns5MjU4M317OTI2NzJ9LSBUbyBpZHppZSBwcnpleiBSU1MufC8tIE5pZSBqZXN0ZZxj
|
||||
aWUgc2FtaS4NCns5MjY4NH17OTI3NDZ9TmEgdGVsZWZvbmllIHRlvyB0byBtYW0uDQp7OTI3ODB9
|
||||
ezkyODQ3fS9KZXN0ZW0gZ2VuZXJhsyBab2QuDQp7OTI4ODF9ezkyOTc0fS9Qcnp5Ynl3YW0geiBv
|
||||
ZGxlZ7NlaiBwbGFuZXR5Lg0KezkyOTgxfXs5MzEwMX0vUHJ6ZWJ5s2VtIGRvIHdhc3wvY2GzeSBv
|
||||
Y2VhbiBnd2lhemQuDQp7OTMxMjV9ezkzMjMzfS9PZCBqYWtpZWdvnCBjemFzdSB3YXN6IJx3aWF0
|
||||
fC9nb5xjaSBuYXN6ZWdvIG9ieXdhdGVsYS4NCns5MzIzNX17OTMzNjV9L6+5ZGFtLCBieZxjaWUg
|
||||
d3lkYWxpIGdvfC9wb2QgbW9quSBwaWVjeuouDQp7OTMzNzd9ezkzNTI4fS9aIG5pZXpuYW55Y2gg
|
||||
cHJ6eWN6eW58L3Bvc3Rhbm93abMgdWtyeeYgcHJ6ZWQgd2FtaSBzd2UgaXN0bmllbmllLg0Kezkz
|
||||
NTUwfXs5MzYzMX0vVWN6eW5pIHdzenlzdGtvLHwvYnkgd3RvcGnmIHNp6iB3IG90b2N6ZW5pZS4N
|
||||
Cns5MzYzMX17OTM2OTZ9L1Vwb2RvYm5pIHNp6iBkbyB3YXMuDQp7OTM2OTZ9ezkzNzU2fS9KZWRu
|
||||
YWsgbmllIGplc3QgamVkbnltIHogd2FzLg0KezkzNzg5fXs5NDAyOX0vSmWcbGkgem5hc3ogbWll
|
||||
anNjZSBqZWdvIHBvYnl0dSx8L2xvcyBaaWVtaSBqZXN0IHcgdHdvaWNoIHLqa2FjaC4NCns5NDA1
|
||||
MX17OTQxMTV9L1OzdWNoYWogbW5pZSwgS2FsLUVsLg0Kezk0MTY4fXs5NDI2OX0vUG9kZGFqIHNp
|
||||
6iB3IGNpuWd1IDI0IGdvZHppbi4uLg0Kezk0MzE3fXs5NDQyNX0vYWxibyBwYXRyeix8L2phayB0
|
||||
ZW4gnHdpYXQgYupkemllIGNpZXJwaWGzLg0Kezk0NzU4fXs5NDgyMH0vTmljIG8gbmltIG5pZSB3
|
||||
aWVteS4NCns5NDgyMH17OTQ5NTB9L0plnGxpIG1hIG5hIHd6Z2zqZHppZSBuYXN6ZSBkb2Jybyx8
|
||||
L3Bvd2luaWVuIG9kZGHmIHNp6iB3IGljaCBy6mNlLg0Kezk0OTUwfXs5NTAzMX0vSmWcbGkgZ28g
|
||||
bmEgdG8gbmllIHN0YeYsfC9tb79lIHBvd2lubmmcbXkgZ28gd3lkYeYuDQp7OTUwMzF9ezk1MTQy
|
||||
fS9Qb3dpbm5pnG15IHNweXRh5iBMb2lzIExhbmUsfC9rdPNyYSB6bmEgamVnbyB0b79zYW1vnOYu
|
||||
DQp7OTUxNDZ9ezk1MjExfS9Ud2llcmR6aSBwYW4sfC+/ZSBMb2lzIExhbmUgd2llLi4uDQp7OTUy
|
||||
MjN9ezk1MzAwfU9nbLlkYXN6IHRvP3xQdXN6Y3pharkgb2Qgc2FtZWdvIHJhbmEuDQp7OTUzMDB9
|
||||
ezk1MzY1fVBpZXJ3c3p5IHJheiBzaeogeiBuaW0gemdhZHphbS58V2lkemlhs2GcIGdvPw0Kezk1
|
||||
MzcyfXs5NTQyOX1OaWUgaSBuaWdkeSBieW0gY2kgbyB0eW18bmllIHBvd2llZHppYbNhLg0Kezk1
|
||||
NDI5fXs5NTUzMH1UbyB6YWdyb79lbmllIGRsYSBjYbNlZ28gnHdpYXRhLg0Kezk1NTQwfXs5NTYy
|
||||
OH0vTmllIGN6YXMgemFzs2FuaWHmIHNp6nwvZHppZW5uaWthcnNruSBldHlruS4NCns5NTYzNX17
|
||||
OTU3NTN9L1RvIHBvd2G/bmEgc3ByYXdhLnwvRkJJIHJ6dWNhIHR1IG9za2Fyv2VuaWFtaSBvIHpk
|
||||
cmFk6i4NCns5NTc1M317OTU3OTl9TXVzeuoga2/xY3p55i4NCns5NjE4MH17OTYyNjR9RkJJLCBy
|
||||
6mNlIGRvIGfzcnkhfFJ6deYgYmFnYb8hDQp7OTY0MjJ9ezk2NTA2fS9PIG5hc3p5Y2ggZ2+cY2lh
|
||||
Y2h8L3dpZW15IG5hIHJhemllIGJhcmR6byBuaWV3aWVsZS4NCns5NjUwOH17OTY2MjF9L1dlZLN1
|
||||
ZyBvcGluaWkgcnq5ZG93eWNoIGVrc3BlcnTzd3wvbmllIHN0YW5vd2m5IHphZ3Jvv2VuaWEsDQp7
|
||||
OTY2MjF9ezk2Njc4fS9taW1vIHqzb3dyb2dpZWdvIHRvbnV8L2ljaCBwcnpla2F6dS4NCns5NjY3
|
||||
OH17OTY3OTF9L1dzenlzY3kgamVkbmFrIHphZGFquSBzb2JpZSBweXRhbmllOnwvS2ltIGplc3Qg
|
||||
S2FsLUVsPw0Kezk2NzkxfXs5Njg5NH0vQ3p5IG5hcHJhd2TqIGlzdG5pZWplP3wvSmFrIG3zZ7Mg
|
||||
dGFrIGSzdWdvIHBvem9zdGF3YeYgdyB1a3J5Y2l1Pw0Kezk3MDA3fXs5NzA1NX1ObyBjaG9knywg
|
||||
S2VudC4NCns5NzE5Nn17OTcyMzd9V2FsY3ohDQp7OTcyNDR9ezk3MjkyfVdzdGF3YWouDQp7OTcz
|
||||
NTB9ezk3MzkzfVRvIHdzenlzdGtvPw0Kezk3NDA3fXs5NzQ1OH1UeWxrbyBuYSB0eWxlIGNp6iBz
|
||||
dGHmPw0Kezk3NDc0fXs5NzUyMH1ObyBkYWxlaiwgS2VudC4NCns5NzU0Mn17OTc1NzV9V2FsY3oh
|
||||
DQp7OTgyNjh9ezk4MzU5fS0gWnJvYmlsaSBjaSBrcnp5d2TqP3wtIFByemVjaWW/IHdpZXN6LCC/
|
||||
ZSBuaWUgbW9nuS4NCns5ODM2OX17OTg0MzF9UHl0YbNlbSwgY3p5IHdzenlzdGtvIGdyYT8NCns5
|
||||
ODQ2MH17OTg1NzB9LSBUYWsgYmFyZHpvIGNoY2lhs2VtIG11IHByenl3YWxp5i58LSBXaWVtLg0K
|
||||
ezk4NTgyfXs5ODY3MX1UZb8gY2hjaWGzZW0sfL9lYnmcIHRvIHpyb2JpsywgYWxlIGNvIHBvdGVt
|
||||
Pw0Kezk4NjczfXs5ODczMX1Qb2N6dbNieZwgc2nqIGxlcGllaj8NCns5ODc3Mn17OTg4ODd9TXVz
|
||||
aXN6IHpkZWN5ZG93YeYsfG5hIGpha2llZ28gY3qzb3dpZWthIHd5cm+cbmllc3ouDQp7OTg4ODd9
|
||||
ezk4OTYxfUJvIHRlbiBjerNvd2llaywgZG9icnkgY3p5IHqzeS4uLg0Kezk5MDA0fXs5OTA3MX1v
|
||||
ZG1pZW5pIJx3aWF0Lg0Kezk5MTg0fXs5OTIzMn0vQ28gY2nqIGdu6mJpPw0Kezk5MzU5fXs5OTQ1
|
||||
NX0tIE5pZSB3aWVtLCBvZCBjemVnbyB6YWN6ueYufC0gT2QgY3plZ28gY2hjZXN6Lg0Kezk5NDkx
|
||||
fXs5OTU2NX1UZW4gc3RhdGVrLCBrdPNyeSBzaeogcG9qYXdpsy4uLg0Kezk5NTcwfXs5OTYzMn1U
|
||||
byBtbmllIHN6dWtharkuDQp7OTk3MjN9ezk5ODM4fS0gV2llc3osIGN6ZWdvIG9kIGNpZWJpZSBj
|
||||
aGO5P3wtIE5pZS4NCns5OTg0MX17OTk5NzN9TmF3ZXQgamWcbGkgc2nqIHBvZGRhbSx8Z2VuZXJh
|
||||
syBab2QgbW+/ZSBuaWUgZG90cnp5bWHmIHOzb3dhLg0Kezk5OTg1fXsxMDAxMDB9SmWcbGkgb2Rk
|
||||
YWq5YyBzaeogdyBpY2ggcupjZXxtb2fqIG9jYWxp5iBaaWVtaeouLi4NCnsxMDAxMTR9ezEwMDE2
|
||||
Mn1jenkgbmllIHBvd2luaWVuZW0gdGVnbyB1Y3p5bmnmPw0KezEwMDE4MX17MTAwMjg3fS0gQ28g
|
||||
cG9kcG93aWFkYSBjaSBpbnR1aWNqYT98LSBab2Rvd2kgbmllIG1vv25hIHVmYeYuDQp7MTAwMzQy
|
||||
fXsxMDA0NzZ9UHJvYmxlbSB3IHR5bS4uLny/ZSBuaWUgcG90cmFmaeogdGW/IHphdWZh5iBsdWR6
|
||||
aW9tLg0KezEwMDY1OH17MTAwNzQ3fUN6YXNhbWkgdHJ6ZWJhIHV3aWVyennmLi4uDQp7MTAwNzcx
|
||||
fXsxMDA4Mjl9YSB6YXVmYW5pZSBwcnp5amR6aWUgeiBjemFzZW0uDQp7MTAxNDAyfXsxMDE0NjR9
|
||||
VWRhs28gY2kgc2nqfHByenljablnbrnmIG5hc3q5IHV3YWfqLg0KezEwMTQ2OX17MTAxNTUwfS0g
|
||||
Q3plZ28gY2hjZXN6P3wtIENoY+ogcm96bWF3aWHmIHogTG9pcyBMYW5lLg0KezEwMTU1OH17MTAx
|
||||
NjA4fVNruWQgcG9teXOzLCC/ZSBqZXN0IHogbmFtaT8NCnsxMDE2MDh9ezEwMTY5NH1OaWUgYmF3
|
||||
bXkgc2nqIHcgY2l1Y2l1YmFia+oufFBvZGRhbSBzaeouDQp7MTAxNjk3fXsxMDE3ODF9UG9kIHdh
|
||||
cnVua2llbSx8v2UgemFnd2FyYW50dWplY2llIGplaiB3b2xub5zmLg0KezEwMTk5Mn17MTAyMDYx
|
||||
fS9EbGFjemVnbyBvZGRhamVzeiBzaeogdyBy6mNlIFpvZGE/DQp7MTAyMDcxfXsxMDIxNTl9T2Rk
|
||||
YWrqIHNp6iB3IHLqY2UgbHVkemtvnGNpLHx0byBy879uaWNhLg0KezEwMjE4Nn17MTAyMjM2fVBv
|
||||
endvbGmzZZwgc2nqIHNrdeYuDQp7MTAyMjQ4fXsxMDIzMzd9SW5hY3plaiBuaWUgd3lnbLlkYbNv
|
||||
YnkgdG8gd2lhcnlnb2RuaWUuDQp7MTAyMzQ0fXsxMDI0NzF9U2tvcm8gcG9jenVsaSBzaeogYmV6
|
||||
cGllY3puaWVqc2ksfHRvIHR5bSBsZXBpZWouDQp7MTAyNTY5fXsxMDI2NjB9Q28gb3puYWN6YSB0
|
||||
YSBsaXRlcmEgIlMiPw0KezEwMjY4N317MTAyNzQ0fVRvIG5pZSBsaXRlcmEuDQp7MTAyNzU2fXsx
|
||||
MDI4MjZ9VyBtb2ltIJx3aWVjaWUgdG8gc3ltYm9sIG5hZHppZWkuDQp7MTAyODM4fXsxMDI5MzR9
|
||||
QSB3IG5hc3p5bSB0byBsaXRlcmEgIlMiLg0KezEwMjk3Mn17MTAzMDQ2fUEgbW+/ZS4uLg0KezEw
|
||||
MzExNn17MTAzMTgxfS0gU3VwZXIuLi58Ly0gV2l0YW0uDQp7MTAzMTk1fXsxMDMyNzd9LSBKZXN0
|
||||
ZW0gZG9rdG9yLi4ufC8tIEVtaWwgSGFtaWx0b24sIHdpZW0uDQp7MTAzMjg0fXsxMDMzMzl9V2lk
|
||||
euogaWRlbnR5ZmlrYXRvcnx3IHBh8XNraWVqIGtpZXN6ZW5pLg0KezEwMzM0MX17MTAzNDEzfUkg
|
||||
bmFwb2N66nRlIG9wYWtvd2FuaWUgZHJvcHPzdy4NCnsxMDM0MjB9ezEwMzUzM30vV2lkeuogdGW/
|
||||
IHphIHdhbWl8L29kZHppYbMgv2+zbmllcnp5IHogcGFyYWxpemF0b3JlbS4NCnsxMDM1MzN9ezEw
|
||||
MzU2N31OaWUgYupkemllIHBvdHJ6ZWJueS4NCnsxMDM1Njd9ezEwMzY1NX1NdXNpbXkgc2nqIGph
|
||||
a2+cIHphYmV6cGllY3p55i4NCnsxMDM2NTV9ezEwMzcxOH1Nb79lIHBhbiBieeYgbm9zaWNpZWxl
|
||||
bXxqYWtpZWdvnCB3aXJ1c2EuDQp7MTAzNzIzfXsxMDM3OTd9r3lq6iB0dSBvZCAzMyBsYXR8aSBq
|
||||
ZXN6Y3plIG5pa29nbyBuaWUgemFyYXpps2VtLg0KezEwMzgwNH17MTAzODk4fUFsYm8gbyB0eW0g
|
||||
bmllIHdpZXN6LnxNYW15IHBvZHN0YXd5IGRvIG9iYXcuDQp7MTAzODk4fXsxMDQwMTd9V3lqYXdp
|
||||
s2WcIHN3b2q5IHRvv3NhbW+c5iBwYW5uaWUgTGFuZS58L0RsYWN6ZWdvIG5pZSB3eWphd2lzeiBq
|
||||
ZWogbmFtPw0KezEwNDA0NH17MTA0MTExfUthcnR5IG5hIHN087MsIGdlbmVyYWxlLg0KezEwNDEy
|
||||
OH17MTA0MTkzfUJvaWNpZSBzaeogbW5pZSx8Ym8gbmllIG1vv2VjaWUgbW5pZSBrb250cm9sb3dh
|
||||
5i4NCnsxMDQxOTN9ezEwNDI2NH1OaWdkeSBuaWUgYupkemllY2llIG1vZ2xpLg0KezEwNDI3Nn17
|
||||
MTA0MzI5fUFsZSB0byBuaWUgb3puYWN6YSx8v2UgamVzdGVtIHdhc3p5bSB3cm9naWVtLg0KezEw
|
||||
NDMzMn17MTA0NDAzfUEga3RvIG5pbSBqZXN0PyBab2Q/DQp7MTA0NDE4fXsxMDQ1MTZ9LSBUZWdv
|
||||
IHezYZxuaWUgc2nqIG9iYXdpYW0ufC0gVGFrIGN6eSBpbmFjemVqLA0KezEwNDUxOX17MTA0NjAw
|
||||
fXd5ZGGzZW0gcm96a2F6LHxieSBjaeogZG8gbmllZ28gZG9wcm93YWR6b25vLg0KezEwNDYwN317
|
||||
MTA0NjcwfU5pZWNoIHBhbiByb2JpIHN3b2plLCBnZW5lcmFsZS4NCnsxMDQ3NzV9ezEwNDg1N30t
|
||||
IER6aeprdWrqLnwtIFphIGNvPw0KezEwNDg3MX17MTA0OTI5fVphIHRvLCC/ZSB3ZSBtbmllIHV3
|
||||
aWVyenmzYZwuDQp7MTA0OTgxfXsxMDUwNDF9SSB0YWsgbmllIG1hIHRvIHpuYWN6ZW5pYS4NCnsx
|
||||
MDUwNTF9ezEwNTA5NH1EbGEgbW5pZSBtYS4NCnsxMDU1ODN9ezEwNTYzM31OYWRsYXR1arkuDQp7
|
||||
MTA1NjMzfXsxMDU2ODF9UG93aW5uYZwganW/IGmc5i4NCnsxMDU3Mjl9ezEwNTc4MH1PZGVqZJ8s
|
||||
IExvaXMuDQp7MTA3NDgyfXsxMDc1OTB9S2FsLUVsLCBqZXN0ZW0gcG9kZG9382RjYSBGYW9yYS1V
|
||||
bC4NCnsxMDc1OTJ9ezEwNzY4OH1XIGltaWVuaXUgZ2VuZXJhs2EgWm9kYXxwcnpla2F6dWrqIGNp
|
||||
IHBvemRyb3dpZW5pYS4NCnsxMDc4MDN9ezEwNzg3NX0tIFBhbiB0dSBkb3dvZHppP3wtIE93c3pl
|
||||
bS4NCnsxMDc4Nzh9ezEwNzk4OH1HZW5lcmGzIFpvZCBjaGNlLHxieSB0YSBrb2JpZXRhIG1pIHRv
|
||||
d2FyenlzenmzYS4NCnsxMDgwMTR9ezEwODEyOX1DaGNpZWxpnGNpZSBvYmNlZ28ufE5pZSBiebNv
|
||||
IG1vd3kgbyBqZWRueW0geiBuYXMuDQp7MTA4MTMyfXsxMDgyMjV9TWFtIHByemVrYXph5iBnZW5l
|
||||
cmGzb3dpLHy/ZSBvZG1hd2lhY2llPw0KezEwODIzMH17MTA4MjkyfU5pZSBvYmNob2R6aSBtbmll
|
||||
LHxjbyBtdSBwcnpla2G/ZXN6Lg0KezEwODM0MH17MTA4Mzk1fVcgcG9yerlka3UuDQp7MTA4NDAz
|
||||
fXsxMDg0NDF9UPNqZOouDQp7MTA5NDYyfXsxMDk1NjF9QXRtb3NmZXJhIG5hIHN0YXRrdXxuaWUg
|
||||
amVzdCBwcnp5c3Rvc293YW5hIGRsYSBsdWR6aS4NCnsxMDk1NjN9ezEwOTY0OX1C6mR6aWVzeiBt
|
||||
dXNpYbNhIHphs2+/eeYgbWFza+ouDQp7MTEwMjUxfXsxMTAyODJ9S2FsLUVsLg0KezExMDMxMX17
|
||||
MTEwNDEyfU5pZSBtYXN6IHBvaupjaWEsfGphayBks3VnbyBjaeogc3p1a2FsaZxteS4NCnsxMTA0
|
||||
MTd9ezExMDQ5Nn0tIFpvZCwgamFrIHJvenVtaWVtLnwtIEdlbmVyYbMgWm9kLCBuYXN6IGRvd/Nk
|
||||
Y2EuDQp7MTEwNDk4fXsxMTA1OTR9VyBwb3J6uWRrdSwgRmFvcmEufE1vv25hIG11IHd5YmFjennm
|
||||
IGJyYWsgbWFuaWVyLg0KezExMDU5OX17MTEwNjQ5fU5pZSB6bmEgbmFzenljaCB6d3ljemFq83cu
|
||||
DQp7MTEwNjUyfXsxMTA3Njd9VG8gY2h3aWxhIG5hIJx3aep0b3dhbmllLHxhIG5pZSBuYSBrs/N0
|
||||
bmllLg0KezExMDg2N317MTEwOTMwfUN6dWrqIHNp6iBkeml3bmllLg0KezExMDk5Mn17MTExMDQw
|
||||
fVOzYWJvIG1pLg0KezExMTA4OH17MTExMTYyfS0gQ28gbXUgamVzdD98LSBPZHJ6dWNhIG5hc3q5
|
||||
IGF0bW9zZmVy6i4NCnsxMTExOTN9ezExMTMwMX1aYWFkYXB0b3dhs2WcIHNp6iBkbyB6aWVtc2tp
|
||||
Y2ggd2FydW5r83csfG5pZSBkbyBuYXN6eWNoLg0KezExMTMwNn17MTExNDA5fS0gUG9t878gbXUu
|
||||
fC0gTmllIG1vZ+ouIE11c2kgc2FtbyBwcnplapzmLg0KezExMTQ1NX17MTExNTAzfVBvbfO/Y2ll
|
||||
IG11IQ0KezExMTUyOX17MTExNTc3fVBvbfO/Y2llIQ0KezExMTgzNn17MTExODcyfVdpdGFqLCBL
|
||||
YWwuDQp7MTExOTIwfXsxMTE5NzN9QSBtb79lIHdvbGlzeiAiQ2xhcmsiPw0KezExMTk4NX17MTEy
|
||||
MDU0fVRha2llIGltaeogY2kgbmFkYWxpLCBjenm/IG5pZT8NCnsxMTIwODV9ezExMjE5Nn1CebNl
|
||||
bSBuYSBLcnlwdG9uaWUgZG9382RjuSBhcm1paSx8YSB0d/NqIG9qY2llYyAtIG5hc3p5bSBuYWp3
|
||||
aeprc3p5bSB1Y3pvbnltLg0KezExMjE5Nn17MTEyMjg0fVpnYWR6YWxpnG15IHNp6iBjbyBkbyB0
|
||||
ZWdvLHy/ZSBLcnlwdG9uIHVtaWVyYS4NCnsxMTIyODl9ezExMjQyMX1XIHphbWlhbiB6YSBwcvNi
|
||||
6iBvY2FsZW5pYXxuYXN6ZWogY3l3aWxpemFjamkgaSBwbGFuZXR5LA0KezExMjQzMX17MTEyNTM0
|
||||
fXdyYXogeiBtb2ltaSBvZmljZXJhbWl8em9zdGFsaZxteSB6ZXOzYW5pIGRvIFN0cmVmeSBXaWRt
|
||||
by4NCnsxMTI1OTR9ezExMjcxNH0vWmFns2FkYSBuYXN6ZWdvIJx3aWF0YXwvdXdvbG5ps2EgbmFz
|
||||
Lg0KezExMjg0NX17MTEyODkzfS9Ecnlmb3dhbGmcbXkuDQp7MTEyOTAxfXsxMTMwMjN9L1NrYXph
|
||||
bmkgbmEgnG1pZXLmIGezb2Rvd7l8L3eccvNkIHN6Y3q5dGvzdyBuYXN6ZWogcGxhbmV0eS4NCnsx
|
||||
MTMwNDR9ezExMzA5NX0vSmFrIHRyYWZpbGmcY2llIG5hIFppZW1p6j8NCnsxMTMxMDB9ezExMzE5
|
||||
OH0vV3lrb3J6eXN0YWxpnG15IHByb2pla3RvciBmYW50b21vd3l8L2RvIGJ1ZG93eSBoaXBlcm5h
|
||||
cOpkdS4NCnsxMTMyMTV9ezExMzMyMH0vVGFruSBzYW25IG1vZHlmaWthY2rqfC9vamNpZWMgemFt
|
||||
b250b3dhsyB3IHR3b2ltIHN0YXRrdS4NCnsxMTMzNDJ9ezExMzQxNH0vVGFrIG90byBuYXJ66mR6
|
||||
aWUgbmFzemVqIHpndWJ5Li4uDQp7MTEzNDU3fXsxMTM1MTJ9L3N0YbNvIHNp6iBuYXN6eW0gd3li
|
||||
YXdpZW5pZW0uDQp7MTEzNjE3fXsxMTM3MjN9L1NwcmF3ZHphbGmcbXkgbmFzemUgZGF3bmUga29s
|
||||
b25pZXwvdyBwb3N6dWtpd2FuaXUgb3puYWsgv3ljaWEuDQp7MTEzODA0fXsxMTM4Njd9L1puYWxl
|
||||
n2xpnG15IGplZHluaWUgnG1pZXLmLg0KezExMzg4OH17MTEzOTk0fS9PZGNp6nRlIG9kIEtyeXB0
|
||||
b25hLHwvcGxhY/N3a2kgZGF3bm8gd3ltYXKzeS4NCnsxMTQwMTh9ezExNDEyM30vVXJhdG93YWxp
|
||||
nG15LCBjbyBzaeogZGGzbzp8L3picm9qZSwgYnJv8S4NCnsxMTQxMjZ9ezExNDE5M30vTmF3ZXQg
|
||||
amVkbrkgTWFjaGlu6iCMd2lhdPN3Lg0KezExNDIxMH17MTE0Mjg2fS9QcnpleiAzMyBsYXRhfC9j
|
||||
enluaWxpnG15IHByenlnb3Rvd2FuaWEsDQp7MTE0MjkxfXsxMTQzNjN9L2G/IHcga2/xY3Ugb2Rl
|
||||
YnJhbGmcbXl8L3N5Z25hsyBhbGFybW93eSwNCnsxMTQzNjZ9ezExNDQ3M30va3TzcnkgYWt0eXdv
|
||||
d2GzZZx8L25hIHN0YXJ5bSBzdGF0a3UgendpYWRvd2N6eW0uDQp7MTE0NDkwfXsxMTQ1NjB9VHkg
|
||||
bmFzIHR1IHNwcm93YWR6abNlnCwgS2FsLg0KezExNDU5M317MTE0Njk2fVcgdHdvamVqIG1vY3kg
|
||||
bGW/eXxvY2FsZW5pZSBuYXN6ZWogcmFzeS4NCnsxMTQ4MjZ9ezExNDkxMn1OYSBLcnlwdG9uaWUs
|
||||
IGtvZCBnZW5ldHljem55LHxtYWq5Y3ljaCBzaeogbmFyb2R6aeYgb3NvYm5pa/N3LA0KezExNDkx
|
||||
NX17MTE0OTg5fXphcGlzYW55IGJ5syB3IFJlamVzdHJ6ZSBPYnl3YXRlbGkuDQp7MTE1MDA2fXsx
|
||||
MTUxMzN9VHfzaiBvamNpZWMgc2tyYWSzIEtvZGV4fGkgdWtyebMgZ28gdyB0d29qZWoga2Fwc3Vs
|
||||
ZS4NCnsxMTUxNDV9ezExNTE4OH1QbyBjbz8NCnsxMTUxOTN9ezExNTI3NH1CeSBLcnlwdG9uIG3z
|
||||
Z7MgenJvZHpp5iBzaep8bmEgbm93by4uLg0KezExNTI4MX17MTE1MzIyfW5hIFppZW1pLg0KezEx
|
||||
NTc5Mn17MTE1ODQyfUdkemllIGplc3QgS29kZXg/DQp7MTE1ODgxfXsxMTU5NDN9SmWcbGkgS3J5
|
||||
cHRvbiBzaeogb2Ryb2R6aS4uLg0KezExNTk1NX17MTE2MDAxfWNvIHN0YW5pZSBzaeogeiBaaWVt
|
||||
abk/DQp7MTE2MDEzfXsxMTYwOTR9RG8gb2RidWRvd3kgcG90cnplYmEgZnVuZGFtZW5083cuDQp7
|
||||
MTE2MTAxfXsxMTYxODF9TmF3ZXQgdHfzaiBvamNpZWMgdG8gd2llZHppYbMuDQp7MTE2MzIyfXsx
|
||||
MTYzNzV9TmllLg0KezExNjQxNX17MTE2NTA5fS0gTmllIHByenljenluaeogc2nqIGRvIHRlZ28u
|
||||
fC0gQSBkbyBjemVnbyBzaeogcHJ6eWN6eW5pc3o/DQp7MTE2NTExfXsxMTY1MzV9TmllIQ0KezEx
|
||||
NjU3MX17MTE2NTk1fVByemVzdGHxIQ0KezExNjg0OX17MTE2OTU1fVR382ogb2pjaWVjIG9kc3pl
|
||||
ZLMgeiBob25vcmVtLg0KezExNzAwMH17MTE3MTAxfS0gWmFiabNlnCBnbz98LSBUYWsuDQp7MTE3
|
||||
MTA0fXsxMTcyMTF9UHJ6ZZxsYWR1amUgbW5pZSB0b3xrYb9kZWdvIGRuaWEuDQp7MTE3MjIxfXsx
|
||||
MTczNjV9QWxlIHpyb2Jps2J5bSB0byBwb25vd25pZS58TWFtIG9ib3dpuXplayB3b2JlYyBtb2pl
|
||||
Z28gbHVkdS4NCnsxMTczNjd9ezExNzQ5MH1OaWtvbXUgbmllIHBvendvbOosfGJ5IG1uaWUgb2Qg
|
||||
dGVnbyBvZHdp82SzLg0KezExNzg1NH17MTE3OTA3fUNvIHNp6iBkemllamUsIG1ham9yemU/DQp7
|
||||
MTE3OTA5fXsxMTgwMDB9RHdhIG9iaWVrdHl8d3lzdGFydG93YbN5IHogb2ty6nR1IG9iY3ljaC4N
|
||||
CnsxMTgwMzR9ezExODA2NX1UbyBvbmUuDQp7MTE4MDY3fXsxMTgxNDd9V3lrb3J6eXN0YWpjaWUg
|
||||
SS1Db20gNC58TXVzeuogd2llZHppZeYgY2+cIHdp6mNlai4NCnsxMTgxNTl9ezExODIxOH1Lb2Qg
|
||||
bmEgZHppc2lhaiB0byAiVHLzanq5YiIuDQp7MTE4MjIxfXsxMTgzMTl9LSBOYWRsYXR1arkgZHdh
|
||||
IHN0YXRraSBvYmN5Y2gufC0gTWFteSBkYW5lIHogSS1Db20gNC4NCnsxMTgzMjR9ezExODQ0MX0t
|
||||
IFBy6mRrb5zmP3wtIDM4MCB36nqz83cuIE5pZSBvZHBvd2lhZGFquSBuYSB3ZXp3YW5pYS4NCnsx
|
||||
MTg0NTF9ezExODUwNH1TemtvZGEgd3lzabNrdS4NCnsxMTg1MjN9ezExODY0M31TabNhLCBrdPNy
|
||||
uSBjemVycGllc3ogemUgU7Nv8WNhLHxuYSBuYXN6eW0gc3RhdGt1IG5pZSBkemlhs2EuDQp7MTE4
|
||||
NjQ1fXsxMTg3ODd9VyB0eW0gnHJvZG93aXNrdXxqZXN0ZZwgdHlsa28gend5a7N5bSBjerNvd2ll
|
||||
a2llbS4NCnsxMjAxNzN9ezEyMDI2OH0tIFNruWQgc2nqIHd6abmzZZw/fC0gS2x1Y3osIHBhbm5v
|
||||
IExhbmUuDQp7MTIwMjczfXsxMjAzNTd9WmGzYWRvd2GzYZwgbW5pZSBkbyBwYW1p6mNpIGtvbXB1
|
||||
dGVyYS4NCnsxMjAzNjJ9ezEyMDQ0M30tIEtpbSBqZXN0ZZw/fC0gT2pjZW0gS2FsYS4NCnsxMjA0
|
||||
Nzl9ezEyMDU4MH0tIE1vv2VzeiBuYW0gcG9t82M/fC0gWmJ1ZG93YbNlbSB0ZW4gc3RhdGVrLg0K
|
||||
ezEyMDU5NH17MTIwNjg2fU1vZ+ogcHJ6eXN0b3Nvd2HmfGplZ28gYXRtb3NmZXLqIGRsYSBsdWR6
|
||||
aS4NCnsxMjA3MDB9ezEyMDc5Nn1Nb79lbXkgaWNoIHBvd3N0cnp5bWHmLnxPZGVzs2HmIHogcG93
|
||||
cm90ZW0gZG8gU3RyZWZ5IFdpZG1vLg0KezEyMDgxMH17MTIwODY1fS0gSmFrP3wtIFBva2G/6iBj
|
||||
aS4NCnsxMjA4NzB9ezEyMDk3OH1BIHR5IHBva2G/ZXN6IEthbG93aS58UG9tb79lc3ogbWk/DQp7
|
||||
MTIxMjk3fXsxMjEzNTd9WmGzb2dhIHN0YXRrdSBqdb8gd2llLnxNdXNpbXkgc2nqIHBvc3BpZXN6
|
||||
eeYuDQp7MTIxMzU5fXsxMjE0MDd9V3ljablnbmlqIGtsdWN6Lg0KezEyMTU4MH17MTIxNjQ1fS0g
|
||||
VHkgdG8genJvYmmzZZw/fC0gVGFrLiBQb2RuaWWcIGJyb/EuDQp7MTIxODgwfXsxMjE5MjN9Q28g
|
||||
c2nqIGR6aWVqZT8NCnsxMjI0MjF9ezEyMjQ2OX1QbyB0d29qZWogcHJhd2VqLiBPZ25pYSENCnsx
|
||||
MjI0OTZ9ezEyMjU0NH1aYSB0b2K5IQ0KezEyMjgzMX17MTIyODkxfVdzablknyBkbyBrYXBzdbN5
|
||||
IHJhdHVua293ZWouDQp7MTIyOTAzfXsxMjI5NTF9QmV6cGllY3puZWogcG9kcvO/eS4NCnsxMjI5
|
||||
NTR9ezEyMzAyOH1aYXBld25lIHdp6mNlaiBzaeogbmllIHpvYmFjenlteS4NCnsxMjMwNDJ9ezEy
|
||||
MzExOX1QYW1p6nRhaiwga2x1Y3pvd3kgZG8gaWNoIHBvd3N0cnp5bWFuaWF8amVzdCBuYXDqZCBm
|
||||
YW50b21vd3kuDQp7MTIzMTQ2fXsxMjMxOTN9R7Nvd2EgdyBsZXdvLg0KezEyMzgyNn17MTIzOTAx
|
||||
fVpvZCBt83dpsyBwcmF3ZOogbyBLb2RleGllPw0KezEyMzkwMX17MTIzOTQ5fVJvemJpaiB0ZW4g
|
||||
cGFuZWwuDQp7MTI0MDMwfXsxMjQxMDl9Q2hjaWVsaZxteSwgYnmcIHdwaWVyd3xuYXVjenmzIHNp
|
||||
6iBieeYgY3qzb3dpZWtpZW0uDQp7MTI0MTE5fXsxMjQxODR9QnmcLCB3ZSB3s2GcY2l3eW0gY3ph
|
||||
c2llLA0KezEyNDE4OH17MTI0MjY1fW3zZ7MgYnnmIHBvbW9zdGVtfG1p6mR6eSBkd2llbWEgcmFz
|
||||
YW1pLg0KezEyNDMyNX17MTI0MzczfVNw82pyei4NCnsxMjQ0MjN9ezEyNDQ2Mn1Mb2lzLg0KezEy
|
||||
NDQ2NH17MTI0NTE5fU1vv2VzeiBquSBvY2FsaeYuDQp7MTI0NTY1fXsxMjQ2MjJ9TW+/ZXN6IG9j
|
||||
YWxp5iBpY2ggd3N6eXN0a2ljaC4NCnsxMjY0OTd9ezEyNjU2Mn1UdSBi6mR6aWVzeiBiZXpwaWVj
|
||||
em5hLg0KezEyNjU5MX17MTI2NjgyfS0gV3N6eXN0a28gdyBwb3J6uWRrdT98LSBUYWsuDQp7MTI2
|
||||
NzM1fXsxMjY4ODN9TmllIGNoY2lhs2FtIGltIG5pYyBwb3dpZWR6aWXmLHxhbGUgamFrb5wgd25p
|
||||
a27qbGkgZG8gbW9qZWogZ7Nvd3kuLi4NCnsxMjY4ODN9ezEyNjk2N31Kdb8gZG9icnplLCBMb2lz
|
||||
LnxaZSBtbrkgenJvYmlsaSB0byBzYW1vLg0KezEyNzI3Mn17MTI3MzIwfUNsYXJrIQ0KezEyNzUy
|
||||
MX17MTI3NjE1fUdkemllIHN0YXRlaywgdyBrdPNyeW0gcHJ6eWJ5sz8NCnsxMjc2NTN9ezEyNzcx
|
||||
M31JZJ8gZG8gZGlhYrNhLg0KezEyNzk1MH17MTI3OTk4fVRhbS4NCnsxMjg1MjF9ezEyODU4Nn1L
|
||||
b2RleHUgdGFtIG5pZSBtYS4NCnsxMjg3MzR9ezEyODc4N30tIEdkemllIGdvIHVrcnmzP3wtIE5p
|
||||
ZSB3aWVtLg0KezEyODc4N317MTI4ODQ5fUdkemllIGplc3QgS29kZXg/IQ0KezEyOTE4N317MTI5
|
||||
MjYyfUphayCcbWllc3ogc3RyYXN6eeYgbW9quSBtYXRr6j8hDQp7MTMwMjQyfXsxMzAyODF9Q2+c
|
||||
IHR5IG1pIHpyb2Jpsz8NCnsxMzAyODF9ezEzMDM3N31Sb2R6aWNlIG5hdWN6eWxpIG1uaWUsfGph
|
||||
ayB3eW9zdHJ6eeYgem15c7N5Lg0KezEzMDQyMH17MTMwNTE2fUphayBza3VwaeYgc2nqIG5hIHR5
|
||||
bSx8Y28gY2hj6iB6b2JhY3p55i4NCnsxMzA1MTh9ezEzMDYwMn1CZXogaGWzbXUgb2RiaWVyYXN6
|
||||
IHdzenlzdGtpZSBib2SfY2UuDQp7MTMwNjE2fXsxMzA3MDB9Qm9sZXNuZSwgcHJhd2RhPw0KezEz
|
||||
MTc4Mn17MTMxODI1fS9PZGVqZJ9jaWUgb2Qgb2tpZW4hDQp7MTMxODg3fXsxMzE5NjJ9U2Nob3dh
|
||||
amNpZSBzaeoufFR1IG5pZSBqZXN0IGJlenBpZWN6bmllLg0KezEzMjA0M317MTMyMTE3fS9UdSBT
|
||||
dHJhv25paywgdGVyZW4gY3p5c3R5Lg0KezEzMjEyMn17MTMyMjQyfU1pYbNlbSBqdb8gZG8gY3p5
|
||||
bmllbmlhfHogdHltaSBpc3RvdGFtaS4NCnsxMzIyNDd9ezEzMjM0MH0vU7kgYmFyZHpvIG5pZWJl
|
||||
enBpZWN6bmUufC9NYW15IHByYXdvIHW/eeYgYnJvbmkuDQp7MTMyNDAzfXsxMzI0NTh9L1Byenlq
|
||||
ubNlbS58L1pibGm/YW15IHNp6iBkbyBjZWx1Lg0KezEzMjU4Mn17MTMyNjY2fS8tIEdvdG93aSBk
|
||||
byBvc3RyemGzdS58Ly0gMS0xLCBwcnp5armzZW0uDQp7MTMyNzMxfXsxMzI3OTh9L1R1IEdyb20g
|
||||
MS0xLnwvTmFtaWVyenmzZW0gdHJ6eSBjZWxlLg0KezEzMzE4OX17MTMzMjcxfVBvdHdpZXJkemFt
|
||||
IHRyYWZpZW5pZS58TmF0eWNobWlhc3QgcG93dPNyeiBvc3RyemGzLg0KezEzMzI3NX17MTMzMzkz
|
||||
fS9Qcnp5armzZW0ufC9Sb2JpbXkgZHJ1Z2llIHBvZGVqnGNpZS4NCnsxMzM1NTh9ezEzMzY1N30v
|
||||
R3JvbSAxLTEsIGthdGFwdWx0dWpjaWUgc2nqIQ0KezEzMzkxNn17MTMzOTgwfS9OYWRsYXR1amUg
|
||||
bmllemlkZW50eWZpa293YW55IG9iaWVrdCENCnsxMzQ0NDF9ezEzNDQ5M31KZXN0ZZwgc7NhYnks
|
||||
IHN5bnUgRWxhLg0KezEzNDQ5M317MTM0NTQ5fUJyYWsgY2kgcGV3bm+cY2kgc2llYmllLg0KezEz
|
||||
NDY1NH17MTM0NzY0fUZha3QsIL9lIG1hY2llIHBvY3p1Y2llIG1vcmFsbm+cY2ksfGt083JlZ28g
|
||||
bmFtIGJyYWssDQp7MTM0NzY3fXsxMzQ4NDh9ZGFqZSBuYW0gcHJ6ZXdhZ+ogdyBld29sdWNqaS4N
|
||||
CnsxMzQ5MjN9ezEzNDk5NH1BIGplnGxpIGhpc3RvcmlhIGN6ZWdva29sd2llayBkb3dvZHppLi4u
|
||||
DQp7MTM1MjE1fXsxMzUzMDR9dG8gd7NhnG5pZSB0ZWdvLHy/ZSBld29sdWNqYSB6YXdzemUgd3ln
|
||||
cnl3YS4NCnsxMzU4MTB9ezEzNTg5NH0vUG9kY2hvZHppbXkgZG8gbLlkb3dhbmlhLg0KezEzNjg5
|
||||
Nn17MTM2OTY4fURvIHdzenlzdGtpY2gsfG1hY2llIG5hd2m5emHmIHdhbGvqLg0KezEzNjk2OH17
|
||||
MTM3MDM3fUEgY28geiBnb5xjaWVtIHcgbmllYmllc2tpbT8NCnsxMzcwNDB9ezEzNzEwMn0vU3Ry
|
||||
emVsYeYgZG8gd3N6eXN0a2ljaCENCnsxMzczNjZ9ezEzNzQxNH0vS29udGFrdCENCnsxMzc2Mzd9
|
||||
ezEzNzY4MH1KZXN0ZZwgY2GzeT8NCnsxMzc3OTV9ezEzNzg0M31TcGFkYW15IQ0KezEzNzg2Mn17
|
||||
MTM3OTQxfS9Qcnp5Z290b3dh5iBzaeogbmEgdWRlcnplbmllIQ0KezEzODA4NX17MTM4MTkwfS9U
|
||||
dSBVcGFks3kgQW5pb7MufC9TdHJhv25payB6ZXN0cnplbG9ueS4NCnsxMzg3MTZ9ezEzODgwOX0v
|
||||
R3JvbSAxLTIgZG8gU3RyYb9uaWthLCBvZGJp83I/DQp7MTM4ODA5fXsxMzg5MzF9RGFqY2llIHpt
|
||||
YXNvd2FueSBvc3RyemGzfG5hIG1varkgcG96eWNq6i4NCnsxMzg5MzF9ezEzODk5Nn1acm96dW1p
|
||||
YbNlbSwgcG93b2R6ZW5pYS4NCnsxMzk5Njl9ezE0MDA3N31BIG5hZ3JvZLkgamVnbyAtIGhvbm9y
|
||||
b3dhIJxtaWVy5i4NCnsxNDAzNjV9ezE0MDQxOH1OaWUgd3lncmFzei4NCnsxNDA0Mjd9ezE0MDUy
|
||||
MX1aYSBrYb9kZWdvIG9jYWxvbmVnbyBjerNvd2lla2EsfHphYmlqZW15IG1pbGlvbiBpbm55Y2gu
|
||||
DQp7MTQxNzY4fXsxNDE4MzV9L1RlcmVuIHphYmV6cGllY3pvbnk/DQp7MTQxODQwfXsxNDE5MzZ9
|
||||
L0Rydb95bmEgQWxmYSwgc7N5c3p5Y2llIG1uaWU/DQp7MTQzMTMwfXsxNDMxOTd9VGVuIGN6s293
|
||||
aWVrfG5pZSBqZXN0IG5hc3p5bSB3cm9naWVtLg0KezE0MzIzN317MTQzMjg1fUR6aeprdWrqLCBw
|
||||
dbNrb3duaWt1Lg0KezE0MzcxMH17MTQzNzM5fS9NYW1vPw0KezE0Mzc1M317MTQzODA2fU5pYyBt
|
||||
aSBuaWUgamVzdCENCnsxNDQwODZ9ezE0NDEzNH2jYWRueSBrb3N0aXVtLg0KezE0NDE1OH17MTQ0
|
||||
MjA2fVByenlrcm8gbWkuDQp7MTQ0MjExfXsxNDQyNTl9VG8gdHlsa28gcHJ6ZWRtaW90eS4NCnsx
|
||||
NDQzMDR9ezE0NDM2Mn1aYXdzemUgbW+/bmEgamUgemFzdLlwaeYuDQp7MTQ0NDE3fXsxNDQ0Njd9
|
||||
QWxlIHdhcyBuaWUgbW+/bmEuDQp7MTQ0NDc5fXsxNDQ1MTF9TWFtby4uLg0KezE0NDUxMX17MTQ0
|
||||
NjA0fVpvZCBwb3dpZWR6aWGzLCC/ZSB0ZW4gS29kZXh8bW+/ZSBzcHJvd2FkemnmIG3zaiBsdWQu
|
||||
DQp7MTQ0NjA5fXsxNDQ2NTd9VG8gY2h5YmEgZG9icnplPw0KezE0NDc1MH17MTQ0ODI1fU9uaSBj
|
||||
aHliYSBuaWUgemFtaWVyemFquXxkemllbGnmIHNp6iB0eW0gnHdpYXRlbS4NCnsxNDQ4MjV9ezE0
|
||||
NDg3MH1DbGFyayENCnsxNDQ5Mzd9ezE0NDk5NX1XaWVtLCBqYWsgaWNoIHBvd3N0cnp5bWHmLg0K
|
||||
ezE0NTAzM317MTQ1MTYwfS0gQ28gdGFtIHNp6iBzdGGzbz98LSBPa2F6YbMgY2h3aWxvd7kgc7Nh
|
||||
Ym+c5i4NCnsxNDUxNjN9ezE0NTI5N31UbyBiZXogem5hY3plbmlhLHxwb25pZXdhvyB6bG9rYWxp
|
||||
em93YbNlbSBLb2RleC4NCnsxNDUzMjZ9ezE0NTM5MH1OaWdkeSBuaWUgYnmzbyBnbyB3IGthcHN1
|
||||
bGUuDQp7MTQ1MzkwfXsxNDU0ODl9L0pvci1FbCBnbyB6YWJyYbMufC9ETkEgbWlsaWFyZPN3IGx1
|
||||
ZHppLg0KezE0NTQ4OX17MTQ1NTc1fS9TY2FsabMgZ28geiBrb23zcmthbWkgd7Nhc25lZ28gc3lu
|
||||
YS4NCnsxNDU1Nzd9ezE0NTcwNX0vV3N6eXNjeSBzcGFka29iaWVyY3kgS3J5cHRvbmF8L795arkg
|
||||
dyBjaWVsZSBqZWRuZWdvIHVjaG9kn2N5Lg0KezE0NTgxMH17MTQ1OTQ3fUN6eSBLYWwtRWwgbXVz
|
||||
aSBieeYgv3l3eSx8Ynkgb2R6eXNrYeYgS29kZXggeiBqZWdvIGtvbfNyZWs/DQp7MTQ1OTY4fXsx
|
||||
NDYwMDJ9TmllLg0KezE0NjEzOX17MTQ2MTk0fVVydWNob21p5iBNYWNoaW7qIIx3aWF083cuDQp7
|
||||
MTQ2OTY2fXsxNDcwMTh9LSBDbyBzaeogZHppZWplP3wtIFN0YXRlayBzaeogcm96ZHppZWxpsy4N
|
||||
CnsxNDcwMTh9ezE0NzEwMn1QaWVyd3N6eSBjerNvbiBwb3J1c3phIHNp6iBuYSB3c2No82QsfGRy
|
||||
dWdpIGplc3QgbmFkIHBvs3Vkbmlvd7kgcPOza3VsuS4NCnsxNDcxMDV9ezE0NzIwOH0tIEphayBz
|
||||
enlia28gbGVjaT98LSBNYWNoIDI0IGkgcHJ6eXNwaWVzemEuDQp7MTQ3MjA4fXsxNDczMDl9UHJh
|
||||
d2RvcG9kb2JuaWUgdWRlcnp5fHcgcG+zdWRuaW93eW0gcmVqb25pZSBPY2VhbnUgSW5keWpza2ll
|
||||
Z28uDQp7MTQ3NzMxfXsxNDc4MzR9LSBSZXN6dGEgc3RhdGt1IGplc3QgY29yYXogYmxpv2VqLnwt
|
||||
IERhaiB0byBuYSBla3Jhbi4NCnsxNDc4NDh9ezE0Nzg4Nn1Cb79lIQ0KezE0ODg2MH17MTQ4OTQ0
|
||||
fVVydWNob21p5iBzaWxuaWsgZmFudG9tb3d5IQ0KezE0OTQ1MH17MTQ5NTIyfUplc3RlnG15IHBv
|
||||
ZLO5Y3plbmkgZG8gTWFjaGlueS4NCnsxNDk1MzZ9ezE0OTU4Nn1aYWN6eW5hbXkuDQp7MTUwMzY4
|
||||
fXsxNTA0MzB9Q28gdG8gamVzdD8NCnsxNTA0MzB9ezE1MDU2Mn1XeWdsuWRhIG5hIGpha7mcIGJy
|
||||
b/EgZ3Jhd2l0YWN5am65LnxEemlhs2EgdyBwYXJ6ZSB6ZSBzdGF0a2llbS4NCnsxNTA1Njl9ezE1
|
||||
MDYzNH1XIGpha2mcIHNwb3PzYnx6d2nqa3N6YWq5IG1hc+ogWmllbWksDQp7MTUwNjM0fXsxNTA3
|
||||
MDR9c2tyYXBsYWq5YyBhdG1vc2ZlcuouDQp7MTUwNzQyfXsxNTA3OTB9Qm+/ZSENCnsxNTA4MTZ9
|
||||
ezE1MDg4OH0tIFRvIHRlcnJhZm9ybWFjamEufC0gQ28gdG8gdGFraWVnbz8NCnsxNTA5MDB9ezE1
|
||||
MDk5Nn1Jbr95bmllcmlhIHBsYW5ldGFybmEsfG1vZHlmaWt1arljYSBhdG1vc2ZlcuogaSB0b3Bv
|
||||
Z3JhZmnqIFppZW1pLg0KezE1MDk5Nn17MTUxMDU2fVphbWllbmlharkgWmllbWnqIHcgS3J5cHRv
|
||||
bmEuDQp7MTUxMDU4fXsxNTExNDJ9LSBBIGNvIHogbmFtaT98LSBaIHR5Y2ggb2Rjenl083cgd3lu
|
||||
aWthLA0KezE1MTE0N317MTUxMTkwfb9lIG5pZSBi6mR6aWUgv2FkbnljaCAibmFzIi4NCnsxNTEx
|
||||
OTN9ezE1MTMyMn1QYW5pZSBnZW5lcmFsZS58UHWza293bmlrIEhhcmR5IGplZHppZSB0dSB6IFN1
|
||||
cGVybWFuZW0uDQp7MTUxMzMyfXsxNTEzNzJ9U3VwZXJtYW5lbT8NCnsxNTEzNzV9ezE1MTQ1Nn1U
|
||||
eW0gb2JjeW0ufFRhayBnbyBuYXp5d2FquS4NCnsxNTE1OTN9ezE1MTY3OX0tIE1hbXkgcGxhbiwg
|
||||
Z2VuZXJhbGUufC0gQ3p5IHRvIGplc3QgdG8sIGNvIG15nGzqPw0KezE1MTY5MX17MTUxNzQ0fVRv
|
||||
IHN0YXRlaywga3TzcnltIHByenlsZWNpYbMuDQp7MTUxNzczfXsxNTE4Mzh9U3RhdGVrIG5hcOpk
|
||||
emFueSBqZXN0fHNpbG5pa2llbSBmYW50b21vd3ltLg0KezE1MTg0MH17MTUxOTI5fVphZ2luYSBw
|
||||
cnplc3RyemXxLnxTdGF0ZWsgWm9kYSB1v3l3YSB0ZWogc2FtZWogdGVjaG5vbG9naWkuDQp7MTUx
|
||||
OTI5fXsxNTE5ODl9SmWcbGkgemRlcnp5bXkgemUgc29iuXxkd2EgbmFw6mR5Li4uDQp7MTUxOTg5
|
||||
fXsxNTIwNTN9LSBNb79lIHBvd3N0YeYgb3NvYmxpd2+c5i58LSBDb5wgamFrIGN6YXJuYSBkeml1
|
||||
cmE/DQp7MTUyMDUzfXsxNTIxNjZ9VGFrLiBKZZxsaSBvdHdvcnp5IHNp6iBwcnplapxjaWUsfHBv
|
||||
d2lubmkgem9zdGHmIGRvIG5pZWdvIHdjablnbmnqY2kuDQp7MTUyMTY4fXsxNTIyMjZ9TWFteSBp
|
||||
Y2ggdHltIHpib21iYXJkb3dh5j8NCnsxNTIyMjZ9ezE1MjMxMH1KZZxsaSBzdGF0ZWsgd2G/eSBt
|
||||
bmllanxuab8gOCB0b24sDQp7MTUyMzEwfXsxNTIzOTl9bW+/ZW15IHpyenVjaeYgZ28geiBDLTE3
|
||||
LnxUbyB3eWtvbmFsbmUuDQp7MTUyMzk5fXsxNTI0NjN9SmWcbGkgbmllIHBvd3N0cnp5bWFtfHRl
|
||||
aiBtYXN6eW55IG5hZCBvY2VhbmVtLA0KezE1MjQ2Nn17MTUyNTQwfXNps2EgZ3Jhd2l0YWNqaSBi
|
||||
6mR6aWUgcm9zbrnmLg0KezE1MjY3NH17MTUyNzYxfUplnGxpIHRhIG1hc3p5bmF8dXBvZGFibmlh
|
||||
IFppZW1p6iBkbyBLcnlwdG9uYSwNCnsxNTI3NjF9ezE1MjgyMX1i6mR6aWVzeiBzs2Fic3p5IHcg
|
||||
amVqIHBvYmxpv3U/DQp7MTUyODI1fXsxNTI5NjB9TW+/bGl3ZSwgYWxlIHRvIG1uaWUgbmllIHBv
|
||||
d3N0cnp5bWEuDQp7MTUyOTYyfXsxNTMwMzR9TGVwaWVqIHNp6iBvZHN18S4NCnsxNTMwNjN9ezE1
|
||||
MzExM31Ucm9jaOogZGFsZWouDQp7MTUzODczfXsxNTM5NTB9LSBGYW9yYSwgcHJ6ZWptaWogZG93
|
||||
b2R6ZW5pZS58LSBUYWsgamVzdC4NCnsxNTM5NTB9ezE1NDA5MX1NdXN66iB6YWJlenBpZWN6eeYg
|
||||
a29tb3LqIG5hcm9kemlufGkgerNvv3nmIGhvs2Qgc3RhcmVtdSBwcnp5amFjaWVsb3dpLg0KezE1
|
||||
NDI3Nn17MTU0Mzc3fS9TdHJhv25payB3IGRyb2R6ZSBkbyBNZXRyb3BvbGlzLnxNYW15ILNhZHVu
|
||||
ZWsuDQp7MTU0NTA2fXsxNTQ2Mjh9Ri0zNSBsZWO5IG5hIG1pZWpzY2Ugc3BvdGthbmlhLg0KezE1
|
||||
NTY5NX17MTU1ODAzfS9LbHVjeiBwcnp5aup0eS58L1ezuWN6YW0ga29tb3LqIG5hcm9kemluLg0K
|
||||
ezE1NTgwNn17MTU1ODkwfS9QcnplcndpaiB0bywgWm9kLHwvcPNraSBqZXN6Y3plIGN6YXMuDQp7
|
||||
MTU1OTIzfXsxNTYwMTJ9TmF3ZXQgcG8gnG1pZXJjaXxuaWUgcHJ6ZXN0YWplc3ogbW5pZSBwb3Vj
|
||||
emHmLg0KezE1NjAxNH17MTU2MDYwfU5pZSBwb3p3b2zqIHW/eeYgS29kZXh1fHcgdGFraW0gY2Vs
|
||||
dS4NCnsxNTYwNjB9ezE1NjEwNX1OaWUgbW+/ZXN6IG1uaWUgcG93c3RyenltYeYuDQp7MTU2MTA1
|
||||
fXsxNTYxODR9S2x1Y3osIGt083J5IHdwcm93YWR6abNlbSx8em5vc2kgdHdvamUgdXByYXduaWVu
|
||||
aWEuDQp7MTU2MTg0fXsxNTYyNTR9VGVyYXogamEga29udHJvbHVq6iB0ZW4gc3RhdGVrLg0KezE1
|
||||
NzAxNn17MTU3MDg4fS9Cs3lza2F3aWNhIDEgZG8gZG9382R6dHdhLnwvUHJvc3rqIG8gemV6d29s
|
||||
ZW5pZSBuYSBhdGFrLg0KezE1NzA4OH17MTU3MjA2fVVkemllbGFtIHplendvbGVuaWEufFpkYXdh
|
||||
aiByYXBvcnQgbyB6bmlzemN6ZW5pYWNoLg0KezE1NzUzMH17MTU3NTczfS9Bd2lvbmlrYSB3YXJp
|
||||
dWplLg0KezE1NzU3NX17MTU3NjU0fS9HcmF3aXRhY2phIJxjablnYSByYWtpZXR5IHcgZPOzLnwv
|
||||
TXVzaW15IHBvZGxlY2ll5iBibGm/ZWouDQp7MTU3Nzc0fXsxNTc4ODl9V3N6eXNjeSBvcHVzemN6
|
||||
YW15IGJ1ZHluZWshDQp7MTU4NDI2fXsxNTg0NzR9L1N0cmFjabNlbSBza3J6eWSzb3dlZ28hDQp7
|
||||
MTU4NTE3fXsxNTg1NjN9L01heWRheSwgbWF5ZGF5LCBtYXlkYXkhDQp7MTU4ODE5fXsxNTg4ODJ9
|
||||
VOpkeSENCnsxNTg4ODR9ezE1ODk4N31TenliY2llaiENCnsxNTkxMTR9ezE1OTE2N31KZW5ueSEN
|
||||
CnsxNTkyMjd9ezE1OTI1M31Cb79lIQ0KezE1OTI2NX17MTU5Mjk5fVBlcnJ5IQ0KezE1OTM5N317
|
||||
MTU5NDMzfVTqZHkhDQp7MTU5NTkxfXsxNTk2Mzd9TmFzemUgcmFzeSBtb2e5IGtvZWd6eXN0b3dh
|
||||
5i4NCnsxNTk2Mzd9ezE1OTczOH2vZWJ5nG15IGNpZXJwaWVsaSx8cHLzYnVquWMgc2nqIHByenlz
|
||||
dG9zb3dh5iBqYWsgdHfzaiBzeW4/DQp7MTU5NzQwfXsxNTk3ODN9VG8gbHVkb2LzanN0d28uDQp7
|
||||
MTU5NzgzfXsxNTk4NzJ9T3dzemVtLiBBIHJvenRyerlzYW18amVnbyB6YXNhZG5vnOYgeiBkdWNo
|
||||
ZW0uDQp7MTU5OTAxfXsxNTk5ODl9T2JhaiBqZXN0ZZxteSBkdWNoYW1pLCBab2QufE5pZSByb3p1
|
||||
bWllc3ogdGVnbz8NCnsxNTk5OTJ9ezE2MDAzMH1Ud29qZWdvIEtyeXB0b25hIGp1vyBuaWUgbWEu
|
||||
DQp7MTYwMDMwfXsxNjAxMTR9U3RhdGVrLCB3aWVzeiwgamFrIHBvemJ55iBzaep8dGVqIG5hcGFz
|
||||
dGxpd2VqIGludGVsaWdlbmNqaT8NCnsxNjAxMTR9ezE2MDE2N30vLSBUYWsgamVzdC58LSBQcnp5
|
||||
Z290dWogc2nqIGRvIGplaiB3ebO5Y3plbmlhLg0KezE2MDE2N317MTYwMjcwfS0gTWFtIGRvnOYg
|
||||
dGVqIGRlYmF0eS58LSBVY2lzemVuaWUgbW5pZSBuaWN6ZWdvIG5pZSB6bWllbmkuDQp7MTYwMzA0
|
||||
fXsxNjAzNjF9TfNqIHN5bi4uLg0KezE2MDM2M317MTYwNDI4fWplc3QgbGVwc3p5IG9kIGNpZWJp
|
||||
ZS4NCnsxNjA0NTB9ezE2MDQ5OH1Eb2tv8WN6eSB0bywgY28gemFjeupsaZxteS4NCnsxNjA1Mjd9
|
||||
ezE2MDU5NH1Nb2fqIGNpIHRvIG9iaWVjYeYuDQp7MTYwNjcwfXsxNjA4MTl9UG9zaWFkYXN6IHdz
|
||||
cG9tbmllbmlhfGkgnHdpYWRvbW+c5iBKb3ItRWxhLg0KezE2MDgxOX17MTYwODgxfUN6eSBtb79l
|
||||
c3ogZG+cd2lhZGN6eeYgamVnbyBi82x1Pw0KezE2MDkwOH17MTYxMDE4fVd5cnfqIEtvZGV4IHpl
|
||||
IHp3s29rIHR3b2plZ28gc3luYS4NCnsxNjEwMjB9ezE2MTE1N31PZGJ1ZHVq6iBLcnlwdG9uIG5h
|
||||
IGplZ28gcHJvY2hhY2guDQp7MTYyNTI0fXsxNjI1ODh9SmVubnksIGdkemllIGplc3RlnD8hDQp7
|
||||
MTYyNTk4fXsxNjI2ODJ9LSBUdXRhaiF8LSBUcnp5bWFqIHNp6i4NCnsxNjI2OTR9ezE2Mjc1Nn1V
|
||||
dGtu6rNhbSwgbmllIG1vZ+ogc2nqIHV3b2xuaeYuDQp7MTYyNzU2fXsxNjI4MTR9V3ljablnbmll
|
||||
bXkgY2nqIHN0uWQufE5pZSBydXN6YWogc2nqLg0KezE2MjgzM317MTYyOTAzfS0gTmllIHpvc3Rh
|
||||
d2lhaiBtbmllLCBwcm9zeuohfC0gTmllIHpvc3Rhd2lteSBjaeouDQp7MTYyOTI3fXsxNjMwMTB9
|
||||
LSBMb21iYXJkLCBwb23zvyBtaSF8LSBOaWVjaCB0byBzemxhZy4NCnsxNjMwNzN9ezE2MzExOH0t
|
||||
IE11c2lteSB0byBwcnplc3VuueYufC0gVHJ6eW1hai4NCnsxNjMxMTh9ezE2MzE3Nn1Qb2R3Yb8s
|
||||
IGEgamEgYupk6iBwY2hhsy4NCnsxNjMyOTN9ezE2MzM0NH1QY2hhaiENCnsxNjMzNDR9ezE2MzM4
|
||||
OX1aYmxpv2Egc2nqISBQY2hhaiENCnsxNjM0MTh9ezE2MzQ5Mn1TdHJhv25payBkbyBkb3fzZHp0
|
||||
d2EsfGN6eSBtb79lc3ogZG9rb25h5iB6cnp1dHU/DQp7MTYzNDkyfXsxNjM1Mzh9T2RtYXdpYW0u
|
||||
DQp7MTY1NDE1fXsxNjU0NjN9VWRhs28gbXUgc2nqLg0KezE2NTUwNH17MTY1NTkzfVN0cmG/bmlr
|
||||
IGRvIGRvd/NkenR3YSx8amVzdGWcbXkgZ290b3dpIGRvIHpyenV0dS4NCnsxNjU1OTN9ezE2NTY3
|
||||
OX1Qb3dvZHplbmlhLiBVemJyb2nmILNhZHVuZWsufE1hY2llIHplendvbGVuaWUgbmEgenJ6dXQu
|
||||
DQp7MTY1Njg5fXsxNjU3MzR9VG8gb3N0YXRuaWUgcG9kZWqcY2llLg0KezE2NTc1OH17MTY1ODI4
|
||||
fVRlcmF6IHdzenlzdGtvIHphbGW/eXxvZCBjaWViaWUgaSBIYW1pbHRvbmEuDQp7MTY2NzUzfXsx
|
||||
NjY3ODR9VG8gY2h5YmEgamFraZwgv2FydC4NCnsxNjY3ODR9ezE2Njg4MH0tIKNhZHVuZWsgdXpi
|
||||
cm9qb255PyBNb79lbXkgenJ6dWNh5j98LSBOaWUgbW+/ZW15IQ0KezE2Njg4N317MTY2OTQwfUNv
|
||||
nCBqZXN0IG5pZSB0YWsufFRvIG5pZSBwb3dpbm5vIHRhayByb2Jp5i4NCnsxNjY5NDB9ezE2NzAy
|
||||
OX0tIEEgamFrIHBvd2lubm8/fC0gUG93aW5ubyB3ZWqc5iBkbyBrb/FjYS4NCnsxNjcwMjl9ezE2
|
||||
NzExNX0tIE5pZWNoIHNp6iBwcnp5anJ66i58LSBQcnplam1paiBzdGVyeS4NCnsxNjcxMjB9ezE2
|
||||
NzE2OH1Qcnplam11auogc3RlcnkuDQp7MTY3MzE5fXsxNjczODF9RGxhY3plZ28gbmllIGplc3Rl
|
||||
nG15fGdvdG93aSBkbyB6cnp1dHU/DQp7MTY3Mzg0fXsxNjc0MzJ9TWFteSB0dSBkcm9ibnkgcHJv
|
||||
YmxlbS4NCnsxNjc3OTF9ezE2Nzg0OX1OYW1pZXJ6eeYgb2JpZWt0Lg0KezE2NzkyMX17MTY3OTU5
|
||||
fS9DZWwgbmFtaWVyem9ueS4NCnsxNjgxOTR9ezE2ODIyM31TdPNqIQ0KezE2ODIyM317MTY4MzM4
|
||||
fUplnGxpIHpuaXN6Y3p5c3ogdGVuIHN0YXRlayx8em5pc3pjenlzeiBy83duaWW/IEtyeXB0b25h
|
||||
IQ0KezE2ODQxNX17MTY4NDcyfUtyeXB0b24gbWlhsyBzd29quSBzemFuc+ohDQp7MTY5NzUyfXsx
|
||||
Njk4NTN9UGFubm8gTGFuZSF8VGFtIGplc3QgbmllYmV6cGllY3puaWUhDQp7MTcwNTU4fXsxNzA1
|
||||
OTl9UnVzemFqIQ0KezE3MTA5OH17MTcxMTkxfUEgbmFncm9kuSBqZWdvIC0gaG9ub3Jvd2EgnG1p
|
||||
ZXLmLg0KezE3MjY2Nn17MTcyNzIzfVpuaWtu6mxpPw0KezE3MjczNX17MTcyNzg1fUNoeWJhIHRh
|
||||
ay4NCnsxNzI4MDl9ezE3Mjg0OH1PbiBuYXMgb2NhbGmzLg0KezE3MzQ0NX17MTczNTUzfU3zd2m5
|
||||
LCC/ZSBwbyBwaWVyd3N6eW0gcG9jYbN1bmt1fGplc3QganW/IHogZ/Nya2kuDQp7MTczNjEwfXsx
|
||||
NzM3MDl9VHlsa28gd3RlZHksfGplnGxpIGNhs3VqZXN6IGN6s293aWVrYS4NCnsxNzQzODd9ezE3
|
||||
NDQzMH1TcPNqcnouDQp7MTc0NDgxfXsxNzQ1Nzl9TmEgdHltIHB5bGUgbW9nbGmcbXkgemJ1ZG93
|
||||
YeZ8bm93ZWdvIEtyeXB0b25hLg0KezE3NDU4MX17MTc0NjY1fUplZG5hayBwcnplZLNvv3mzZZwg
|
||||
bHVkeml8cG9uYWQgbmFzLg0KezE3NDY4NH17MTc0Nzk1fUNlbGVtIG1vamVqIGVnenlzdGVuY2pp
|
||||
fGplc3Qgb2Nocm9uYSBLcnlwdG9uYS4NCnsxNzQ4MzN9ezE3NDkzNH1UYWtpIGNlbCBvdHJ6eW1h
|
||||
s2VtIHByenkgbmFyb2R6aW5hY2guDQp7MTc0OTU1fXsxNzUwNjZ9S2G/ZGUgZHppYbNhbmllLHxv
|
||||
Ym9q6nRuaWUgamFrIGJydXRhbG5lLA0KezE3NTA2OH17MTc1MTk3fWphayBva3J1dG5lLHxwb2Rl
|
||||
am11auogdyBpbWnqIHd5v3N6ZWdvIGRvYnJhLi4uDQp7MTc1MjAwfXsxNzUyNTN9bW9qZWdvIGx1
|
||||
ZHUuDQp7MTc1MzUxfXsxNzU0NTJ9QSB0ZXJheiBuaWUgbWFtIHN3b2plZ28gbHVkdS4NCnsxNzU1
|
||||
MzF9ezE3NTYwN31Nb2phIGR1c3phLi4uDQp7MTc1NjEwfXsxNzU3Mzd9T2RlYnJhs2WcIG1pIGq5
|
||||
IQ0KezE3NTkxNH17MTc2MDE1fVNwcmF3aeosIL9lIGx1ZHppZSx8a3TzcnljaCBwcnp5Z2Fybrmz
|
||||
ZZwsIGLqZLkgY2llcnBpZeYuDQp7MTc2MDE3fXsxNzYxNDJ9LSBPZGJpb3LqIGNpIGljaCwgamVk
|
||||
bmVnbyBwbyBkcnVnaW0ufC0gSmVzdGWcIHBvdHdvcmVtLCBab2QuDQp7MTc2MTk3fXsxNzYyNjR9
|
||||
SSB6YW1pZXJ6YW0gY2nqIHBvd3N0cnp5bWHmLg0KezE3ODY2Mn17MTc4NzI3fVRvIHNp6iBtb79l
|
||||
IHNrb/FjennmfHR5bGtvIHcgamVkZW4gc3Bvc/NiIQ0KezE3ODcyN317MTc4ODAxfYxtaWVyY2m5
|
||||
IGplZG5lZ28geiBuYXMhDQp7MTc5NTM1fXsxNzk2MjF9VXJvZHpps2VtIHNp6iB3b2pvd25pa2ll
|
||||
bSwgS2FsLg0KezE3OTYyM317MTc5NzIyfUNhs2Ugv3ljaWUgdHJlbm93YbNlbSBtb2plIHpteXOz
|
||||
eS4NCnsxNzk3MjR9ezE3OTgxMH1BIGdkemllIHR5IHRyZW5vd2GzZZw/fE5hIGZhcm1pZT8hDQp7
|
||||
MTgyOTAzfXsxODMwMDZ9U2tvcm8gdGFrIGJhcmR6byBpY2gga29jaGFzei4uLg0KezE4MzAxOH17
|
||||
MTgzMDkzfW1vv2VzeiB6YWN6ueYgaWNoIG9ws2FraXdh5i4NCnsxODMxNzl9ezE4MzIzMn1OaWUg
|
||||
cvNiIHRlZ28hDQp7MTgzMjg3fXsxODMzMzJ9UHJ6ZXN0YfEhDQp7MTgzNDU1fXsxODM1MDh9Tmll
|
||||
IQ0KezE4MzUzNH17MTgzNTY1fU5pZ2R5Lg0KezE4NTgzMX17MTg1OTE3fS0gT2RiabNvIGNpPyF8
|
||||
LSBKZWRlbiB6IHR3b2ljaCBkcm9u83cgendpYWRvd2N6eWNoLg0KezE4NTkxOX17MTg2MDI1fS0g
|
||||
VG8gamVzdCB3YXJ0ZSAxMiBtaWxpb27zdyF8LSBCebNvLg0KezE4NjAyN317MTg2MTAyfVdpZW0s
|
||||
IL9lIHBy82J1amVzeiB3eZxsZWR6aeYsfGdkemllIG9kd2llc3phbSBwZWxlcnlu6i4NCnsxODYx
|
||||
MDJ9ezE4NjE4MX0tIE5pYyB6IHRlZ28ufC0gWmF0ZW0gemFkYW0gY2kgb2N6eXdpc3RlIHB5dGFu
|
||||
aWU6DQp7MTg2MTg4fXsxODYyNjd9U2u5ZCBwZXdub5zmLCC/ZSBraWVkeZx8bmllIHp3cvNjaXN6
|
||||
IHNp6iBwcnplY2l3a28gQW1lcnljZT8NCnsxODYyNzB9ezE4NjM4N31XeWNob3dhs2VtIHNp6iB3
|
||||
IEthbnNhcy58SnW/IGJhcmR6aWVqIEFtZXJ5a2FuaW5lbSBieeYgbmllIG1vv25hLg0KezE4NjM4
|
||||
OX17MTg2NTE0fUplc3RlbSB0dSwgYnkgcG9tYWdh5ix8YWxlIG5hIG1vaWNoIHdhcnVua2FjaC4N
|
||||
CnsxODY1MTZ9ezE4NjYxN30tIE11c2kgcGFuIHByemVrb25h5iBXYXN6eW5ndG9uLnwtIE5hd2V0
|
||||
IGdkeWJ5bSBjaGNpYbMgc3By82Jvd2HmLi4uDQp7MTg2NjI3fXsxODY3NTR9LSBza7lkIHdpZXN6
|
||||
LCC/ZSBtbmllIHd5c7N1Y2hhark/fC0gTmllIHdpZW0uDQp7MTg2NzU2fXsxODY4MDl9Q2h5YmEg
|
||||
Yupk6iBtdXNpYbMgcGFudSB6YXVmYeYuDQp7MTg3MDMwfXsxODcxMjV9LSBaIGN6ZWdvnCBzaeog
|
||||
cGFuaSBjaWVzenksIGthcGl0YW5pZT98LSBaIG5pY3plZ28uDQp7MTg3MTg4fXsxODcyNDh9UG8g
|
||||
cHJvc3R1IG5pZXqzZSB6IG5pZWdvIGNpYWNoby4NCnsxODcyNzd9ezE4NzM0NH0tIERvIHdvenUs
|
||||
IGthcGl0YW5pZS58LSBUYWsgamVzdC4NCnsxODc1NzF9ezE4NzY2MH1aYXdzemUgd2llcnp5syx8
|
||||
v2UgamVzdGWcIHN0d29yem9ueSBkbyB3eb9zenljaCBjZWzzdy4NCnsxODc2NjV9ezE4Nzc3OH1B
|
||||
IGtpZWR5IG5hZGVqZHppZSBkemll8Sx8dWSfd2lnbmllc3ogc3dvamUgYnJ6ZW1p6i4NCnsxODc4
|
||||
MDJ9ezE4NzkyNn0tIENoY2lhs2J5bSwgv2VieSBt82ezIHRvIHpvYmFjennmLnwtIFdpZHppYbMg
|
||||
dG8sIHV3aWVyeiBtaS4NCnsxODkwNTZ9ezE4OTEzNX0vQ28gYupkemllc3ogcm9iabMsfC9raWVk
|
||||
eSBuaWUgYupkemllc3ogemJhd2lhsyCcd2lhdGE/DQp7MTg5MTM1fXsxODkyMDl9LSBNeZxsYbNl
|
||||
nCBqdb8gbyB0eW0/fC0gTXmcbGGzZW0uDQp7MTg5MjU5fXsxODkzOTR9UG9zenVrYW0gcHJhY3ks
|
||||
fHcga3TzcmVqIGLqZOogYmxpc2tvIHd5ZGFyemXxLg0KezE4OTQ4Mn17MTg5NTk1fS9XIGt083Jl
|
||||
aiBuaWtvZ28gbmllIHpkeml3aSx8L79lIHd5c3Rhd2lhbSBzaeogbmEgbmllYmV6cGllY3pl8XN0
|
||||
d28sDQp7MTg5NjA5fXsxODk2NjJ9L2FsYm8gv2UgemFkYWrqIHB5dGFuaWEuDQp7MTg5OTcxfXsx
|
||||
OTAwNTh9S2llZHkgdyBrb/FjdXxkYXN6IHNp6iB6YXByb3Np5iwgTG9pcz8NCnsxOTAwNzJ9ezE5
|
||||
MDE0Nn1OYWpsZXBzemUgbWllanNjYSBuYSBkemlzaWVqc3p5IG1lY3oufENvIHR5IG5hIHRvPw0K
|
||||
ezE5MDE0OX17MTkwMjc2fUxlcGllaiBzcHLzYnVqIHplIHN0Yb95c3RrYW1pLnxOYSBwZXdubyBt
|
||||
YXN6IHdp6mtzemUgc3phbnNlLg0KezE5MDI4MX17MTkwMzI0fVByemVwcmFzemFtLg0KezE5MDM1
|
||||
N317MTkwNDI3fS0gTmFqbGVwc3plIG1pZWpzY2E/fC0gTmllIHLzYiB0ZWdvLg0KezE5MDQzNH17
|
||||
MTkwNTMwfU9wcm93YWSfY2llIG5hc3plZ28gbm93ZWdvIHJlcG9ydGVyYS4NCnsxOTA1MzB9ezE5
|
||||
MDYxMn1QcnplZHN0YXdpYW0gQ2xhcmthIEtlbnRhLnxQb3dvZHplbmlhLCBts29keS4NCnsxOTA2
|
||||
NTB9ezE5MDcxMH0tIEN6ZZzmLCBqZXN0ZW0gU3RldmUufC0gTWmzbyBtaS4NCnsxOTA3MjJ9ezE5
|
||||
MDc1M31DemWc5i4NCnsxOTA3NjN9ezE5MDg2Nn1Mb2lzIExhbmUsIHdpdGFqIHcgVGhlIFBsYW5l
|
||||
dC4NCnsxOTA5NDJ9ezE5MTAwNX1DaWVzeuogc2nqLCC/ZSB0dSBqZXN0ZW0uDQp7MTkxMTIwfXsx
|
||||
OTExOTJ9Q1qjT1dJRUsgWkUgU1RBTEkNCnsxOTEyMDR9ezE5MTI2NH1Us3VtYWN6ZW5pZTogc2lu
|
||||
dTYNCnsxOTEyNzh9ezE5MTMyNH0+PiBSZWxlYXNlMjQucGwgPDwNCg==
|
||||
headers:
|
||||
cache-control: [public]
|
||||
connection: [close]
|
||||
content-type: [text/html]
|
||||
date: ['Fri, 30 Oct 2015 08:02:30 GMT']
|
||||
server: [Apache]
|
||||
vary: [Accept-Encoding]
|
||||
x-powered-by: [PleskLin]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,843 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/1.1]
|
||||
method: GET
|
||||
uri: http://napiprojekt.pl/unit_napisy/dl.php?f=6303e7ee6a835e9fcede9fb2fb00cb36&pass=&l=PL&nick=&kolejka=false&t=0ce4a&napios=Linux&v=dreambox
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
ezExODl9ezEyNzF9VLN1bWFjemVuaWU6fHNpbnU2DQp7MzE0Nn17MzE4OX0vTmllIHJvenVtaWVj
|
||||
aWU/DQp7MzE4OX17MzI0NH0vSrlkcm8gS3J5cHRvbmEgc2nqIHJvenBhZGEuDQp7MzI0NH17MzI5
|
||||
OX1UbyBrd2VzdGlhIHR5Z29kbmkuDQp7MzI5OX17MzM5MH1Pc3RyemVnYbNlbSwgv2UgZWtzcGxv
|
||||
YXRhY2phIGq5ZHJhfHRvIHNhbW9i82pzdHdvLg0KezMzOTd9ezM0NDV9VG8gamVkeW5pZSBwcnp5
|
||||
c3BpZXN6ebNvIGltcGxvemrqLg0KezM0NDh9ezM1NTh9UmV6ZXJ3eSBlbmVyZ2V0eWN6bmUgYnmz
|
||||
eSBuYSB3eWN6ZXJwYW5pdS58Q28gbWllbGmcbXkgenJvYmnmLCBFbD8NCnszNTU4fXszNjQ0fVp3
|
||||
cvNjaeYgc2nqIGt1IGd3aWF6ZG9tLnxKYWsgbmFzaSBwcnpvZGtvd2llLg0KezM2NDR9ezM2OTV9
|
||||
U7kgdGFtIJx3aWF0eSx8bmFkYWq5Y2Ugc2nqIGRvIHphbWllc3prYW5pYS4NCnszNjk3fXszNzQ1
|
||||
fU1vv2VteSB6YWN6ueZ8b2QgbmFzenljaCBkYXdueWNoIGtvbG9uaWkuDQp7Mzc0NX17MzgyOX1O
|
||||
YXByYXdk6iBzdWdlcnVqZXN6fGV3YWt1YWNq6iBjYbNlaiBwbGFuZXR5Pw0KezM4Mjl9ezM5MTN9
|
||||
TmllLiBMb3MgamVqIG1pZXN6a2HxY/N3fGplc3QganW/IHByemVzuWR6b255Lg0KezM5Mzd9ezQw
|
||||
NDV9UHJ6ZWthv2NpZSBtaSBrb250cm9s6iBuYWQgS29kZXhlbS58WmFwZXduaeogcHJ6ZXRyd2Fu
|
||||
aWUgbmFzemVqIHJhc3kuDQp7NDA0NX17NDE2OX1XY2m5vyBqZXN0IG5hZHppZWphLnxUcnp5bWGz
|
||||
ZW0garkgdyByYW1pb25hY2guDQp7NDQ5OH17NDYxNX0tIE5pbmllanN6eW0gUmFkYSB6b3N0YWpl
|
||||
IHJvendpuXphbmEufC0gWiBjenlqZWdvIHJvemthenU/DQp7NDYxOH17NDY2Nn1Nb2plZ28uDQp7
|
||||
NDcyOH17NDgyMn1SZXN6dGEgem9zdGFuaWUgb3O5ZHpvbmEgaSB1a2FyYW5hLg0KezQ4NzB9ezQ5
|
||||
MjV9Q28gdHkgd3lwcmF3aWFzeiwgWm9kPyF8VG8gc3phbGXxc3R3byENCns0OTI1fXs0OTY4fVBv
|
||||
d2luaWVuZW0gdG8genJvYmnmIGp1vyBkYXduby4NCns0OTY4fXs1MDgxfVByemV6IGljaCBuaWVr
|
||||
b/FjerljZSBzaeogZGViYXR5fGRvcHJvd2FkemlsaSBLcnlwdG9uYSBkbyB6Z3VieSENCns1MTM4
|
||||
fXs1MjI0fVByemVqbXVqZXN6IHezYWR66iBzabO5P3xOaWUgYupkemllc3ogbWlhsyBraW0gcnq5
|
||||
ZHpp5i4NCns1MjI0fXs1MzM3fVBvbfO/IG1pIHdp6mMgb2NhbGnmIG5hc3q5IHJhc+oufFphY3pu
|
||||
aWVteSBuYSBub3dvLg0KezUzMzd9ezU0NDB9V3lwbGVuaW15IGRlZ2VuZXJhdPN3LHxrdPNyenkg
|
||||
ZG9wcm93YWR6aWxpIGRvIHVwYWRrdS4NCns1NDQwfXs1NTI5fUEga3RvIHpkZWN5ZHVqZSwga29n
|
||||
byBvc3pjeupkemnmPw0KezU1NjB9ezU2MDN9VHk/DQp7NTYzNH17NTc0MH1OaWUgcvNiIHRlZ28s
|
||||
IEVsLiBOaWUgY2hj6ix8YnmcbXkgc3RhbGkgc2nqIHdyb2dhbWkuDQp7NTc0NX17NTgxMn1as2Ft
|
||||
YbNlnCBvYm93abl6dWq5Y2UgbmFzIHphc2FkeS4NCns1ODE3fXs1ODkxfVBvZG5pb3OzZZwgbWll
|
||||
Y3p8cHJ6ZWNpd2tvIHezYXNuZW11IGx1ZG93aS4NCns1OTA1fXs2MDM1fVVzemFudWrqIGN6s293
|
||||
aWVrYSwga3TzcnltIGtpZWR5nCBiebNlnC58TmllIHBvdHdvcmEsIGpha2ltIHNp6iBzdGGzZZwu
|
||||
DQp7NjExNn17NjE3MX1aYWJyYeYgZ28uDQp7NjI5NH17NjM2Nn0vLSBXc3p5c3RrbyB3IHBvcnq5
|
||||
ZGt1P3wtIFogZHJvZ2khDQp7NjM5Mn17NjQyOH1Qb3dpZWR6aWGzZW0uLi4NCns2ODA5fXs2OTI3
|
||||
fS0gUG+zuWN6IG1uaWUgeiBMYXK5LnwvLSBaYSB0b2K5LCBKb3IhDQp7NzAxMX17NzEzMH1MYXJh
|
||||
LCBwcnp5Z290dWogc3RhcnQufFByenli6mTqIGphayBuYWpzenliY2llai4NCns3NDU5fXs3NTA0
|
||||
fUgnUmFrYSENCns4NDI4fXs4NDkyfS0gV2lkemlhs2GcIEtvZGV4P3wvLSBKZXN0IHBvZCByYXR1
|
||||
c3plbS4NCns4NDkyfXs4NTg4fS9Pc3RyemVnYW0sIL9lIHplapxjaWUgdGFtfC9qZXN0IHByemVz
|
||||
dOpwc3R3ZW0ga2xhc3kgQi4uLg0Kezg1ODh9ezg2OTh9VG8ganW/IG5pZXdhv25lLCBLZWxleC58
|
||||
jHdpYXQgc2nqIGtv8WN6eS4NCnsxMDIyOH17MTAzNTN9Sm9yLUVsLCB6IHJvemthenUgZ2VuZXJh
|
||||
s2EgWm9kYSx8bWFzeiBvZGRh5iBLb2RleC4NCnsxMTUxMX17MTE1NjZ9U3Bva29qbmllLCBIJ3Jh
|
||||
a2EuDQp7MTIwNDF9ezEyMTA4fS0gWm5hbGWfbGmcY2llIGp1vyCcd2lhdD98LSBUYWsuDQp7MTIx
|
||||
MTN9ezEyMTk5fS9Lcrm/eSB3b2vzsyC/87N0ZWogZ3dpYXpkeXwvY2m5Z3UgZ7Pzd25lZ28uDQp7
|
||||
MTIyMzB9ezEyMjc2fU2zb2RhIGd3aWF6ZGEuDQp7MTIyNzZ9ezEyMzM4fUplZ28ga29t83JraSBi
|
||||
6mS5IGN6ZXJwYeZ8eiBuaWVqIGVuZXJnaeouDQp7MTIzOTF9ezEyNDUxfVd5Z2y5ZGEgbmEgdG8s
|
||||
fL9lIG1hIGludGVsaWdlbnRuuSBwb3B1bGFjauouDQp7MTI0NjV9ezEyNTQyfULqZHppZSB3eXJ6
|
||||
dXRraWVtLCBkeml3b2y5Z2llbS4NCnsxMjU4M317MTI2NDB9LSBaYWJparkgZ28ufC0gSmFrPw0K
|
||||
ezEyNjU5fXsxMjcyOX1C6mR6aWUgZGxhIG5pY2ggYm9naWVtLg0KezEyNzQ2fXsxMjgwMX1BIGpl
|
||||
nGxpIHN0YXRlayBuaWUgZG9sZWNpPw0KezEyODI1fXsxMjg3OH1PbiB6Z2luaWUgZ2R6aWWcIHRh
|
||||
bS4uLg0KezEyODc4fXsxMjkyNX13IHNhbW90bm+cY2kuDQp7MTI5NTR9ezEyOTk1fU5pZSBtb2fq
|
||||
Lg0KezEyOTk1fXsxMzA3OX1NeZxsYbNhbSwgv2UgcG90cmFmaeosIGFsZS4uLnxraWVkeSBqdb8g
|
||||
c2nqIHVyb2R6abMuLi4NCnsxMzA5MX17MTMyMjB9S3J5cHRvbmEgY3pla2EgemFns2FkYS58VG8g
|
||||
ZGxhIG5pZWdvIGplZHluYSBzemFuc2EuDQp7MTMyMjN9ezEzMjk1fUkgZGxhIG5hc3plZ28gbHVk
|
||||
dS4NCnsxMzMwMn17MTMzMjN9TyBjbyBjaG9kemksIEtlZWxleD8NCnsxMzMyM317MTMzODZ9L1Bp
|
||||
6uYgc3RhdGvzdyBib2pvd3ljaHwvbmFkbGF0dWplIHplIHdzY2hvZHUuDQp7MTMzODZ9ezEzNDQz
|
||||
fS9aZXNrYW5vd2FsaSBzeXN0ZW15IG9icm9ubmUgY3l0YWRlbGkuDQp7MTM0NDN9ezEzNTEzfS0g
|
||||
WmGzYWR1auogS29kZXgufC0gWmFjemVrYWouDQp7MTM1NjZ9ezEzNjM1fURhaiBtaSBuYSBuaWVn
|
||||
byBwb3BhdHJ6ZeYuDQp7MTM3MTJ9ezEzNzgxfU5pZSB6b2JhY3rqLHxqYWsgc3Rhd2lhIHBpZXJ3
|
||||
c3plIGtyb2tpLg0KezEzODI3fXsxMzg4OX1OaWUgdXOzeXN66ix8amFrIHd5bWF3aWEgbmFzemUg
|
||||
aW1pb25hLg0KezE0MDA3fXsxNDA5MX1UYW0sIHBvnHLzZCBnd2lhemQuLi4NCnsxNDEyMn17MTQx
|
||||
OTR9YupkemllIL95sy4NCnsxNTU0OH17MTU1ODR9r2VnbmFqLCBzeW51Lg0KezE1NjExfXsxNTY3
|
||||
M31aYWJpZXJ6IHplIHNvYrkgbWFyemVuaWEuDQp7MTY1OTl9ezE2Njc4fU9zdHJ6ZWxh5iBns/N3
|
||||
bmUgd2VqnGNpZS4NCnsxNzA0Mn17MTcxMDl9L0xhZHkgTGFybywgbmFw6mQgZ290b3d5IGRvIHN0
|
||||
YXJ0dS4NCnsxNzEwOX17MTcxNTB9VXJ1Y2hvbSBzaWxuaWtpLg0KezE3MTU3fXsxNzE4NH1HZW5l
|
||||
cmFsZS4NCnsxNzE4Nn17MTcyNzd9WmFyZWplc3Ryb3dhbGmcbXkgb2RwYWxlbmllIHNpbG5pa/N3
|
||||
fHdld265dHJ6IGN5dGFkZWxpLg0KezE3Mjk0fXsxNzMzMn1TdGFydHVquS4NCnsxNzM1Nn17MTc0
|
||||
MTR9T2JzdGF3Y2llIHTqIHBsYXRmb3Jt6i4NCnsxNzcwNn17MTc4NTN9V2llbSwgv2UgdWtyYWSz
|
||||
ZZwgS29kZXgufFp3cvPmIGdvLCBhIGRhcnVq6iBjaSC/eWNpZS4NCnsxNzg3OX17MTc5NDR9VG8g
|
||||
ZHJ1Z2Egc3phbnNhIGRsYSBjYbNlZ28gS3J5cHRvbmEuDQp7MTc5NDZ9ezE4MDExfU5pZSB0eWxr
|
||||
byBkbGEgdHljaCx8a3TzcnljaCB1em5hc3ogemEgZ29kbnljaC4NCnsxODAzNX17MTgxMzh9LSBD
|
||||
b5wgdHkgenJvYmmzP3wtIE1hbXkgZHppZWNrbywgWm9kLg0KezE4MTUwfXsxODE4Nn1DaLNvcGNh
|
||||
Lg0KezE4MTg4fXsxODI2NX1QaWVyd3N6ZSBuYXR1cmFsbmUgdXJvZHplbmllIG9kIHN0dWxlY2ku
|
||||
DQp7MTgyODR9ezE4MzkwfULqZHppZSB3b2xueS58U2FtIHpkZWN5ZHVqZSBvIHN3b2plaiBwcnp5
|
||||
c3qzb5xjaS4NCnsxODQxOH17MTg0NTR9SGVyZXpqYSENCnsxODQ5M317MTg1Mjl9Wm5pc3pjennm
|
||||
IGdvIQ0KezE5ODAyfXsxOTg2NH1Qb3OzdWNoYWogbW5pZSwgTGFybyENCnsxOTg2NH17MTk5NDN9
|
||||
S29kZXggamVzdCBwcnp5c3qzb5xjabkgS3J5cHRvbmEuDQp7MTk5NjB9ezIwMDA4fVByemVyd2lq
|
||||
IHN0YXJ0IQ0KezIwNDc4fXsyMDUyOH1OaWUhDQp7MjEyMzN9ezIxMzYzfVdhc3ogc3luLi4ufERv
|
||||
a7lkIGdvIHd5c7Nhs2GcPw0KezIxNDI1fXsyMTU1MH1NYSBuYSBpbWnqIEthbCwgc3luIEVsYS4N
|
||||
CnsyMTYzNH17MjE3MjJ9SmVzdCBwb3phIHR3b2ltIHphc2nqZ2llbS4NCnsyMTk0NX17MjIwMjB9
|
||||
WmVzdHJ6ZWxp5iB0ZW4gc3RhdGVrLg0KezIyMTc1fXsyMjIxMX0vQ2VsIG5hbWllcnpvbnkuDQp7
|
||||
MjI0OTd9ezIyNTg4fS9SenXmY2llIGJyb/EufC9KZXN0ZZxjaWUgb3RvY3plbmkuDQp7MjI4MjV9
|
||||
ezIyOTM1fS9HZW5lcmFsZSBab2QsfC96YSBtb3JkZXJzdHdvIGkgemRyYWTqLA0KezIyOTQwfXsy
|
||||
MzA0OH0vUmFkYSBza2F6dWplIGNpZWJpZXxpIHBvem9zdGGzeWNoIHJlYmVsaWFudPN3DQp7MjMw
|
||||
NDh9ezIzMTQ5fW5hIDMwMCBjeWtsaSBvZG5vd3kgc29tYXR5Y3puZWouDQp7MjMxNjN9ezIzMjI4
|
||||
fU1hc3ogamFraWWcIG9zdGF0bmllIHOzb3dvPw0KezIzMjc2fXsyMzM2OX1OaWUgemFiaWplY2ll
|
||||
IG5hcyx8v2VieSBuaWUgcG9icnVkemnmIHNvYmllIHK5aywNCnsyMzM2OX17MjM0NTN9emEgdG8g
|
||||
enN5s2FjaWUgbmFzfHcgb3RjaLNh8SBuYSB3aWVjem5vnOYhDQp7MjM0OTJ9ezIzNTc4fUpvci1F
|
||||
bCBzs3Vzem5pZSBva3JlnGxpsyB3YXN8YmFuZLkgZ7N1cGPzdy4NCnsyMzU4MH17MjM2NDB9Q28g
|
||||
ZG8gamVkbmVnbyENCnsyMzY0NX17MjM2NzJ9QSB0eS4uLg0KezIzNzEyfXsyMzc4NH1XaWVyenlz
|
||||
eiwgv2UgdHfzaiBzeW4gamVzdCBiZXpwaWVjem55Pw0KezIzNzk0fXsyMzgyNX1PZG5hamTqIGdv
|
||||
Lg0KezIzODM3fXsyMzkxNn1PZHp5c2thbSB0byx8Y28gbmFtIHphYnJhbGmcY2llIQ0KezIzOTc0
|
||||
fXsyNDAxMH1PZG5hamTqIGdvLg0KezI0MDQzfXsyNDEwMX1PZG5hamTqLCBMYXJvLg0KezI0MTcw
|
||||
fXsyNDIyMX1PZG5hamTqIGdvIQ0KezI2NjU3fXsyNjc0MH0vTGFkeSBMYXJvLHwvcG93aW5uYSBw
|
||||
YW5pIHBvc3p1a2HmIHNjaHJvbmllbmlhLg0KezI2NzUyfXsyNjgxMn1OaWUgbWEgZ2R6aWUgc2nq
|
||||
IHNrcnnmLCBLZWxvci4NCnsyNjg0NH17MjY5MDZ9Sm9yLUVsIG1pYbMgcmFjauouDQp7MjY5NDd9
|
||||
ezI2OTk1fVRvIGtvbmllYy4NCnsyNzI3MH17MjczNjl9TmllY2ggdHfzaiCcd2lhdHxi6mR6aWUg
|
||||
bGVwc3p5LCBLYWwuDQp7Mjk1NDZ9ezI5NjQ0fVV3Yb9haiwgZ7N1cGt1LHxibyB6b3N0YW5pZSB6
|
||||
IGNpZWJpZSBtb2tyYSBwbGFtYSENCnsyOTY5OX17Mjk3OTB9U2u5ZCBvbmkgY2nqIHd5dHJ6YXNu
|
||||
6mxpLCBts29keT8NCnsyOTgwOX17Mjk4NTB9L1phYmV6cGllY3p55iBwb2uzYWQhDQp7Mjk4NTB9
|
||||
ezI5OTMyfU9kZWJyYWxpnG15IHdlendhbmllIG8gcG9tb2N8eiBwbGF0Zm9ybXkgbmEgd3NjaPNk
|
||||
IG9kIG5hcy4NCnsyOTkzMn17Mjk5Nzd9WmFiZXpwaWVjennmIHBva7NhZCENCnszMDA3NX17MzAx
|
||||
MjN9L0plZG5vc3RraSBjeXdpbG5lLCBuaWUgemJsab9h5iBzaeohDQp7MzAxMjN9ezMwMTgzfS9V
|
||||
c3prb2R6b255IGplc3QgamVkZW4geiB6YXdvcvN3LnwvUGxhdGZvcm1hIG1vv2Ugd3lidWNobrnm
|
||||
Lg0KezMwMTgzfXszMDI1M31acm96dW1pYbNlbS58QSBjbyB6IGx1ZJ9taT8NCnszMDI1NX17MzAz
|
||||
NTF9Ly0gTmllIG1harkgc3phbnMufC0gTbNvZHksIHByenluaWWcIG1pIGxvcm5ldGvqLg0KezMw
|
||||
Mzk3fXszMDQ0Mn1Ns29keSENCnszMDYzNH17MzA3MjN9VG8gb3N0YXRuaWEgYnV0bGEhfE5pZSB3
|
||||
eXRyenltYW15IGSzdb9laiENCnszMDk0M317MzA5ODR9L1R1IHN0cmG/IHd5YnJ6Zb9hLg0KezMw
|
||||
OTg0fXszMTA2M30vWnJvYmlteSBqZXN6Y3plIGplZGVuIHByemVsb3R8L2kgd3lub3NpbXkgc2nq
|
||||
IHN0uWQuDQp7MzEwOTR9ezMxMTU0fUN6ZWthamNpZSwgd2lkeuogbHVkemkgbmEgbLlkb3dpc2t1
|
||||
IQ0KezMxNjUxfXszMTcxMX0vRGF3YWogdGVnbyBvc3RhdG5pZWdvLnwvTXVzaW15IHN0YXJ0b3dh
|
||||
5iENCnszMTcxMX17MzE3NzV9V3NrYWt1aiF8Q28gdHkgd3lwcmF3aWFzej8hDQp7MzE4OTV9ezMx
|
||||
OTMxfVN0YXJ0dWplbXkhDQp7MzI4NDV9ezMyOTE0fS9LaWVkeSBLYW5zYXMgc3Rhs28gc2nqIHRl
|
||||
cnl0b3JpdW0uLi4NCnszMjk0OH17MzI5ODF9L0NsYXJrIQ0KezMzMDI5fXszMzA3Mn1Vd2G/YXN6
|
||||
LCBDbGFyaz8NCnszMzE3MX17MzMyNTV9U3B5dGGzYW0gY2nqfG8gcGllcndzenljaCBvc2Fkbmlr
|
||||
83cgdyBLYW5zYXMuDQp7MzM1NjZ9ezMzNjE3fURvYnJ6ZSBzaeogY3p1amVzeiwgQ2xhcms/DQp7
|
||||
MzM3ODl9ezMzODIzfUNsYXJrIQ0KezMzOTY5fXszNDAwM31DbGFyayENCnszNDA3NX17MzQxNjN9
|
||||
LSBXeWpknywgQ2xhcmshfC0gWm9zdGF3Y2llIG1uaWUuDQp7MzQxNzN9ezM0MjE5fVdlendhs2Ft
|
||||
IHR3b2q5IG1hdGvqLg0KezM0MzUwfXszNDQyMH1KZXN0ZW0hfENsYXJrLCBjbyBzaeogc3Rhs28s
|
||||
IHNrYXJiaWU/DQp7MzQ0ODV9ezM0NTQyfS8tIE90d29yenlzeiBkcnp3aT98Ly0gQ28gbXUgb2Ri
|
||||
abNvPw0KezM0NTQyfXszNDU4NX0vLSBUbyBkeml3YWsufC8tIE1hemdhai4NCnszNDU4OH17MzQ2
|
||||
NDV9L1JvZHppY2UgbmllIHBvendhbGFquSBtdXwvYmF3aeYgc2nqIHogaW5ueW1pIGR6aWXmbWku
|
||||
DQp7MzQ2NDh9ezM0Njg0fS9XaWVtLg0KezM0Njg2fXszNDc4OX1Ta2FyYmllISBKYWsgbWFtIGNp
|
||||
IHBvbfNjLHxza29ybyBtbmllIG5pZSB3cHWcY2lzej8NCnszNDc5NH17MzQ4NTZ9jHdpYXQgamVz
|
||||
dCB6Ynl0IGR1v3ksIG1hbW8uDQp7MzQ4NTZ9ezM0OTA0fS9UbyBnbyB6bW5pZWpzei4NCnszNDk1
|
||||
MH17MzQ5OTh9UG8gcHJvc3R1Li4uDQp7MzUwNDN9ezM1MTAxfXNrdXAgc2nqIG5hIG1vaW0gZ7Nv
|
||||
c2llLg0KezM1MTMyfXszNTE5NH0vVWRhd2FqLCC/ZSB0byB3eXNwYS4NCnszNTE5NH17MzUyNDd9
|
||||
L0dkemllnCBuYSBvY2VhbmllLg0KezM1MjY2fXszNTMxOX1XaWR6aXN6IGq5Pw0KezM1Mzg0fXsz
|
||||
NTQyMn1XaWR66i4NCnszNTQ0MX17MzU0OTR9ULN58SB3IGplaiBraWVydW5rdSwga29jaGFuaWUu
|
||||
DQp7MzU4MDN9ezM1ODY2fUNvIG1pIGplc3QsIG1hbW8/DQp7MzU5MTh9ezM1OTY2fUNsYXJrLg0K
|
||||
ezM3OTY4fXszODA0OH1IZWosIHBpZXJkb7NvIXxPZ2y5ZGGzZZwgbWVjej8NCnszODA2NH17Mzgx
|
||||
MzZ9LSBab3N0YXcgZ28sIFBldGUufC0gQSB0eSBjbz8gSmVnbyBkemlld2N6eW5hPw0KezM4MTM5
|
||||
fXszODE5MX1DaGPqIHVzs3lzemXmLHxjbyBtYSBkbyBwb3dpZWR6ZW5pYS4NCnszODIyNX17Mzgy
|
||||
NzB9Tm8gc7N1Y2hhbSwgY2lvs2t1Lg0KezQwNjgyfXs0MDgxOX0vTfNqIHN5biBiebMgdyBhdXRv
|
||||
YnVzaWUufC9XaWR6aWGzLCBjbyB6cm9iabMgQ2xhcmsuDQp7NDA4MjZ9ezQwOTE1fVdpZW0ufFRv
|
||||
LCBjbyBtdSBzaeogd3lkYXdhs28uLi4NCns0MDkxN317NDA5ODl9VG8gYnmzYSBy6mthIGJvc2th
|
||||
Lg0KezQwOTg5fXs0MTAzN31UbyBiebNhIGJvv2Egb3BhdHJ6bm+c5i4NCns0MTE0MH17NDEyMjd9
|
||||
LSBDaHliYSB0cm9jaOogd3lvbGJyenltaWFzei58LSBXY2FsZSBuaWUuDQp7NDEyNDF9ezQxMzAx
|
||||
fUxhbmEgaSBGb3JueSB0Zb8gdG8gd2lkemllbGkuDQp7NDEzMDF9ezQxMzkyfS9OaWUgcGllcndz
|
||||
enkgcmF6fC9DbGFyayB6cm9iabMgY2+cIHRha2llZ28uDQp7NDE3NTJ9ezQxODkxfS0gSmEgdHls
|
||||
a28gY2hjaWGzZW0gcG9t82MufC0gV2llbSwgYWxlIGp1vyBvIHR5bSByb3ptYXdpYWxpnG15Lg0K
|
||||
ezQxOTE3fXs0MTk4N31Sb3ptYXdpYWxpnG15IG8gdHltLnxNdXNpc3ouLi4NCns0MTk5Mn17NDIw
|
||||
ODN9TXVzaXN6IHphY2hvd2HmfHN382ogZGFyIHcgdGFqZW1uaWN5Lg0KezQyMDkwfXs0MjE3MX1N
|
||||
aWGzZW0gcG96d29saeYgaW0gdW1yemXmPw0KezQyMjk2fXs0MjM0NH1Nb79lLg0KezQyMzgyfXs0
|
||||
MjQ3OH1UdSBjaG9kemkgbyBjb5wgd2nqY2VqfG5pvyC/eWNpZSBuYXN6ZSBpIG5hc3p5Y2ggYmxp
|
||||
c2tpY2guDQp7NDI1NDN9ezQyNTg5fUtpZWR5IJx3aWF0Li4uDQp7NDI1OTh9ezQyNjk5fUtpZWR5
|
||||
IJx3aWF0IGRvd2llIHNp6iwgY28gcG90cmFmaXN6LHx0byB3c3p5c3RrbyB6bWllbmkuDQp7NDI3
|
||||
MDF9ezQyNzQ5fU5hc3q5IHdpYXLqLCBwb2dsuWR5Li4uDQp7NDI3Njh9ezQyODQwfXpuYWN6ZW5p
|
||||
ZSBjerNvd2llY3pl8XN0d2EsIHdzenlzdGtvLg0KezQyODQzfXs0Mjk2M31XaWR6aWGzZZwgcmVh
|
||||
a2Nq6iBtYW15IFBldGUnYS58T25hIHNp6iBjaWViaWUgYm9pLg0KezQzMDAxfXs0MzA0NH1EbGFj
|
||||
emVnbz8NCns0MzA2MX17NDMxMzV9THVkemllIGJvarkgc2nqIHRlZ28sfGN6ZWdvIG5pZSByb3p1
|
||||
bWllarkuDQp7NDMxMzh9ezQzMTg4fU1hIHJhY2rqPw0KezQzMjA1fXs0MzI4MX1UbyBkYXIgb2Qg
|
||||
Qm9nYT8NCns0MzI5MX17NDMzMjB9UG93aWVkei4NCns0MzY4NH17NDM3MzB9VyB0eW0gY2nqIHpu
|
||||
YWxln2xpnG15Lg0KezQzNzczfXs0Mzg0N31CeWxpnG15IHBld25pLHy/ZSB6amF3aSBzaeoga3Rv
|
||||
nCB6IHJ6uWR1Lg0KezQzODUwfXs0Mzg5OH1BbGUgbmlrdCBuaWUgcHJ6eXN6ZWSzLg0KezQ0MjM4
|
||||
fXs0NDMyMH1UbyB6bmFsYXqzZW0gcHJ6eSB0b2JpZS4NCns0NDM0Nn17NDQ0MTN9WmFicmGzZW0g
|
||||
dG8gZG8gbWV0YWx1cmdhfHcgS2Fuc2FzIFN0YXRlLg0KezQ0NDE2fXs0NDQ4NX1Qb3dpZWR6aWGz
|
||||
LCC/ZSB6IGN6ZWdva29sd2lla3x0byBiebNvIHpyb2Jpb25lLi4uDQp7NDQ0OTd9ezQ0NTY5fXRv
|
||||
IG5pZSBtYSB0ZWdvfHcgdGFibGljeSBwaWVyd2lhc3Rr83cuDQp7NDQ2MTl9ezQ0NzE1fUlubnlt
|
||||
aSBzs293eSwgdG8gbmllIHBvY2hvZHppfHogbmFzemVnbyCcd2lhdGEuDQp7NDQ3NTF9ezQ0ODIx
|
||||
fVR5IHLzd25pZb8uDQp7NDQ4NDd9ezQ0OTY3fUplc3RlnCBvZHBvd2llZHppuSBuYSBweXRhbmll
|
||||
OnwiQ3p5IGplc3RlnG15IHNhbWkgd2Ugd3N6ZWNonHdpZWNpZT8iLg0KezQ1MDAxfXs0NTA4OX0t
|
||||
IEFsZSBqYSBuaWUgY2hj6i58LSBXY2FsZSBjaeogbmllIHdpbmnqLg0KezQ1MDkyfXs0NTE4M31U
|
||||
byBiebNvYnkgb2dyb21uZSBicnplbWnqIGRsYSBrYb9kZWdvLHxhbGUgdHkgbmllIGplc3RlnCB6
|
||||
d3lrs3ltIGN6s293aWVraWVtLg0KezQ1MTgzfXs0NTI1MH1XaWVyeuosIL9lLi4uDQp7NDUyNzZ9
|
||||
ezQ1MzM5fXd5c7Nhbm8gY2nqIHR1fHogamFraWVnb5wgcG93b2R1Lg0KezQ1MzQ4fXs0NTQyMH1U
|
||||
ZSB3c3p5c3RraWUgem1pYW55LHxrdPNyeWNoIGRvnHdpYWRjemFzeiwNCns0NTQyMH17NDU1NDB9
|
||||
a2llZHmcIG9rYb+5IHNp6iBis29nb3OzYXdpZfFzdHdlbS58Qupkemllc3ogbXVzaWGzIHd0ZWR5
|
||||
IGRva29uYeYgd3lib3J1Lg0KezQ1NTUwfXs0NTY0OH1Denkgc3RhbrnmIGR1bW5pZXxwcnplZCBs
|
||||
dWR6a7kgcmFzuSwgY3p5IHRlvyBuaWUuDQp7NDU2ODF9ezQ1NzUzfU5pZSBt82ezYnltIHBvIHBy
|
||||
b3N0dXx1ZGF3YeYgdHdvamVnbyBzeW5hPw0KezQ1NzY4fXs0NTgyMX1KZXN0ZZwgbW9pbSBzeW5l
|
||||
bS4NCns0NTkxOX17NDYwMTB9QWxlIGdkemllnCB0YW18bWFzeiB0Zb8gZHJ1Z2llZ28gb2pjYSwN
|
||||
Cns0NjAxMH17NDYwNjd9a3TzcnkgZGGzIGNpIGlubmUgaW1p6i4NCns0NjEzNX17NDYyMTF9UHJ6
|
||||
eXOzYbMgY2nqIHR1fHogamFraWVnb5wgcG93b2R1Lg0KezQ2MjUwfXs0NjMwN31JIGNob+ZieSBt
|
||||
aWGzbyBjaSB0b3x6YWq55iBjYbNlIL95Y2llLA0KezQ2MzA3fXs0NjM4NH1tdXNpc3ogcG96bmHm
|
||||
IHRlbiBwb3fzZC4NCns0Njc2OH17NDY4NTZ9LSBUbyBuaWUgbWlhs3kgYnnmIOZ3aWN6ZW5pYT98
|
||||
LSBabWlhbmEgcGxhbvN3Lg0KezQ2ODU2fXs0NjkzMX1abmFsZZ9saSBjb5wgZHppd25lZ298bmEg
|
||||
V3lzcGllIEVsbGVzbWVyZSdhLg0KezQ2OTMxfXs0NzAwNX0tIENhs3kgdHlkemll8SByb2JpuSB0
|
||||
YW0genJ6dXR5LnwtIERvIHRlaiBwaXBpZPN3eT8NCns0NzAwNX17NDcwNTN9TmllerN5IG9kamF6
|
||||
ZCwgY28/DQp7NDcwNTN9ezQ3MTA2fUFtZXJ5a2FuaWUgdGW/IHByenlqZWNoYWxpLnxDYbNhIG1h
|
||||
c2EuDQp7NDcxMDZ9ezQ3MTc4fU5henl3YWq5IHRvIGFub21hbGm5LHxjb2tvbHdpZWsgdG8gem5h
|
||||
Y3p5Lg0KezQ3MTgwfXs0NzI2MX0tIE9kd2FsIHNp6iwgbfN3aeogcG93Yb9uaWUufC0gTm8gY28g
|
||||
dHksIENocmlzc3kuDQp7NDcyNjF9ezQ3MzA3fS0gU3BhZGFqIXwtIFVzablkny4NCns0NzMwN317
|
||||
NDc0MDN9LSBQdXN6Y3phaiF8LSBab3N0YXcgarkuDQp7NDc0Njh9ezQ3NTIwfUJvIGNvLCB0d2Fy
|
||||
ZHppZWx1Pw0KezQ3NTIwfXs0NzYwN31CbyBi6mTqIG11c2lhsyBwb3Byb3Np5ix8v2VieZwgd3lz
|
||||
emVksy4NCns0NzYzMX17NDc3MzF9V3lqZOosIGtpZWR5IGLqZOogbWlhs3xuYSB0byBvY2hvdOou
|
||||
DQp7NDc5NDJ9ezQ3OTk1fVphY3p5bmEgc2nqLg0KezQ4MTU2fXs0ODIzM31OaWUgd2FydG8uDQp7
|
||||
NDgzOTZ9ezQ4NDk5fU5pZSB6YXBvbW5paiBuYXBpd2t1LCBkdXBrdS4NCns0OTc1N317NDk3ODR9
|
||||
RHpp6mtpLg0KezQ5ODEwfXs0OTgzOX1DemWc5i4NCns0OTg1MX17NDk4OTl9V2l0YW0sIHBhbm5v
|
||||
IExhbmUuDQp7NDk5MTF9ezUwMDIxfS0gSmVkIEV1YmFua3MsICJBcmN0aWMgQ2FyZ28iLnwtIERh
|
||||
bGVrbyBkbyBiYXp5Pw0KezUwMDIxfXs1MDA3Nn1PYvN6IGplc3QgemEgd3puaWVzaWVuaWVtLnxa
|
||||
YXByb3dhZHrqIHBhbmm5Lg0KezUwMDc2fXs1MDA5OH2Md2lldG5pZS4NCns1MDA5OH17NTAxNTN9
|
||||
Sm9lIHphYmllcnplIHBhbmkgYmFnYb9lLg0KezUwMTU4fXs1MDI3M30tIFBvbfO/IGplai58LSBP
|
||||
c3Ryb79uaWUsIHO5IGNp6r9raWUuDQp7NTAzMTR9ezUwNDMxfVN6Y3plcnplIG3zd2m5Yyx8bmll
|
||||
IHByemVwYWRhbSB6YSAiVGhlIERhaWx5IFBsYW5ldCIuDQp7NTA0Mzh9ezUwNTI1fUFsZSB0ZW4g
|
||||
cmVwb3J0Yb8sfGt083J5IHpyb2Jps2EgcGFuaSB6IDEuIGR5d2l6arkuLi4NCns1MDUzOX17NTA1
|
||||
ODd9QnmzZW0gcG9kIHdyYb9lbmllbS4NCns1MDU4OX17NTA3MDd9TmFqbGVwaWVqIHBpc3plIG1p
|
||||
IHNp6nx3IGthbWl6ZWxjZSBrdWxvb2Rwb3JuZWouDQp7NTA4MjJ9ezUwODQ0fS9QYW5ubyBMYW5l
|
||||
Lg0KezUwODQ4fXs1MDk0NH1QdbNrb3duaWsgSGFyZHkgeiBkb3fzZHp0d2EsfGEgdG8gZHIgRW1p
|
||||
bCBIYW1pbHRvbi4NCns1MDk0NH17NTEwMjN9U3BvZHppZXdhbGmcbXkgc2nqIHBhbml8ZG9waWVy
|
||||
byBqdXRyby4NCns1MTAyM317NTEwOTV9V7NhnG5pZSBkbGF0ZWdvIHByenlsZWNpYbNhbSBkemlz
|
||||
aWFqLg0KezUxMDk4fXs1MTE2Mn1XeWphnG5pam15IHNvYmllIGplZG5vLg0KezUxMTYyfXs1MTIy
|
||||
NX1KZXN0ZW0gdHUgdHlsa28gZGxhdGVnbyx8v2UgdG8gdGVyZW55IEthbmFkeSwNCns1MTIyN317
|
||||
NTEzMTZ9YSBzuWQgYXBlbGFjeWpueSBvZHJ6dWNps3x3YXN6IHduaW9zZWsgbyB6YWthemFuaWUg
|
||||
bWkgd3N06nB1Lg0KezUxMzI1fXs1MTQ0NX1Ta29ybyBtaWVyemVuaWUgZml1dPN3IG1hbXkgemEg
|
||||
c29iuSx8bW+/ZWNpZSBtaSBwb2themHmLCBjbyB6bmFsZZ9saZxjaWU/DQp7NTE0OTN9ezUxNTgy
|
||||
fVNhdGVsaXR5IE5BU0Egd3lrcnmzeSBhbm9tYWxp6i4NCns1MTU4Mn17NTE2NzF9ULN5dHkgbG9k
|
||||
b3dlIGJsb2t1arkgc3lnbmGzLHxhbGUgeiBwZXdub5xjabkgY2+cIHRhbSBqZXN0Lg0KezUxNjcx
|
||||
fXs1MTc1N30tIE1vv2UgcmFkemllY2thILPzZJ8gcG9kd29kbmE/fC0gV7l0cGxpd2UuIFRvIG1h
|
||||
IDMwMCBtZXRy83cuDQp7NTE3NTl9ezUxODI3fU8gd2llbGUgd2nqa3N6ZXxuab8gb2ty6nR5IHog
|
||||
dGFtdHljaCBjemFz83cuDQp7NTE4MzZ9ezUxODg2fUEgdGVyYXogbmFqZHppd25pZWpzemUuDQp7
|
||||
NTE4OTh9ezUyMDI2fUzzZCwga3Tzcnkgb3RhY3phIHRlbiBvYmlla3QsfG1hIHByYXdpZSAyMCB0
|
||||
eXNp6mN5IGxhdC4NCns1MjA3Nn17NTIxMTR9L1Bhbm5vIExhbmUhDQp7NTIxMjZ9ezUyMTYyfVBy
|
||||
b3N66iBzaeogbmllIHdhs+pzYeYuDQp7NTIxNjJ9ezUyMjI3fU5vY7kgdGVtcGVyYXR1cmEgc3Bh
|
||||
ZGEgdHUgZG8gLTQwLg0KezUyMjM3fXs1MjI5Nn1OaWUgem5hbGWfbGlieZxteSBwYW5pfGG/IGRv
|
||||
IHdpb3NueS4NCns1MjM3MX17NTI0MTJ9UHJvc3rqIGJhcmR6by4NCns1MjQ4MX17NTI1Nzl9LSBB
|
||||
IGplnGxpIGLqZOogY2hjaWGzYSBzaXVzaXU/fC0gVyBruWNpZSBzdG9pIHdpYWRyby4NCns1MzQw
|
||||
N317NTM0Njl9QSB0eSBkb2u5ZCBzaeogd3licmGzZZw/DQp7NTg4Nzh9ezU4OTU5fUp1vyBkb2Jy
|
||||
emUuDQp7NTkzMDB9ezU5MzU1fU1hc3oga3J3b3RvayB3ZXdu6nRyem55Lg0KezU5MzU1fXs1OTQy
|
||||
MH1KZZxsaSBnbyBuaWUgemF0YW11auouLi4NCns1OTQ1Nn17NTk1Mzd9VW1pZW0gcm9iaeYgcnpl
|
||||
Y3p5LHxrdPNyeWNoIGlubmkgbmllIHBvdHJhZmm5Lg0KezU5NTM3fXs1OTU4NX1Ucnp5bWFqIG1u
|
||||
aWUgemEgcupr6i4NCns1OTU4NX17NTk2MzF9QupkemllIGJvbGGzby4NCns2MTEwNX17NjExOTl9
|
||||
L1RvLCBjbyBwdbNrb3duaWsgSGFyZHkgaSBqZWdvIHplc3Dzs3wvdXpuYWxpIHphIHJhZHppZWNr
|
||||
uSCz82SfIHBvZHdvZG65LA0KezYxMTk5fXs2MTI2MX0vYnmzbyB6ZGVjeWRvd2FuaWUgYmFyZHpp
|
||||
ZWogZWd6b3R5Y3puZS4NCns2MTI2OH17NjEzMjh9L0FuYWxpemEgaXpvdG9wb3dhfC9sb2R1IHdv
|
||||
a/OzIG9iaWVrdHUgd3lrYXphs2EsDQp7NjEzMzF9ezYxNDQ4fS+/ZSBiebMgb24gdyBuaW0gdXdp
|
||||
6nppb255fC9vZCAxOCB0eXNp6mN5IGxhdC4NCns2MTQ1OH17NjE1NTR9L0NvIGRvIG1vamVnbyB3
|
||||
eWJhd2N5LHwvem5pa265syB3cmF6IHogb2Rsb3RlbSBvYmlla3R1Lg0KezYxNTY4fXs2MTY4NX0v
|
||||
T2themGzbyBzaeosfC+/ZSBqZWdvIHRvv3NhbW+c5iBiebNhIGZhs3N6eXdhLg0KezYxNjg4fXs2
|
||||
MTgwMX0vSmVnbyBpc3RuaWVuaWV8L3JvZHppIHByemVyYb9harljZSBweXRhbmlhLA0KezYxODAx
|
||||
fXs2MTg2MH0vamVkbmFrIHdpZW0sIGNvIHdpZHppYbNhbS4NCns2MTg3N317NjE5OTV9RG9zemxp
|
||||
IGRvIHduaW9za3UsfGm/IG9iaWVrdCBpIGplZ28gcGFzYb9lcg0KezYxOTk3fXs2MjA0N31uaWUg
|
||||
cG9jaG9kerkgeiBaaWVtaS4NCns2MjA4OH17NjIxNTV9TmllIHd5ZHJ1a3Vq6iB0ZWdvLnxUbyBt
|
||||
b2e5IGJ55iB0eWxrbyB0d29qZSB1cm9qZW5pYS4NCns2MjE1OH17NjIyMzB9Q3l3aWxuaSBwcmFj
|
||||
b3duaWN5fHBvdHdpZXJkemlsaSBtb2q5IHdlcnNq6i4NCns2MjIzMH17NjIyOTJ9UGVudGFnb24g
|
||||
emFwcnplY3phIGlzdG5pZW5pdSBzdGF0a3UuDQp7NjIyOTR9ezYyMzg4fUJvIFBlbnRhZ29uIG9k
|
||||
IHRlZ28gamVzdCx8v2VieSB6YXByemVjemHmLg0KezYyNDAwfXs2MjQ4NH1UbyBqYSwgUGVycnku
|
||||
fERvc3Rhs2FtIFB1bGl0emVyYS4NCns2MjQ4NH17NjI1NDR9LSBXaepjIHphY2hvd3VqIHNp6iBz
|
||||
dG9zb3duaWUufC0gRHJ1a3VqZXN6IGFsYm8gb2RjaG9keuouDQp7NjI1NDZ9ezYyNjIxfU5pZSBt
|
||||
b79lc3oufFdpub9lIGNp6iB1bW93YS4NCns2MjY1NH17NjI3Njd9TmllIHd5cHVzemN66iBoaXN0
|
||||
b3JpaXxvIG9iY3ljaCB3nHLzZCBuYXMuDQp7NjI5MDh9ezYyOTU5fU5pYyB6IHRlZ28uDQp7NjMw
|
||||
MDl9ezYzMDY2fVN6a29ja2EgZGxhIHBhbmkuDQp7NjMwNzZ9ezYzMTIyfVd5c3mzYW0gY2kgb3J5
|
||||
Z2luYbMuDQp7NjMxMjJ9ezYzMjE1fU5hY3plbG55IGdvIG5pZSB3eWRydWt1amUsfGFsZSBnZHli
|
||||
eSB0YWsgd3ljaWVrsyBkbyBzaWVjaS4uLg0KezYzMjIyfXs2MzMwNn1DenkgbmllIG9waXNhs2Gc
|
||||
IGtpZWR5nHxtb2plaiBzdHJvbnkgc7Nvd2FtaToNCns2MzMxM317NjM0MDl9LSAib5xsaXpns3kg
|
||||
cmFrIG9is3VkeSI/fC0gTmFkYWwgdGFrIHV3Yb9hbSwgV29vZGJ1cm4uDQp7NjM0MTJ9ezYzNDg0
|
||||
fS0gQWxlIHRvIG11c2kgd3lqnOYgbmEgamF3LnwtIERsYWN6ZWdvPw0KezYzNDkxfXs2MzU5Mn1O
|
||||
aWVjaCBt82ogdGFqZW1uaWN6eSB3eWJhd2ljaWVsIHdpZSx8v2Ugem5hbSBwcmF3ZOouDQp7NjM5
|
||||
MTV9ezY0MDMwfS9EaWFnbm9zdHlrYSB6YWtv8WN6b25hLnwvVG+/c2Ftb5zmIHBvdHdpZXJkem9u
|
||||
YS4NCns2NDA0MH17NjQxMTl9L1dzenlzdGtpZSBzeXN0ZW15IHNwcmF3bmUuDQp7NjQzOTV9ezY0
|
||||
NTA1fVdpZHppZeYgY2nqfGpha28gZG9yb3OzZWdvIG3qv2N6eXpu6i4NCns2NDU0Nn17NjQ2NTZ9
|
||||
LSBHZHlieSB0eWxrbyBMYXJhIG1vZ7NhIHRvIHpvYmFjennmLnwtIEtpbSBqZXN0ZZw/DQp7NjQ2
|
||||
NjZ9ezY0NzMwfUplc3RlbSB0d29pbSBvamNlbSwgS2FsLg0KezY0NzQyfXs2NDgzOH1BIHezYZxj
|
||||
aXdpZSBqZWdvIGNpZW5pZW0sIJx3aWFkb21vnGNpuS4NCns2NDg4NH17NjQ5NzB9TmF6eXdhbSBz
|
||||
aeogSm9yLUVsLg0KezY1MDI1fXs2NTA4MH1BIEthbD8NCns2NTEzNn17NjUxNzR9VG8gbW9qZSBp
|
||||
bWnqLg0KezY1MTg4fXs2NTI0OH1LYWwtRWwsIHcgcnplY3p5IHNhbWVqLg0KezY1Mjg3fXs2NTM0
|
||||
OX1NYW0gdHlsZSBweXRh8S4NCns2NTM5N317NjU1MzZ9U2u5ZCBwb2Nob2R66j98RGxhY3plZ28g
|
||||
bW5pZSB0dSB3eXOzYbNlnD8NCns2NTUzOH17NjU1ODJ9UG9jaG9kemlzeiB6IEtyeXB0b25hLg0K
|
||||
ezY1NjQ0fXs2NTc2OX1aZSCcd2lhdGEgbyBiYXJkemllaiBzdXJvd3ltfJxyb2Rvd2lza3Ugbmm/
|
||||
IHppZW1za2llLg0KezY1ODM2fXs2NjAxM31EYXdubyB0ZW11LCB3IGVyemUgZWtzcGFuc2ppLHxu
|
||||
YXN6YSByYXNhIHBvbGVjaWGzYSBrdSBnd2lhemRvbSwNCns2NjAyM317NjYwOTJ9dyBwb3N6dWtp
|
||||
d2FuaXUgbm93eWNoIHNpZWRsaXNrLg0KezY2MTE5fXs2NjI0Nn1UZW4gc3RhdGVrIGJ5syBqZWRu
|
||||
eW0geiB3aWVsdXx3eXOzYW55Y2ggdyBiZXprcmVzLg0KezY2MjY1fXs2NjMyN31TdHdvcnp5bGmc
|
||||
bXkgcGxhY/N3a2l8bmEgaW5ueWNoIHBsYW5ldGFjaCwNCns2NjMyN317NjY0MzV9db95d2FquWMg
|
||||
bWFjaGluLHxieSBkb3N0b3Nvd2HmIJxyb2Rvd2lza28uDQp7NjY0Njl9ezY2NTk4fVByemV6IHN0
|
||||
byB0eXNp6mN5IGxhdHxuYXN6YSBjeXdpbGl6YWNqYSBiebNhIHcgcm96a3dpY2llLg0KezY2NTk4
|
||||
fXs2NjcyM30tIERva29ueXdhbGmcbXkgY3Vk83cufC0gQ28gc2nqIHN0YbNvPw0KezY2NzY0fXs2
|
||||
Njg1N31Vc3Rhbm93aW9ubyBzenR1Y3puuSBrb250cm9s6iB1cm9kemXxLg0KezY2ODU5fXs2Njk1
|
||||
NX1Qb3J6dWNvbm8gcGxhY/N3a2kgdyBrb3Ntb3NpZS4NCns2Njk1NX17NjcwMTh9V3ljemVycGFs
|
||||
aZxteSBuYXN6ZSB6YXNvYnkgbmF0dXJhbG5lLg0KezY3MDIzfXs2NzE0Mn1Ta3V0a2llbSBiebNh
|
||||
fGRlc3RhYmlsaXphY2phIGq5ZHJhIHBsYW5ldHkuDQp7NjcxODZ9ezY3MzAxfU5hc3ogd29qc2tv
|
||||
d3kgcHJ6eXfzZGNhLHxnZW5lcmGzIFpvZCwNCns2NzMwM317NjczNTh9ZG9rb25hsyB6YW1hY2h1
|
||||
IHN0YW51Li4uDQp7NjczOTd9ezY3NDUyfWFsZSBiebNvIGp1vyB6YSBw859uby4NCns2NzQ4MH17
|
||||
Njc1NTB9UmF6ZW0geiB0d29quSBtYXRruXxwcnpld2lkemllbGmcbXkga2F0YXN0cm9m6g0KezY3
|
||||
NTUwfXs2NzYyNH1pIHBvZGrqbGmcbXkga3Jva2ksfGJ5IHphcGV3bmnmIGNpIHByemV0cndhbmll
|
||||
Lg0KezY3NjU4fXs2NzcxOH1UbyBqZXN0IGtvbW9yYSBuYXJvZHppbi4NCns2NzcxOH17Njc3OTl9
|
||||
V3N6eXNjeSBLcnlwdG9uaWFuaWV8dyB0YWtpZWogc2nqIHBvY3rqbGkuDQp7Njc4MDJ9ezY3ODkz
|
||||
fUthv2RlIGR6aWVja28gbWlhs28gc3Bls25p5nxva3JlnGxvbrkgcm9s6iB3IHNwb7NlY3pl8XN0
|
||||
d2llLg0KezY3OTAwfXs2Nzk5MX1KYWtvIHJvYm90bmlrLCB3b2pvd25payx8cHJ6eXfzZGNhIGkg
|
||||
dGFrIGRhbGVqLg0KezY4MDAzfXs2ODA4N31SYXplbSB6IHR3b2q5IG1hdGu5IHdpZXJ6eWxpnG15
|
||||
LHy/ZSBLcnlwdG9uIHV0cmFjabMgY2+cIGNlbm5lZ28uDQp7NjgwODd9ezY4MTU5fUVsZW1lbnQg
|
||||
d3lib3J1LCBzemFuc3kuDQp7NjgxNTl9ezY4MjY3fUEgamWcbGkgZHppZWNrbyBtYXJ6ebNvLHxi
|
||||
eSB6b3N0YeYga2ltnCBpbm55bSwgbmm/IHphcGxhbm93YW5vPw0KezY4MzEwfXs2ODM5Mn1BIGpl
|
||||
nGxpIG1hcnp5s28gbyB3eb9zenljaCBjZWxhY2g/DQp7NjgzOTR9ezY4NDQyfUJ5s2WcIHVjaWVs
|
||||
ZZxuaWVuaWVtfG5hc3plaiB3aWFyeSwgS2FsLg0KezY4NDQ0fXs2ODUyMX1QaWVyd3N6ZSBuYXR1
|
||||
cmFsbmUgbmFyb2R6aW55fG9kIHdpZWvzdy4NCns2ODUyOH17Njg2MTJ9RGxhdGVnbyBwb5x3aepj
|
||||
aWxpnG15IHdzenlzdGtvLHxieZwgb2NhbGGzLg0KezY4NjIyfXs2ODY3OX1EbGFjemVnbyBuaWUg
|
||||
cG9sZWNpZWxpnGNpZSB6ZSBtbrk/DQp7Njg3Mzl9ezY4Nzc4fU5pZSBtb2dsaZxteS4NCns2ODgx
|
||||
MX17Njg4NzF9TWltbyB0ZWdvLHxqYWsgYmFyZHpvIGNoY2llbGmcbXksDQp7Njg4NzZ9ezY4OTM4
|
||||
fWphayBiYXJkem8gY2nqIGtvY2hhbGmcbXkuLi4NCns2ODkzOH17NjkwNjB9QnlsaZxteSB3eXR3
|
||||
b3JlbSBuaWVwb3dvZHpl8XxuYXN6ZWdvIJx3aWF0YSwgcG9kb2JuaWUgamFrIFpvZC4NCns2OTA2
|
||||
M317NjkxMTF9WndpuXphbmkgemUgc3d5bSBsb3NlbS4NCns2OTExM317NjkxNjR9LSBaYXRlbSB6
|
||||
b3N0YbNlbSBzYW0ufC0gTmllLg0KezY5MjAwfXs2OTI4OH1KZXN0ZZwgbmEgcvN3bml8ZHppZWNr
|
||||
aWVtIFppZW1pIGkgS3J5cHRvbmEuDQp7NjkyOTN9ezY5Mzc1fU1vv2VzeiB1b3NhYmlh5iB0byx8
|
||||
Y28gdyBvYnUgnHdpYXRhY2ggbmFqbGVwc3plLg0KezY5Mzc1fXs2OTQ2M31Nb79lc3ogYnnmIG1h
|
||||
cnplbmllbSx8emEga3TzcmUgb2RkYWxpnG15IHogbWF0a7kgv3ljaWUuDQp7Njk1NzF9ezY5NjUz
|
||||
fVRvIHByYXdkYSwgv2UgbWllc3prYfFjeSBaaWVtaXxy879uabkgc2nqIG9kIG5hcy4NCns2OTY1
|
||||
M317Njk3MTV9QWxlIHdpZXJ66iwgv2UgdG8gZG9icnplLg0KezY5NzE1fXs2OTc4OX1OaWUgcG9w
|
||||
ZbNuabkgdHljaCBzYW15Y2ggYrPqZPN3LHxjbyBteS4NCns2OTc4OX17Njk4NTl9TyBpbGUgaWNo
|
||||
IHBvcHJvd2FkemlzeiwgS2FsLg0KezY5ODczfXs2OTk0OH1PIGlsZSBkYXN6IGltIG5hZHppZWrq
|
||||
Lg0KezcwMDA1fXs3MDA3MH1UbyB3s2GcbmllIG96bmFjemEgdGVuIHN5bWJvbC4NCns3MDA3Mn17
|
||||
NzAxMzl9U3ltYm9sIHJvZHppbnkgRWwgb3puYWN6YSBuYWR6aWVq6i4NCns3MDEzOX17NzAyOTV9
|
||||
TmFkemllamEgdG8gcG9kc3Rhd2EsfGJ5IHcgbHVkemlhY2ggb2RuYWxln+YgZG9icm8uDQp7NzAz
|
||||
Mjl9ezcwNDA4fVRvIHezYZxuaWUgbW+/ZXN6IGltIGRh5i4NCns3MDg1NH17NzA5MDl9L0RsYWN6
|
||||
ZWdvIHRhayBzaeogb2QgbmljaCBy879uaeo/DQp7NzA5MzN9ezcxMDMxfS9JY2ggU7Nv8WNlIGpl
|
||||
c3QgbbNvZHN6ZXwvaSBqYZxuaWVqc3plIG5pvyBuYXN6ZS4NCns3MTAzNn17NzEwOTZ9L1R3b2pl
|
||||
IGtvbfNya2l8L2N6ZXJwabkgeiBuaWVnbyBlbmVyZ2nqLA0KezcxMDk2fXs3MTE4N30vd3ptYWNu
|
||||
aWFquWMgdHdvamUgbWnqnG5pZSx8L3Nr83LqIGkgem15c7N5Lg0KezcxMjA2fXs3MTMzNn0vWmll
|
||||
bXNrYSBncmF3aXRhY2phIGplc3Qgc7NhYnN6YSx8L2EgYXRtb3NmZXJhIGJhcmR6aWVqIG+/eXdj
|
||||
emEuDQp7NzEzMzZ9ezcxNDEzfS9XeXJvc7NlnCBzaWxuaWVqc3p5fC9wb25hZCBtb2plIHd5b2Jy
|
||||
Yb9lbmlhLg0KezcxNDIwfXs3MTU1Nn0vQnkgc2nqIGRvd2llZHppZeYsIGphayBzaWxueSx8L211
|
||||
c2lzeiBzaeogd2Npub8gc3ByYXdkemHmLg0KezcyODA2fXs3MjkxMX0vUG9rYb9lc3ogbWllc3pr
|
||||
YfFjb20gWmllbWkgaWRlYbMsfC9kbyBrdPNyZWdvIGLqZLkgZLm/eeYuDQp7NzI5NDJ9ezczMDU1
|
||||
fS9C6mS5IHBy82Jvd2HmIGNp6iBnb25p5ix8L2LqZLkgc2nqIHBvdHlrYeYsIHVwYWRh5i4NCns3
|
||||
MzA1N317NzMxMDV9L0FsZSB6IGN6YXNlbS4uLg0KezczMTMyfXs3MzIwNH0vZG+zuWN6uSBkbyBj
|
||||
aWViaWUsfC9raWVkeSB3c3RhbmllIHOzb/FjZS4NCns3MzIzMH17NzMzNTl9L1ogY3phc2VtLHwv
|
||||
cG9tb79lc3ogaW0gY3p5bmnmIGN1ZGEuDQp7NzUzMjN9ezc1NDMzfS9KYWsgem5hbGWf5iBrb2dv
|
||||
nCx8L2t0byBjYbNlIL95Y2llIHNp6iB1a3J5d2GzPw0Kezc1NDMzfXs3NTUwOH0vVHJ6ZWJhIHN6
|
||||
dWth5nwvd5xy82QgbWllanNraWNoIGxlZ2VuZC4NCns3NTUxN317NzU1OTZ9L1eccvNkIHpuYWpv
|
||||
bXljaCB6bmFqb21lZ28sfC9rdPNyenkgamFrb2J5IGdvIHdpZHppZWxpLg0Kezc1NjEzfXs3NTY4
|
||||
M30vRGxhIG5pZWt083J5Y2ggYnmzIGFuaW+zZW0gc3Ry879lbS4NCns3NTY4M317NzU3Nzl9L0Rs
|
||||
YSBpbm55Y2ggamVkeW5pZSBkdWNoZW0uDQp7NzU4MjR9ezc1OTQ5fS9JbSBkYWxlaiB3IGN6YXNp
|
||||
ZSx8L3R5bSBiYXJkemllaiB3c3p5c3RrbyB6YWN66rNvIHNp6iB6YXrqYmlh5i4NCns3NTk0OX17
|
||||
NzYwMzd9LSBabmEgcGFuIG1vv2UgUGV0ZSdhIFJvc3NhP3wtIFByYWN1amUgdyBJSG9wLg0Kezc2
|
||||
MDQyfXs3NjA5NX1Q82pkemllIHBhbmkgdyB0YW10eW0ga2llcnVua3UuLi4NCns3NjEwOX17NzYx
|
||||
NTd9UGV0ZSBSb3NzPw0Kezc2MTg0fXs3NjMxM31DaGNpYbNhYnltIHBvcm96bWF3aWHmIG8gYXV0
|
||||
b2J1c2llLHxrdPNyeSB3cGFksyBkbyByemVraS4NCns3NjQ1NX17NzY1MDN9UnVzdHkhDQp7NzY1
|
||||
MTB9ezc2NTQzfVBhbmkgS2VudD8NCns3NjU1NX17NzY2MjV9SmVzdGVtIExvaXMgTGFuZXx6ICJU
|
||||
aGUgRGFpbHkgUGxhbmV0Ii4NCns3NjYzN317NzY2ODV9U3Bva/NqIQ0Kezc2NjkwfXs3Njc3Nn1D
|
||||
aGNpYbNhYnltIHBvcm96bWF3aWHmIG8gcGFuaSBzeW51Lg0Kezc2ODI5fXs3NjkxM31KT05BVEhB
|
||||
TiBLRU5UfFVLT0NIQU5ZIE2lryBJIE9KQ0lFQw0Kezc3MjAzfXs3NzMwNn1XaWVkemlhs2FtLCC/
|
||||
ZSB3IGtv8WN1fG1uaWUgem5hamR6aWVzei4NCns3NzQzM317Nzc0OTB9U2u5ZCBqZXN0ZZw/DQp7
|
||||
Nzc0OTB9ezc3NTQ4fUNoY+ogb3Bvd2llZHppZeYgnHdpYXR1IHR3b2q5IGhpc3RvcmnqLg0Kezc3
|
||||
NTQ4fXs3NzY4Mn0tIEEgamWcbGkgamEgdGVnbyBuaWUgY2hj6j98LSBUbyBuaWV1bmlrbmlvbmUu
|
||||
DQp7Nzc2ODV9ezc3NzU5fUt0b5wgenJvYmkgemRq6mNpZSx8ZG93aWUgc2nqLCBnZHppZSBtaWVz
|
||||
emthc3ouDQp7Nzc3NTl9ezc3Nzk1fVd0ZWR5IHpub3d1IHpuaWtu6i4NCns3Nzc5N317Nzc4NzJ9
|
||||
VWRhs29ieSBjaSBzaeogdG8sfGdkeWJ5nCBwcnplc3RhsyBwb21hZ2HmIGx1ZHppb20sDQp7Nzc4
|
||||
NzR9ezc3OTYwfWFsZSBjenVq6ix8v2UgdG8gbmllIHdjaG9kemkgdyByYWNodWLqLg0Kezc4MDMw
|
||||
fXs3ODA3NX1N82ogb2pjaWVjIHdpZXJ6ebMsDQp7NzgwNzV9ezc4MTU1fb9lIGplnGxpIGx1ZHpp
|
||||
ZSBkb3dpZWR6uSBzaeosfGtpbSBqZXN0ZW0uLi4NCns3ODE4MX17NzgyNDZ9d3lyemVrbrkgc2nq
|
||||
IG1uaWUsIHplIHN0cmFjaHUuDQp7NzgzMDF9ezc4MzUxfS9NYW0ganW/IGRvnOYgdWtyeXdhbmlh
|
||||
IHNp6i4NCns3ODM1MX17Nzg0MDJ9Q2hj6iByb2Jp5iBjb5wgcG+/eXRlY3puZWdvLg0Kezc4NDAy
|
||||
fXs3ODQ3MX1QcmFjYSBuYSBmYXJtaWV8bmllIGplc3QgcG+/eXRlY3puYT8NCns3ODQ3M317Nzg1
|
||||
MDJ9VGVnbyBuaWUgcG93aWVkemlhs2VtLg0Kezc4NTAyfXs3ODU3Mn1OYXN6YSByb2R6aW5hIHBy
|
||||
YWN1amUgbmEgcm9saXxvZCBwaepjaXUgcG9rb2xl8S4NCns3ODU3NH17Nzg2MzR9V2FzemEsIGFs
|
||||
ZSBuaWUgbW9qYS4NCns3ODYzNH17Nzg3MzJ9TmF3ZXQgbmllIGplc3RlnCBtb2ltIG9qY2VtLnxU
|
||||
eSB0eWxrbyBtbmllIHpuYWxherNlnC4NCns3ODczMn17Nzg3NjR9Q2xhcmshDQp7Nzg4MTZ9ezc4
|
||||
ODc0fU5pYyBzaeogbmllIHN0YbNvLg0Kezc4OTAwfXs3ODk2NX1DbGFyayBtYSByYWNq6i4NCns3
|
||||
ODk3MH17NzkwMzJ9TmllIGplc3RlnG15IHR3b2ltaSByb2R6aWNhbWkuDQp7NzkwNDJ9ezc5MTM1
|
||||
fUFsZSBvZCBzYW1lZ28gcG9jerl0a3V8ZG9rs2FkYWxpnG15IHdzemVsa2ljaCBzdGFyYfEuDQp7
|
||||
NzkxMzV9ezc5MjYwfU1vv2UgdG8ganW/IG5pZSB3eXN0YXJjenkuDQp7NzkzNDl9ezc5NDIzfS0g
|
||||
UG9zs3VjaGFqLCB0YXRvLi4ufC0gQ3pla2FqLg0Kezc5OTEyfXs3OTk3N31OYSBlc3Rha2Fk6i4N
|
||||
Cns3OTk5Nn17ODAwNDF9SWSfY2llIG5hIGVzdGFrYWTqIQ0KezgwMDc3fXs4MDEwOX1LcnlqY2ll
|
||||
IHNp6iENCns4MDEyNX17ODAxNzF9SWSfY2llIHphIG5pbSENCns4MDI3Nn17ODAzMDh9VXRrbuqz
|
||||
YSENCns4MDM1MX17ODAzOTJ9WmEgbW65IQ0KezgwNDA2fXs4MDQ4MH1IYW5rIHpvc3RhsyB3IHdv
|
||||
emllIQ0KezgwNTE0fXs4MDU2NH0tIFDzamTqIHBvIG5pZWdvLnwtIE5pZS4NCns4MDU4MX17ODA2
|
||||
Mzh9WmFiaWVyeiBtYW3qIG5hIGVzdGFrYWTqLg0KezgxMzMxfXs4MTM4N30tIEpvbmF0aGFuIXwt
|
||||
IE5pYyBtdSBuaWUgamVzdC4NCns4MTg2OH17ODE5MDd9LSBKb25hdGhhbiF8LSBab3N0YfEsIG1h
|
||||
bW8uDQp7ODI1MjV9ezgyNTY2fS9UYXRvIQ0KezgyNjQ1fXs4MjczNn0vUG96d29sabNlbSB6Z2lu
|
||||
ueYgb2pjdSx8L2JvIG11IHVmYbNlbS4NCns4MjczOX17ODI4Mzl9QnmzIHByemVrb25hbnksfL9l
|
||||
IGJ5s28gemEgd2N6ZZxuaWUuDQp7ODI4NTZ9ezgyOTE2fYx3aWF0IG5pZSBiebMgbmEgbW5pZSBn
|
||||
b3Tzdy4NCns4Mjk1MH17ODMwMTV9QSB0eSBqYWsgdXdhv2Fzej8NCns4MzA5OH17ODMxNTR9TGVw
|
||||
aWVqIHV3Yb9haiwgTG9pcy4NCns4MzE3OH17ODMyMTF9UGVycnkgY2nqIHphYmlqZS4NCns4MzIx
|
||||
Nn17ODMyODN9V2llLCC/ZSB0byB0eSBqZXN0ZZx8YW5vbmltb3d5bSCfcvNks2VtIFdvb2RidXJu
|
||||
YS4NCns4MzI4OH17ODMzMzZ9Um96ZXJ3aWUgY2nqIG5hIHN0cnrqcHkuDQp7ODMzNjB9ezgzMzkz
|
||||
fVBhdHJ6Y2llIG5hIG5puS4NCns4MzQ0NH17ODM1MDh9TmllIHd5ZGGzZW0gbmEgdG8gemV6d29s
|
||||
ZW5pYS4NCns4MzUwOH17ODM1NzN9RGGzYZwgdG8gV29vZGJ1cm5vd2ksfL9lYnkgcHWcY2mzIHRv
|
||||
IHcgSW50ZXJuZWNpZS4NCns4MzU3Nn17ODM2NTV9V3lkYXdjeSC/uWRharksfL9lYnltIGNp6iBw
|
||||
b3p3YbMuDQp7ODM2NTd9ezgzNzE5fUkgdGFrIHRvIHJ6dWNhbS4NCns4MzcyMn17ODM3ODJ9LSBU
|
||||
YWsgcG8gcHJvc3R1P3wtIFezYZxuaWUuDQp7ODM4MDh9ezgzODc1fS0gQSB0d29qZSBwcnplY3p1
|
||||
Y2lhP3wtIE5pZSBzcHJhd2R6abN5IHNp6i4NCns4Mzg3NX17ODM5MDZ9VGEgaGlzdG9yaWEgdG8g
|
||||
bmlld3lwYbMuDQp7ODM5MDl9ezgzOTkzfUEgbW+/ZSBuaWUgYnmzYSB0YWsgY2lla2F3YSx8amFr
|
||||
IHNp6iBzcG9kemlld2GzYZwuDQp7ODQwMTR9ezg0MDkxfUR3YSB0eWdvZG5pZSBiZXpws2F0bmVn
|
||||
byB1cmxvcHUuDQp7ODQwOTF9ezg0MTU4fUplc3pjemUgamVkZW4gdGFraSB3eXNrb2ssfHRvIGNp
|
||||
6iB6d29sbmnqLg0Kezg0MTU4fXs4NDE4MH1Eb2JyemUuDQp7ODQxODV9ezg0Mjc4fVNrb3JvIG1h
|
||||
bSB0d29quSB6Z29k6ix8bmllY2ggYupkuSB0cnp5IHR5Z29kbmllLg0Kezg0MzI0fXs4NDM4NH1X
|
||||
aWVyeuosIL9lIGNvnCB3aWR6aWGzYZwsDQp7ODQzODR9ezg0NDU1fWFsZSBuaWUgdXdpZXJ66ix8
|
||||
v2UgcHJ6ZWN6dWNpZSBjaeogbXlsabNvLg0Kezg0NDU4fXs4NDU2OH1aIGpha2llZ29rb2x3aWVr
|
||||
IHBvd29kdXxwb3J6dWNhc3ogdOogc3ByYXfqLi4uDQp7ODQ1NzF9ezg0NjUwfS0gdXdhv2FtLCC/
|
||||
ZSBwb3N06nB1amVzeiBzs3Vzem5pZS58LSBEbGFjemVnbz8NCns4NDY4Nn17ODQ3ODR9V3lvYnJh
|
||||
v2FzeiBzb2JpZSByZWFrY2rqIGx1ZHppLi4uDQp7ODQ3ODl9ezg0OTA5fWdkeWJ5IGRvd2llZHpp
|
||||
ZWxpIHNp6nxvIGlzdG5pZW5pdSBrb2dvnCB0YWtpZWdvPw0Kezg1MzUwfXs4NTM4OH1CaWVyeiBn
|
||||
byENCns4NTUzNH17ODU1ODB9UG9wYXRyemNpZSB0eWxrbyENCns4NTk4MH17ODYwMzF9QnmzYSB0
|
||||
dSBkemllbm5pa2Fya2EuDQp7ODYwNDN9ezg2MTEyfVNwb2tvam5pZSwgdG8gcHJ6eWphY2nzs2th
|
||||
Lg0Kezg2MTc1fXs4NjIzMn0tIE1hbW8ufC0gQ28/DQp7ODYyNjh9ezg2MzI2fS0gWm5hbGF6s2Vt
|
||||
IGljaC58LSBLb2dvPw0Kezg2MzUyfXs4NjM5NX1Nb2ljaCByb2R6aWPzdy4NCns4NjQxNH17ODY0
|
||||
NTV9TfNqIGx1ZC4NCns4NjQ2N317ODY1NDl9V2llbSwgc2u5ZCBwb2Nob2R66i4NCns4NjYzN317
|
||||
ODY2ODB9VG8gd3NwYW5pYWxlLg0Kezg2NzI2fXs4Njc3NH1CYXJkem8gc2nqIGNpZXN66i4NCns4
|
||||
Njk5NX17ODcwNjl9LSBPIGNvIGNob2R6aT98LSBPIG5pYy4NCns4NzExNH17ODcyMDN9R2R5IGJ5
|
||||
s2WcIG1hbHV0a2ksfGuzYWSzYW0gc2nqIHByenkga2+zeXNjZS4NCns4NzIwM317ODcyNTN9V3Oz
|
||||
dWNoaXdhs2FtIHNp6iB3IHR382ogb2RkZWNoLg0Kezg3MjczfXs4NzMyOH1CebNvIGNpIGNp6r9r
|
||||
by4NCns4NzM0Mn17ODc0MzF9TepjenmzZZwgc2nqLHxhIGphIHNp6iB6YW1hcnR3aWGzYW0uDQp7
|
||||
ODc0MzF9ezg3NTEwfUJhs2GcIHNp6iwgv2Uga3RvnCBwb3puYSBwcmF3ZOouDQp7ODc1MTB9ezg3
|
||||
NjMwfU5pZS58UHJhd2RhIG8gdG9iaWUgamVzdCBjdWRvd25hLg0Kezg3NjM3fXs4NzcxNH1XaWVk
|
||||
emllbGmcbXkgdG8sfGdkeSB0eWxrbyBjaeogdWpyemVsaZxteS4NCns4Nzc3MX17ODc5MDN9V2ll
|
||||
ZHppZWxpnG15LCC/ZSBraWVkeZx8Y2GzeSCcd2lhdCB0byB6cm96dW1pZS4NCns4NzkzMH17ODc5
|
||||
Nzh9UG8gcHJvc3R1hQ0Kezg3OTgwfXs4ODA1NH1ib2rqIHNp6iwgv2UgbWkgY2llYmllIHphYmlv
|
||||
crkuDQp7ODgwOTB9ezg4MTQ4fU5pZ2R6aWUgc2nqIG5pZSB3eWJpZXJhbSwgbWFtby4NCns4ODE5
|
||||
MX17ODgyMzl9T2JpZWN1auouDQp7ODgzNjh9ezg4NTIyfS0gUGFuaWUgZ2VuZXJhbGUufC0gVG8g
|
||||
a29tZXRhPyBBc3Rlcm9pZGE/DQp7ODg1NDN9ezg4NjU0fUtvbWV0eSBuaWUgZG9rb251arkga29y
|
||||
ZWt0eSBrdXJzdS4NCns4ODcwOX17ODg4MjF9Q2hjaWGzZW0sIL9lYnkgcGFuIHRvIHpvYmFjenmz
|
||||
LHx6YW5pbSBrdG+cIHd5d2+zYSBvZ/Nsbm+cd2lhdG93uSBwYW5pa+ouDQp7ODg4NDN9ezg4OTQx
|
||||
fVN0YXRlayBqZXN0IG5hIG9yYmljaWUgb2tvs29rc2nqv3ljb3dlai4NCns4ODk1Nn17ODkwMDF9
|
||||
TmllIHdpYWRvbW8gcG8gY28uDQp7ODkwMTN9ezg5MDkyfVBy82Jvd2FsaZxjaWUga29udGFrdHU/
|
||||
DQp7ODkwOTV9ezg5MTYyfUphayBuYSByYXppZSBuaWUgb2Rwb3dpYWRharkuDQp7ODkyMTB9ezg5
|
||||
MjY1fVRvIHR5bGtvIHByenlwdXN6Y3plbmlhLA0Kezg5Mjc3fXs4OTM5N31hbGUga3Rva29sd2ll
|
||||
ayB0eW0gcHJ6eWxlY2lhsyx8Y2hjZSB3eXdyemXmIG5hIG5hcyB3cmG/ZW5pZS4NCns4OTUzMX17
|
||||
ODk2MDN9S3RvnCB3aWUsfGdkemllIG1hbXkgemFwYXNvd2UgdG9uZXJ5Pw0Kezg5NjAzfXs4OTY2
|
||||
M30tIE8gY28gY2hvZHppP3wtIEplc3QgbmEgd3N6eXN0a2ljaCBrYW5hs2FjaC4NCns4OTY2M317
|
||||
ODk3MTF9TXVzaXN6IHRvIHpvYmFjennmLg0KezkwMzUxfXs5MDM5MH1DbGFyayENCns5MDM5MH17
|
||||
OTA0NDB9SWTqLg0KezkxNTE0fXs5MTU2Mn0vTmllIGplc3RlnGNpZSBzYW1pLg0KezkxNjA1fXs5
|
||||
MTY2M30vTmllLi4uIGplc3QuLi4gc2EuLi4NCns5MTcwM317OTE3Njh9L05pZSBqZXN0ZZxjaWUg
|
||||
c2FtaS4NCns5MjU4M317OTI2NzJ9LSBUbyBpZHppZSBwcnpleiBSU1MufC8tIE5pZSBqZXN0ZZxj
|
||||
aWUgc2FtaS4NCns5MjY4NH17OTI3NDZ9TmEgdGVsZWZvbmllIHRlvyB0byBtYW0uDQp7OTI3ODB9
|
||||
ezkyODQ3fS9KZXN0ZW0gZ2VuZXJhsyBab2QuDQp7OTI4ODF9ezkyOTc0fS9Qcnp5Ynl3YW0geiBv
|
||||
ZGxlZ7NlaiBwbGFuZXR5Lg0KezkyOTgxfXs5MzEwMX0vUHJ6ZWJ5s2VtIGRvIHdhc3wvY2GzeSBv
|
||||
Y2VhbiBnd2lhemQuDQp7OTMxMjV9ezkzMjMzfS9PZCBqYWtpZWdvnCBjemFzdSB3YXN6IJx3aWF0
|
||||
fC9nb5xjaSBuYXN6ZWdvIG9ieXdhdGVsYS4NCns5MzIzNX17OTMzNjV9L6+5ZGFtLCBieZxjaWUg
|
||||
d3lkYWxpIGdvfC9wb2QgbW9quSBwaWVjeuouDQp7OTMzNzd9ezkzNTI4fS9aIG5pZXpuYW55Y2gg
|
||||
cHJ6eWN6eW58L3Bvc3Rhbm93abMgdWtyeeYgcHJ6ZWQgd2FtaSBzd2UgaXN0bmllbmllLg0Kezkz
|
||||
NTUwfXs5MzYzMX0vVWN6eW5pIHdzenlzdGtvLHwvYnkgd3RvcGnmIHNp6iB3IG90b2N6ZW5pZS4N
|
||||
Cns5MzYzMX17OTM2OTZ9L1Vwb2RvYm5pIHNp6iBkbyB3YXMuDQp7OTM2OTZ9ezkzNzU2fS9KZWRu
|
||||
YWsgbmllIGplc3QgamVkbnltIHogd2FzLg0KezkzNzg5fXs5NDAyOX0vSmWcbGkgem5hc3ogbWll
|
||||
anNjZSBqZWdvIHBvYnl0dSx8L2xvcyBaaWVtaSBqZXN0IHcgdHdvaWNoIHLqa2FjaC4NCns5NDA1
|
||||
MX17OTQxMTV9L1OzdWNoYWogbW5pZSwgS2FsLUVsLg0Kezk0MTY4fXs5NDI2OX0vUG9kZGFqIHNp
|
||||
6iB3IGNpuWd1IDI0IGdvZHppbi4uLg0Kezk0MzE3fXs5NDQyNX0vYWxibyBwYXRyeix8L2phayB0
|
||||
ZW4gnHdpYXQgYupkemllIGNpZXJwaWGzLg0Kezk0NzU4fXs5NDgyMH0vTmljIG8gbmltIG5pZSB3
|
||||
aWVteS4NCns5NDgyMH17OTQ5NTB9L0plnGxpIG1hIG5hIHd6Z2zqZHppZSBuYXN6ZSBkb2Jybyx8
|
||||
L3Bvd2luaWVuIG9kZGHmIHNp6iB3IGljaCBy6mNlLg0Kezk0OTUwfXs5NTAzMX0vSmWcbGkgZ28g
|
||||
bmEgdG8gbmllIHN0YeYsfC9tb79lIHBvd2lubmmcbXkgZ28gd3lkYeYuDQp7OTUwMzF9ezk1MTQy
|
||||
fS9Qb3dpbm5pnG15IHNweXRh5iBMb2lzIExhbmUsfC9rdPNyYSB6bmEgamVnbyB0b79zYW1vnOYu
|
||||
DQp7OTUxNDZ9ezk1MjExfS9Ud2llcmR6aSBwYW4sfC+/ZSBMb2lzIExhbmUgd2llLi4uDQp7OTUy
|
||||
MjN9ezk1MzAwfU9nbLlkYXN6IHRvP3xQdXN6Y3pharkgb2Qgc2FtZWdvIHJhbmEuDQp7OTUzMDB9
|
||||
ezk1MzY1fVBpZXJ3c3p5IHJheiBzaeogeiBuaW0gemdhZHphbS58V2lkemlhs2GcIGdvPw0Kezk1
|
||||
MzcyfXs5NTQyOX1OaWUgaSBuaWdkeSBieW0gY2kgbyB0eW18bmllIHBvd2llZHppYbNhLg0Kezk1
|
||||
NDI5fXs5NTUzMH1UbyB6YWdyb79lbmllIGRsYSBjYbNlZ28gnHdpYXRhLg0Kezk1NTQwfXs5NTYy
|
||||
OH0vTmllIGN6YXMgemFzs2FuaWHmIHNp6nwvZHppZW5uaWthcnNruSBldHlruS4NCns5NTYzNX17
|
||||
OTU3NTN9L1RvIHBvd2G/bmEgc3ByYXdhLnwvRkJJIHJ6dWNhIHR1IG9za2Fyv2VuaWFtaSBvIHpk
|
||||
cmFk6i4NCns5NTc1M317OTU3OTl9TXVzeuoga2/xY3p55i4NCns5NjE4MH17OTYyNjR9RkJJLCBy
|
||||
6mNlIGRvIGfzcnkhfFJ6deYgYmFnYb8hDQp7OTY0MjJ9ezk2NTA2fS9PIG5hc3p5Y2ggZ2+cY2lh
|
||||
Y2h8L3dpZW15IG5hIHJhemllIGJhcmR6byBuaWV3aWVsZS4NCns5NjUwOH17OTY2MjF9L1dlZLN1
|
||||
ZyBvcGluaWkgcnq5ZG93eWNoIGVrc3BlcnTzd3wvbmllIHN0YW5vd2m5IHphZ3Jvv2VuaWEsDQp7
|
||||
OTY2MjF9ezk2Njc4fS9taW1vIHqzb3dyb2dpZWdvIHRvbnV8L2ljaCBwcnpla2F6dS4NCns5NjY3
|
||||
OH17OTY3OTF9L1dzenlzY3kgamVkbmFrIHphZGFquSBzb2JpZSBweXRhbmllOnwvS2ltIGplc3Qg
|
||||
S2FsLUVsPw0Kezk2NzkxfXs5Njg5NH0vQ3p5IG5hcHJhd2TqIGlzdG5pZWplP3wvSmFrIG3zZ7Mg
|
||||
dGFrIGSzdWdvIHBvem9zdGF3YeYgdyB1a3J5Y2l1Pw0Kezk3MDA3fXs5NzA1NX1ObyBjaG9knywg
|
||||
S2VudC4NCns5NzE5Nn17OTcyMzd9V2FsY3ohDQp7OTcyNDR9ezk3MjkyfVdzdGF3YWouDQp7OTcz
|
||||
NTB9ezk3MzkzfVRvIHdzenlzdGtvPw0Kezk3NDA3fXs5NzQ1OH1UeWxrbyBuYSB0eWxlIGNp6iBz
|
||||
dGHmPw0Kezk3NDc0fXs5NzUyMH1ObyBkYWxlaiwgS2VudC4NCns5NzU0Mn17OTc1NzV9V2FsY3oh
|
||||
DQp7OTgyNjh9ezk4MzU5fS0gWnJvYmlsaSBjaSBrcnp5d2TqP3wtIFByemVjaWW/IHdpZXN6LCC/
|
||||
ZSBuaWUgbW9nuS4NCns5ODM2OX17OTg0MzF9UHl0YbNlbSwgY3p5IHdzenlzdGtvIGdyYT8NCns5
|
||||
ODQ2MH17OTg1NzB9LSBUYWsgYmFyZHpvIGNoY2lhs2VtIG11IHByenl3YWxp5i58LSBXaWVtLg0K
|
||||
ezk4NTgyfXs5ODY3MX1UZb8gY2hjaWGzZW0sfL9lYnmcIHRvIHpyb2JpsywgYWxlIGNvIHBvdGVt
|
||||
Pw0Kezk4NjczfXs5ODczMX1Qb2N6dbNieZwgc2nqIGxlcGllaj8NCns5ODc3Mn17OTg4ODd9TXVz
|
||||
aXN6IHpkZWN5ZG93YeYsfG5hIGpha2llZ28gY3qzb3dpZWthIHd5cm+cbmllc3ouDQp7OTg4ODd9
|
||||
ezk4OTYxfUJvIHRlbiBjerNvd2llaywgZG9icnkgY3p5IHqzeS4uLg0Kezk5MDA0fXs5OTA3MX1v
|
||||
ZG1pZW5pIJx3aWF0Lg0Kezk5MTg0fXs5OTIzMn0vQ28gY2nqIGdu6mJpPw0Kezk5MzU5fXs5OTQ1
|
||||
NX0tIE5pZSB3aWVtLCBvZCBjemVnbyB6YWN6ueYufC0gT2QgY3plZ28gY2hjZXN6Lg0Kezk5NDkx
|
||||
fXs5OTU2NX1UZW4gc3RhdGVrLCBrdPNyeSBzaeogcG9qYXdpsy4uLg0Kezk5NTcwfXs5OTYzMn1U
|
||||
byBtbmllIHN6dWtharkuDQp7OTk3MjN9ezk5ODM4fS0gV2llc3osIGN6ZWdvIG9kIGNpZWJpZSBj
|
||||
aGO5P3wtIE5pZS4NCns5OTg0MX17OTk5NzN9TmF3ZXQgamWcbGkgc2nqIHBvZGRhbSx8Z2VuZXJh
|
||||
syBab2QgbW+/ZSBuaWUgZG90cnp5bWHmIHOzb3dhLg0Kezk5OTg1fXsxMDAxMDB9SmWcbGkgb2Rk
|
||||
YWq5YyBzaeogdyBpY2ggcupjZXxtb2fqIG9jYWxp5iBaaWVtaeouLi4NCnsxMDAxMTR9ezEwMDE2
|
||||
Mn1jenkgbmllIHBvd2luaWVuZW0gdGVnbyB1Y3p5bmnmPw0KezEwMDE4MX17MTAwMjg3fS0gQ28g
|
||||
cG9kcG93aWFkYSBjaSBpbnR1aWNqYT98LSBab2Rvd2kgbmllIG1vv25hIHVmYeYuDQp7MTAwMzQy
|
||||
fXsxMDA0NzZ9UHJvYmxlbSB3IHR5bS4uLny/ZSBuaWUgcG90cmFmaeogdGW/IHphdWZh5iBsdWR6
|
||||
aW9tLg0KezEwMDY1OH17MTAwNzQ3fUN6YXNhbWkgdHJ6ZWJhIHV3aWVyennmLi4uDQp7MTAwNzcx
|
||||
fXsxMDA4Mjl9YSB6YXVmYW5pZSBwcnp5amR6aWUgeiBjemFzZW0uDQp7MTAxNDAyfXsxMDE0NjR9
|
||||
VWRhs28gY2kgc2nqfHByenljablnbrnmIG5hc3q5IHV3YWfqLg0KezEwMTQ2OX17MTAxNTUwfS0g
|
||||
Q3plZ28gY2hjZXN6P3wtIENoY+ogcm96bWF3aWHmIHogTG9pcyBMYW5lLg0KezEwMTU1OH17MTAx
|
||||
NjA4fVNruWQgcG9teXOzLCC/ZSBqZXN0IHogbmFtaT8NCnsxMDE2MDh9ezEwMTY5NH1OaWUgYmF3
|
||||
bXkgc2nqIHcgY2l1Y2l1YmFia+oufFBvZGRhbSBzaeouDQp7MTAxNjk3fXsxMDE3ODF9UG9kIHdh
|
||||
cnVua2llbSx8v2UgemFnd2FyYW50dWplY2llIGplaiB3b2xub5zmLg0KezEwMTk5Mn17MTAyMDYx
|
||||
fS9EbGFjemVnbyBvZGRhamVzeiBzaeogdyBy6mNlIFpvZGE/DQp7MTAyMDcxfXsxMDIxNTl9T2Rk
|
||||
YWrqIHNp6iB3IHLqY2UgbHVkemtvnGNpLHx0byBy879uaWNhLg0KezEwMjE4Nn17MTAyMjM2fVBv
|
||||
endvbGmzZZwgc2nqIHNrdeYuDQp7MTAyMjQ4fXsxMDIzMzd9SW5hY3plaiBuaWUgd3lnbLlkYbNv
|
||||
YnkgdG8gd2lhcnlnb2RuaWUuDQp7MTAyMzQ0fXsxMDI0NzF9U2tvcm8gcG9jenVsaSBzaeogYmV6
|
||||
cGllY3puaWVqc2ksfHRvIHR5bSBsZXBpZWouDQp7MTAyNTY5fXsxMDI2NjB9Q28gb3puYWN6YSB0
|
||||
YSBsaXRlcmEgIlMiPw0KezEwMjY4N317MTAyNzQ0fVRvIG5pZSBsaXRlcmEuDQp7MTAyNzU2fXsx
|
||||
MDI4MjZ9VyBtb2ltIJx3aWVjaWUgdG8gc3ltYm9sIG5hZHppZWkuDQp7MTAyODM4fXsxMDI5MzR9
|
||||
QSB3IG5hc3p5bSB0byBsaXRlcmEgIlMiLg0KezEwMjk3Mn17MTAzMDQ2fUEgbW+/ZS4uLg0KezEw
|
||||
MzExNn17MTAzMTgxfS0gU3VwZXIuLi58Ly0gV2l0YW0uDQp7MTAzMTk1fXsxMDMyNzd9LSBKZXN0
|
||||
ZW0gZG9rdG9yLi4ufC8tIEVtaWwgSGFtaWx0b24sIHdpZW0uDQp7MTAzMjg0fXsxMDMzMzl9V2lk
|
||||
euogaWRlbnR5ZmlrYXRvcnx3IHBh8XNraWVqIGtpZXN6ZW5pLg0KezEwMzM0MX17MTAzNDEzfUkg
|
||||
bmFwb2N66nRlIG9wYWtvd2FuaWUgZHJvcHPzdy4NCnsxMDM0MjB9ezEwMzUzM30vV2lkeuogdGW/
|
||||
IHphIHdhbWl8L29kZHppYbMgv2+zbmllcnp5IHogcGFyYWxpemF0b3JlbS4NCnsxMDM1MzN9ezEw
|
||||
MzU2N31OaWUgYupkemllIHBvdHJ6ZWJueS4NCnsxMDM1Njd9ezEwMzY1NX1NdXNpbXkgc2nqIGph
|
||||
a2+cIHphYmV6cGllY3p55i4NCnsxMDM2NTV9ezEwMzcxOH1Nb79lIHBhbiBieeYgbm9zaWNpZWxl
|
||||
bXxqYWtpZWdvnCB3aXJ1c2EuDQp7MTAzNzIzfXsxMDM3OTd9r3lq6iB0dSBvZCAzMyBsYXR8aSBq
|
||||
ZXN6Y3plIG5pa29nbyBuaWUgemFyYXpps2VtLg0KezEwMzgwNH17MTAzODk4fUFsYm8gbyB0eW0g
|
||||
bmllIHdpZXN6LnxNYW15IHBvZHN0YXd5IGRvIG9iYXcuDQp7MTAzODk4fXsxMDQwMTd9V3lqYXdp
|
||||
s2WcIHN3b2q5IHRvv3NhbW+c5iBwYW5uaWUgTGFuZS58L0RsYWN6ZWdvIG5pZSB3eWphd2lzeiBq
|
||||
ZWogbmFtPw0KezEwNDA0NH17MTA0MTExfUthcnR5IG5hIHN087MsIGdlbmVyYWxlLg0KezEwNDEy
|
||||
OH17MTA0MTkzfUJvaWNpZSBzaeogbW5pZSx8Ym8gbmllIG1vv2VjaWUgbW5pZSBrb250cm9sb3dh
|
||||
5i4NCnsxMDQxOTN9ezEwNDI2NH1OaWdkeSBuaWUgYupkemllY2llIG1vZ2xpLg0KezEwNDI3Nn17
|
||||
MTA0MzI5fUFsZSB0byBuaWUgb3puYWN6YSx8v2UgamVzdGVtIHdhc3p5bSB3cm9naWVtLg0KezEw
|
||||
NDMzMn17MTA0NDAzfUEga3RvIG5pbSBqZXN0PyBab2Q/DQp7MTA0NDE4fXsxMDQ1MTZ9LSBUZWdv
|
||||
IHezYZxuaWUgc2nqIG9iYXdpYW0ufC0gVGFrIGN6eSBpbmFjemVqLA0KezEwNDUxOX17MTA0NjAw
|
||||
fXd5ZGGzZW0gcm96a2F6LHxieSBjaeogZG8gbmllZ28gZG9wcm93YWR6b25vLg0KezEwNDYwN317
|
||||
MTA0NjcwfU5pZWNoIHBhbiByb2JpIHN3b2plLCBnZW5lcmFsZS4NCnsxMDQ3NzV9ezEwNDg1N30t
|
||||
IER6aeprdWrqLnwtIFphIGNvPw0KezEwNDg3MX17MTA0OTI5fVphIHRvLCC/ZSB3ZSBtbmllIHV3
|
||||
aWVyenmzYZwuDQp7MTA0OTgxfXsxMDUwNDF9SSB0YWsgbmllIG1hIHRvIHpuYWN6ZW5pYS4NCnsx
|
||||
MDUwNTF9ezEwNTA5NH1EbGEgbW5pZSBtYS4NCnsxMDU1ODN9ezEwNTYzM31OYWRsYXR1arkuDQp7
|
||||
MTA1NjMzfXsxMDU2ODF9UG93aW5uYZwganW/IGmc5i4NCnsxMDU3Mjl9ezEwNTc4MH1PZGVqZJ8s
|
||||
IExvaXMuDQp7MTA3NDgyfXsxMDc1OTB9S2FsLUVsLCBqZXN0ZW0gcG9kZG9382RjYSBGYW9yYS1V
|
||||
bC4NCnsxMDc1OTJ9ezEwNzY4OH1XIGltaWVuaXUgZ2VuZXJhs2EgWm9kYXxwcnpla2F6dWrqIGNp
|
||||
IHBvemRyb3dpZW5pYS4NCnsxMDc4MDN9ezEwNzg3NX0tIFBhbiB0dSBkb3dvZHppP3wtIE93c3pl
|
||||
bS4NCnsxMDc4Nzh9ezEwNzk4OH1HZW5lcmGzIFpvZCBjaGNlLHxieSB0YSBrb2JpZXRhIG1pIHRv
|
||||
d2FyenlzenmzYS4NCnsxMDgwMTR9ezEwODEyOX1DaGNpZWxpnGNpZSBvYmNlZ28ufE5pZSBiebNv
|
||||
IG1vd3kgbyBqZWRueW0geiBuYXMuDQp7MTA4MTMyfXsxMDgyMjV9TWFtIHByemVrYXph5iBnZW5l
|
||||
cmGzb3dpLHy/ZSBvZG1hd2lhY2llPw0KezEwODIzMH17MTA4MjkyfU5pZSBvYmNob2R6aSBtbmll
|
||||
LHxjbyBtdSBwcnpla2G/ZXN6Lg0KezEwODM0MH17MTA4Mzk1fVcgcG9yerlka3UuDQp7MTA4NDAz
|
||||
fXsxMDg0NDF9UPNqZOouDQp7MTA5NDYyfXsxMDk1NjF9QXRtb3NmZXJhIG5hIHN0YXRrdXxuaWUg
|
||||
amVzdCBwcnp5c3Rvc293YW5hIGRsYSBsdWR6aS4NCnsxMDk1NjN9ezEwOTY0OX1C6mR6aWVzeiBt
|
||||
dXNpYbNhIHphs2+/eeYgbWFza+ouDQp7MTEwMjUxfXsxMTAyODJ9S2FsLUVsLg0KezExMDMxMX17
|
||||
MTEwNDEyfU5pZSBtYXN6IHBvaupjaWEsfGphayBks3VnbyBjaeogc3p1a2FsaZxteS4NCnsxMTA0
|
||||
MTd9ezExMDQ5Nn0tIFpvZCwgamFrIHJvenVtaWVtLnwtIEdlbmVyYbMgWm9kLCBuYXN6IGRvd/Nk
|
||||
Y2EuDQp7MTEwNDk4fXsxMTA1OTR9VyBwb3J6uWRrdSwgRmFvcmEufE1vv25hIG11IHd5YmFjennm
|
||||
IGJyYWsgbWFuaWVyLg0KezExMDU5OX17MTEwNjQ5fU5pZSB6bmEgbmFzenljaCB6d3ljemFq83cu
|
||||
DQp7MTEwNjUyfXsxMTA3Njd9VG8gY2h3aWxhIG5hIJx3aep0b3dhbmllLHxhIG5pZSBuYSBrs/N0
|
||||
bmllLg0KezExMDg2N317MTEwOTMwfUN6dWrqIHNp6iBkeml3bmllLg0KezExMDk5Mn17MTExMDQw
|
||||
fVOzYWJvIG1pLg0KezExMTA4OH17MTExMTYyfS0gQ28gbXUgamVzdD98LSBPZHJ6dWNhIG5hc3q5
|
||||
IGF0bW9zZmVy6i4NCnsxMTExOTN9ezExMTMwMX1aYWFkYXB0b3dhs2WcIHNp6iBkbyB6aWVtc2tp
|
||||
Y2ggd2FydW5r83csfG5pZSBkbyBuYXN6eWNoLg0KezExMTMwNn17MTExNDA5fS0gUG9t878gbXUu
|
||||
fC0gTmllIG1vZ+ouIE11c2kgc2FtbyBwcnplapzmLg0KezExMTQ1NX17MTExNTAzfVBvbfO/Y2ll
|
||||
IG11IQ0KezExMTUyOX17MTExNTc3fVBvbfO/Y2llIQ0KezExMTgzNn17MTExODcyfVdpdGFqLCBL
|
||||
YWwuDQp7MTExOTIwfXsxMTE5NzN9QSBtb79lIHdvbGlzeiAiQ2xhcmsiPw0KezExMTk4NX17MTEy
|
||||
MDU0fVRha2llIGltaeogY2kgbmFkYWxpLCBjenm/IG5pZT8NCnsxMTIwODV9ezExMjE5Nn1CebNl
|
||||
bSBuYSBLcnlwdG9uaWUgZG9382RjuSBhcm1paSx8YSB0d/NqIG9qY2llYyAtIG5hc3p5bSBuYWp3
|
||||
aeprc3p5bSB1Y3pvbnltLg0KezExMjE5Nn17MTEyMjg0fVpnYWR6YWxpnG15IHNp6iBjbyBkbyB0
|
||||
ZWdvLHy/ZSBLcnlwdG9uIHVtaWVyYS4NCnsxMTIyODl9ezExMjQyMX1XIHphbWlhbiB6YSBwcvNi
|
||||
6iBvY2FsZW5pYXxuYXN6ZWogY3l3aWxpemFjamkgaSBwbGFuZXR5LA0KezExMjQzMX17MTEyNTM0
|
||||
fXdyYXogeiBtb2ltaSBvZmljZXJhbWl8em9zdGFsaZxteSB6ZXOzYW5pIGRvIFN0cmVmeSBXaWRt
|
||||
by4NCnsxMTI1OTR9ezExMjcxNH0vWmFns2FkYSBuYXN6ZWdvIJx3aWF0YXwvdXdvbG5ps2EgbmFz
|
||||
Lg0KezExMjg0NX17MTEyODkzfS9Ecnlmb3dhbGmcbXkuDQp7MTEyOTAxfXsxMTMwMjN9L1NrYXph
|
||||
bmkgbmEgnG1pZXLmIGezb2Rvd7l8L3eccvNkIHN6Y3q5dGvzdyBuYXN6ZWogcGxhbmV0eS4NCnsx
|
||||
MTMwNDR9ezExMzA5NX0vSmFrIHRyYWZpbGmcY2llIG5hIFppZW1p6j8NCnsxMTMxMDB9ezExMzE5
|
||||
OH0vV3lrb3J6eXN0YWxpnG15IHByb2pla3RvciBmYW50b21vd3l8L2RvIGJ1ZG93eSBoaXBlcm5h
|
||||
cOpkdS4NCnsxMTMyMTV9ezExMzMyMH0vVGFruSBzYW25IG1vZHlmaWthY2rqfC9vamNpZWMgemFt
|
||||
b250b3dhsyB3IHR3b2ltIHN0YXRrdS4NCnsxMTMzNDJ9ezExMzQxNH0vVGFrIG90byBuYXJ66mR6
|
||||
aWUgbmFzemVqIHpndWJ5Li4uDQp7MTEzNDU3fXsxMTM1MTJ9L3N0YbNvIHNp6iBuYXN6eW0gd3li
|
||||
YXdpZW5pZW0uDQp7MTEzNjE3fXsxMTM3MjN9L1NwcmF3ZHphbGmcbXkgbmFzemUgZGF3bmUga29s
|
||||
b25pZXwvdyBwb3N6dWtpd2FuaXUgb3puYWsgv3ljaWEuDQp7MTEzODA0fXsxMTM4Njd9L1puYWxl
|
||||
n2xpnG15IGplZHluaWUgnG1pZXLmLg0KezExMzg4OH17MTEzOTk0fS9PZGNp6nRlIG9kIEtyeXB0
|
||||
b25hLHwvcGxhY/N3a2kgZGF3bm8gd3ltYXKzeS4NCnsxMTQwMTh9ezExNDEyM30vVXJhdG93YWxp
|
||||
nG15LCBjbyBzaeogZGGzbzp8L3picm9qZSwgYnJv8S4NCnsxMTQxMjZ9ezExNDE5M30vTmF3ZXQg
|
||||
amVkbrkgTWFjaGlu6iCMd2lhdPN3Lg0KezExNDIxMH17MTE0Mjg2fS9QcnpleiAzMyBsYXRhfC9j
|
||||
enluaWxpnG15IHByenlnb3Rvd2FuaWEsDQp7MTE0MjkxfXsxMTQzNjN9L2G/IHcga2/xY3Ugb2Rl
|
||||
YnJhbGmcbXl8L3N5Z25hsyBhbGFybW93eSwNCnsxMTQzNjZ9ezExNDQ3M30va3TzcnkgYWt0eXdv
|
||||
d2GzZZx8L25hIHN0YXJ5bSBzdGF0a3UgendpYWRvd2N6eW0uDQp7MTE0NDkwfXsxMTQ1NjB9VHkg
|
||||
bmFzIHR1IHNwcm93YWR6abNlnCwgS2FsLg0KezExNDU5M317MTE0Njk2fVcgdHdvamVqIG1vY3kg
|
||||
bGW/eXxvY2FsZW5pZSBuYXN6ZWogcmFzeS4NCnsxMTQ4MjZ9ezExNDkxMn1OYSBLcnlwdG9uaWUs
|
||||
IGtvZCBnZW5ldHljem55LHxtYWq5Y3ljaCBzaeogbmFyb2R6aeYgb3NvYm5pa/N3LA0KezExNDkx
|
||||
NX17MTE0OTg5fXphcGlzYW55IGJ5syB3IFJlamVzdHJ6ZSBPYnl3YXRlbGkuDQp7MTE1MDA2fXsx
|
||||
MTUxMzN9VHfzaiBvamNpZWMgc2tyYWSzIEtvZGV4fGkgdWtyebMgZ28gdyB0d29qZWoga2Fwc3Vs
|
||||
ZS4NCnsxMTUxNDV9ezExNTE4OH1QbyBjbz8NCnsxMTUxOTN9ezExNTI3NH1CeSBLcnlwdG9uIG3z
|
||||
Z7MgenJvZHpp5iBzaep8bmEgbm93by4uLg0KezExNTI4MX17MTE1MzIyfW5hIFppZW1pLg0KezEx
|
||||
NTc5Mn17MTE1ODQyfUdkemllIGplc3QgS29kZXg/DQp7MTE1ODgxfXsxMTU5NDN9SmWcbGkgS3J5
|
||||
cHRvbiBzaeogb2Ryb2R6aS4uLg0KezExNTk1NX17MTE2MDAxfWNvIHN0YW5pZSBzaeogeiBaaWVt
|
||||
abk/DQp7MTE2MDEzfXsxMTYwOTR9RG8gb2RidWRvd3kgcG90cnplYmEgZnVuZGFtZW5083cuDQp7
|
||||
MTE2MTAxfXsxMTYxODF9TmF3ZXQgdHfzaiBvamNpZWMgdG8gd2llZHppYbMuDQp7MTE2MzIyfXsx
|
||||
MTYzNzV9TmllLg0KezExNjQxNX17MTE2NTA5fS0gTmllIHByenljenluaeogc2nqIGRvIHRlZ28u
|
||||
fC0gQSBkbyBjemVnbyBzaeogcHJ6eWN6eW5pc3o/DQp7MTE2NTExfXsxMTY1MzV9TmllIQ0KezEx
|
||||
NjU3MX17MTE2NTk1fVByemVzdGHxIQ0KezExNjg0OX17MTE2OTU1fVR382ogb2pjaWVjIG9kc3pl
|
||||
ZLMgeiBob25vcmVtLg0KezExNzAwMH17MTE3MTAxfS0gWmFiabNlnCBnbz98LSBUYWsuDQp7MTE3
|
||||
MTA0fXsxMTcyMTF9UHJ6ZZxsYWR1amUgbW5pZSB0b3xrYb9kZWdvIGRuaWEuDQp7MTE3MjIxfXsx
|
||||
MTczNjV9QWxlIHpyb2Jps2J5bSB0byBwb25vd25pZS58TWFtIG9ib3dpuXplayB3b2JlYyBtb2pl
|
||||
Z28gbHVkdS4NCnsxMTczNjd9ezExNzQ5MH1OaWtvbXUgbmllIHBvendvbOosfGJ5IG1uaWUgb2Qg
|
||||
dGVnbyBvZHdp82SzLg0KezExNzg1NH17MTE3OTA3fUNvIHNp6iBkemllamUsIG1ham9yemU/DQp7
|
||||
MTE3OTA5fXsxMTgwMDB9RHdhIG9iaWVrdHl8d3lzdGFydG93YbN5IHogb2ty6nR1IG9iY3ljaC4N
|
||||
CnsxMTgwMzR9ezExODA2NX1UbyBvbmUuDQp7MTE4MDY3fXsxMTgxNDd9V3lrb3J6eXN0YWpjaWUg
|
||||
SS1Db20gNC58TXVzeuogd2llZHppZeYgY2+cIHdp6mNlai4NCnsxMTgxNTl9ezExODIxOH1Lb2Qg
|
||||
bmEgZHppc2lhaiB0byAiVHLzanq5YiIuDQp7MTE4MjIxfXsxMTgzMTl9LSBOYWRsYXR1arkgZHdh
|
||||
IHN0YXRraSBvYmN5Y2gufC0gTWFteSBkYW5lIHogSS1Db20gNC4NCnsxMTgzMjR9ezExODQ0MX0t
|
||||
IFBy6mRrb5zmP3wtIDM4MCB36nqz83cuIE5pZSBvZHBvd2lhZGFquSBuYSB3ZXp3YW5pYS4NCnsx
|
||||
MTg0NTF9ezExODUwNH1TemtvZGEgd3lzabNrdS4NCnsxMTg1MjN9ezExODY0M31TabNhLCBrdPNy
|
||||
uSBjemVycGllc3ogemUgU7Nv8WNhLHxuYSBuYXN6eW0gc3RhdGt1IG5pZSBkemlhs2EuDQp7MTE4
|
||||
NjQ1fXsxMTg3ODd9VyB0eW0gnHJvZG93aXNrdXxqZXN0ZZwgdHlsa28gend5a7N5bSBjerNvd2ll
|
||||
a2llbS4NCnsxMjAxNzN9ezEyMDI2OH0tIFNruWQgc2nqIHd6abmzZZw/fC0gS2x1Y3osIHBhbm5v
|
||||
IExhbmUuDQp7MTIwMjczfXsxMjAzNTd9WmGzYWRvd2GzYZwgbW5pZSBkbyBwYW1p6mNpIGtvbXB1
|
||||
dGVyYS4NCnsxMjAzNjJ9ezEyMDQ0M30tIEtpbSBqZXN0ZZw/fC0gT2pjZW0gS2FsYS4NCnsxMjA0
|
||||
Nzl9ezEyMDU4MH0tIE1vv2VzeiBuYW0gcG9t82M/fC0gWmJ1ZG93YbNlbSB0ZW4gc3RhdGVrLg0K
|
||||
ezEyMDU5NH17MTIwNjg2fU1vZ+ogcHJ6eXN0b3Nvd2HmfGplZ28gYXRtb3NmZXLqIGRsYSBsdWR6
|
||||
aS4NCnsxMjA3MDB9ezEyMDc5Nn1Nb79lbXkgaWNoIHBvd3N0cnp5bWHmLnxPZGVzs2HmIHogcG93
|
||||
cm90ZW0gZG8gU3RyZWZ5IFdpZG1vLg0KezEyMDgxMH17MTIwODY1fS0gSmFrP3wtIFBva2G/6iBj
|
||||
aS4NCnsxMjA4NzB9ezEyMDk3OH1BIHR5IHBva2G/ZXN6IEthbG93aS58UG9tb79lc3ogbWk/DQp7
|
||||
MTIxMjk3fXsxMjEzNTd9WmGzb2dhIHN0YXRrdSBqdb8gd2llLnxNdXNpbXkgc2nqIHBvc3BpZXN6
|
||||
eeYuDQp7MTIxMzU5fXsxMjE0MDd9V3ljablnbmlqIGtsdWN6Lg0KezEyMTU4MH17MTIxNjQ1fS0g
|
||||
VHkgdG8genJvYmmzZZw/fC0gVGFrLiBQb2RuaWWcIGJyb/EuDQp7MTIxODgwfXsxMjE5MjN9Q28g
|
||||
c2nqIGR6aWVqZT8NCnsxMjI0MjF9ezEyMjQ2OX1QbyB0d29qZWogcHJhd2VqLiBPZ25pYSENCnsx
|
||||
MjI0OTZ9ezEyMjU0NH1aYSB0b2K5IQ0KezEyMjgzMX17MTIyODkxfVdzablknyBkbyBrYXBzdbN5
|
||||
IHJhdHVua293ZWouDQp7MTIyOTAzfXsxMjI5NTF9QmV6cGllY3puZWogcG9kcvO/eS4NCnsxMjI5
|
||||
NTR9ezEyMzAyOH1aYXBld25lIHdp6mNlaiBzaeogbmllIHpvYmFjenlteS4NCnsxMjMwNDJ9ezEy
|
||||
MzExOX1QYW1p6nRhaiwga2x1Y3pvd3kgZG8gaWNoIHBvd3N0cnp5bWFuaWF8amVzdCBuYXDqZCBm
|
||||
YW50b21vd3kuDQp7MTIzMTQ2fXsxMjMxOTN9R7Nvd2EgdyBsZXdvLg0KezEyMzgyNn17MTIzOTAx
|
||||
fVpvZCBt83dpsyBwcmF3ZOogbyBLb2RleGllPw0KezEyMzkwMX17MTIzOTQ5fVJvemJpaiB0ZW4g
|
||||
cGFuZWwuDQp7MTI0MDMwfXsxMjQxMDl9Q2hjaWVsaZxteSwgYnmcIHdwaWVyd3xuYXVjenmzIHNp
|
||||
6iBieeYgY3qzb3dpZWtpZW0uDQp7MTI0MTE5fXsxMjQxODR9QnmcLCB3ZSB3s2GcY2l3eW0gY3ph
|
||||
c2llLA0KezEyNDE4OH17MTI0MjY1fW3zZ7MgYnnmIHBvbW9zdGVtfG1p6mR6eSBkd2llbWEgcmFz
|
||||
YW1pLg0KezEyNDMyNX17MTI0MzczfVNw82pyei4NCnsxMjQ0MjN9ezEyNDQ2Mn1Mb2lzLg0KezEy
|
||||
NDQ2NH17MTI0NTE5fU1vv2VzeiBquSBvY2FsaeYuDQp7MTI0NTY1fXsxMjQ2MjJ9TW+/ZXN6IG9j
|
||||
YWxp5iBpY2ggd3N6eXN0a2ljaC4NCnsxMjY0OTd9ezEyNjU2Mn1UdSBi6mR6aWVzeiBiZXpwaWVj
|
||||
em5hLg0KezEyNjU5MX17MTI2NjgyfS0gV3N6eXN0a28gdyBwb3J6uWRrdT98LSBUYWsuDQp7MTI2
|
||||
NzM1fXsxMjY4ODN9TmllIGNoY2lhs2FtIGltIG5pYyBwb3dpZWR6aWXmLHxhbGUgamFrb5wgd25p
|
||||
a27qbGkgZG8gbW9qZWogZ7Nvd3kuLi4NCnsxMjY4ODN9ezEyNjk2N31Kdb8gZG9icnplLCBMb2lz
|
||||
LnxaZSBtbrkgenJvYmlsaSB0byBzYW1vLg0KezEyNzI3Mn17MTI3MzIwfUNsYXJrIQ0KezEyNzUy
|
||||
MX17MTI3NjE1fUdkemllIHN0YXRlaywgdyBrdPNyeW0gcHJ6eWJ5sz8NCnsxMjc2NTN9ezEyNzcx
|
||||
M31JZJ8gZG8gZGlhYrNhLg0KezEyNzk1MH17MTI3OTk4fVRhbS4NCnsxMjg1MjF9ezEyODU4Nn1L
|
||||
b2RleHUgdGFtIG5pZSBtYS4NCnsxMjg3MzR9ezEyODc4N30tIEdkemllIGdvIHVrcnmzP3wtIE5p
|
||||
ZSB3aWVtLg0KezEyODc4N317MTI4ODQ5fUdkemllIGplc3QgS29kZXg/IQ0KezEyOTE4N317MTI5
|
||||
MjYyfUphayCcbWllc3ogc3RyYXN6eeYgbW9quSBtYXRr6j8hDQp7MTMwMjQyfXsxMzAyODF9Q2+c
|
||||
IHR5IG1pIHpyb2Jpsz8NCnsxMzAyODF9ezEzMDM3N31Sb2R6aWNlIG5hdWN6eWxpIG1uaWUsfGph
|
||||
ayB3eW9zdHJ6eeYgem15c7N5Lg0KezEzMDQyMH17MTMwNTE2fUphayBza3VwaeYgc2nqIG5hIHR5
|
||||
bSx8Y28gY2hj6iB6b2JhY3p55i4NCnsxMzA1MTh9ezEzMDYwMn1CZXogaGWzbXUgb2RiaWVyYXN6
|
||||
IHdzenlzdGtpZSBib2SfY2UuDQp7MTMwNjE2fXsxMzA3MDB9Qm9sZXNuZSwgcHJhd2RhPw0KezEz
|
||||
MTc4Mn17MTMxODI1fS9PZGVqZJ9jaWUgb2Qgb2tpZW4hDQp7MTMxODg3fXsxMzE5NjJ9U2Nob3dh
|
||||
amNpZSBzaeoufFR1IG5pZSBqZXN0IGJlenBpZWN6bmllLg0KezEzMjA0M317MTMyMTE3fS9UdSBT
|
||||
dHJhv25paywgdGVyZW4gY3p5c3R5Lg0KezEzMjEyMn17MTMyMjQyfU1pYbNlbSBqdb8gZG8gY3p5
|
||||
bmllbmlhfHogdHltaSBpc3RvdGFtaS4NCnsxMzIyNDd9ezEzMjM0MH0vU7kgYmFyZHpvIG5pZWJl
|
||||
enBpZWN6bmUufC9NYW15IHByYXdvIHW/eeYgYnJvbmkuDQp7MTMyNDAzfXsxMzI0NTh9L1Byenlq
|
||||
ubNlbS58L1pibGm/YW15IHNp6iBkbyBjZWx1Lg0KezEzMjU4Mn17MTMyNjY2fS8tIEdvdG93aSBk
|
||||
byBvc3RyemGzdS58Ly0gMS0xLCBwcnp5armzZW0uDQp7MTMyNzMxfXsxMzI3OTh9L1R1IEdyb20g
|
||||
MS0xLnwvTmFtaWVyenmzZW0gdHJ6eSBjZWxlLg0KezEzMzE4OX17MTMzMjcxfVBvdHdpZXJkemFt
|
||||
IHRyYWZpZW5pZS58TmF0eWNobWlhc3QgcG93dPNyeiBvc3RyemGzLg0KezEzMzI3NX17MTMzMzkz
|
||||
fS9Qcnp5armzZW0ufC9Sb2JpbXkgZHJ1Z2llIHBvZGVqnGNpZS4NCnsxMzM1NTh9ezEzMzY1N30v
|
||||
R3JvbSAxLTEsIGthdGFwdWx0dWpjaWUgc2nqIQ0KezEzMzkxNn17MTMzOTgwfS9OYWRsYXR1amUg
|
||||
bmllemlkZW50eWZpa293YW55IG9iaWVrdCENCnsxMzQ0NDF9ezEzNDQ5M31KZXN0ZZwgc7NhYnks
|
||||
IHN5bnUgRWxhLg0KezEzNDQ5M317MTM0NTQ5fUJyYWsgY2kgcGV3bm+cY2kgc2llYmllLg0KezEz
|
||||
NDY1NH17MTM0NzY0fUZha3QsIL9lIG1hY2llIHBvY3p1Y2llIG1vcmFsbm+cY2ksfGt083JlZ28g
|
||||
bmFtIGJyYWssDQp7MTM0NzY3fXsxMzQ4NDh9ZGFqZSBuYW0gcHJ6ZXdhZ+ogdyBld29sdWNqaS4N
|
||||
CnsxMzQ5MjN9ezEzNDk5NH1BIGplnGxpIGhpc3RvcmlhIGN6ZWdva29sd2llayBkb3dvZHppLi4u
|
||||
DQp7MTM1MjE1fXsxMzUzMDR9dG8gd7NhnG5pZSB0ZWdvLHy/ZSBld29sdWNqYSB6YXdzemUgd3ln
|
||||
cnl3YS4NCnsxMzU4MTB9ezEzNTg5NH0vUG9kY2hvZHppbXkgZG8gbLlkb3dhbmlhLg0KezEzNjg5
|
||||
Nn17MTM2OTY4fURvIHdzenlzdGtpY2gsfG1hY2llIG5hd2m5emHmIHdhbGvqLg0KezEzNjk2OH17
|
||||
MTM3MDM3fUEgY28geiBnb5xjaWVtIHcgbmllYmllc2tpbT8NCnsxMzcwNDB9ezEzNzEwMn0vU3Ry
|
||||
emVsYeYgZG8gd3N6eXN0a2ljaCENCnsxMzczNjZ9ezEzNzQxNH0vS29udGFrdCENCnsxMzc2Mzd9
|
||||
ezEzNzY4MH1KZXN0ZZwgY2GzeT8NCnsxMzc3OTV9ezEzNzg0M31TcGFkYW15IQ0KezEzNzg2Mn17
|
||||
MTM3OTQxfS9Qcnp5Z290b3dh5iBzaeogbmEgdWRlcnplbmllIQ0KezEzODA4NX17MTM4MTkwfS9U
|
||||
dSBVcGFks3kgQW5pb7MufC9TdHJhv25payB6ZXN0cnplbG9ueS4NCnsxMzg3MTZ9ezEzODgwOX0v
|
||||
R3JvbSAxLTIgZG8gU3RyYb9uaWthLCBvZGJp83I/DQp7MTM4ODA5fXsxMzg5MzF9RGFqY2llIHpt
|
||||
YXNvd2FueSBvc3RyemGzfG5hIG1varkgcG96eWNq6i4NCnsxMzg5MzF9ezEzODk5Nn1acm96dW1p
|
||||
YbNlbSwgcG93b2R6ZW5pYS4NCnsxMzk5Njl9ezE0MDA3N31BIG5hZ3JvZLkgamVnbyAtIGhvbm9y
|
||||
b3dhIJxtaWVy5i4NCnsxNDAzNjV9ezE0MDQxOH1OaWUgd3lncmFzei4NCnsxNDA0Mjd9ezE0MDUy
|
||||
MX1aYSBrYb9kZWdvIG9jYWxvbmVnbyBjerNvd2lla2EsfHphYmlqZW15IG1pbGlvbiBpbm55Y2gu
|
||||
DQp7MTQxNzY4fXsxNDE4MzV9L1RlcmVuIHphYmV6cGllY3pvbnk/DQp7MTQxODQwfXsxNDE5MzZ9
|
||||
L0Rydb95bmEgQWxmYSwgc7N5c3p5Y2llIG1uaWU/DQp7MTQzMTMwfXsxNDMxOTd9VGVuIGN6s293
|
||||
aWVrfG5pZSBqZXN0IG5hc3p5bSB3cm9naWVtLg0KezE0MzIzN317MTQzMjg1fUR6aeprdWrqLCBw
|
||||
dbNrb3duaWt1Lg0KezE0MzcxMH17MTQzNzM5fS9NYW1vPw0KezE0Mzc1M317MTQzODA2fU5pYyBt
|
||||
aSBuaWUgamVzdCENCnsxNDQwODZ9ezE0NDEzNH2jYWRueSBrb3N0aXVtLg0KezE0NDE1OH17MTQ0
|
||||
MjA2fVByenlrcm8gbWkuDQp7MTQ0MjExfXsxNDQyNTl9VG8gdHlsa28gcHJ6ZWRtaW90eS4NCnsx
|
||||
NDQzMDR9ezE0NDM2Mn1aYXdzemUgbW+/bmEgamUgemFzdLlwaeYuDQp7MTQ0NDE3fXsxNDQ0Njd9
|
||||
QWxlIHdhcyBuaWUgbW+/bmEuDQp7MTQ0NDc5fXsxNDQ1MTF9TWFtby4uLg0KezE0NDUxMX17MTQ0
|
||||
NjA0fVpvZCBwb3dpZWR6aWGzLCC/ZSB0ZW4gS29kZXh8bW+/ZSBzcHJvd2FkemnmIG3zaiBsdWQu
|
||||
DQp7MTQ0NjA5fXsxNDQ2NTd9VG8gY2h5YmEgZG9icnplPw0KezE0NDc1MH17MTQ0ODI1fU9uaSBj
|
||||
aHliYSBuaWUgemFtaWVyemFquXxkemllbGnmIHNp6iB0eW0gnHdpYXRlbS4NCnsxNDQ4MjV9ezE0
|
||||
NDg3MH1DbGFyayENCnsxNDQ5Mzd9ezE0NDk5NX1XaWVtLCBqYWsgaWNoIHBvd3N0cnp5bWHmLg0K
|
||||
ezE0NTAzM317MTQ1MTYwfS0gQ28gdGFtIHNp6iBzdGGzbz98LSBPa2F6YbMgY2h3aWxvd7kgc7Nh
|
||||
Ym+c5i4NCnsxNDUxNjN9ezE0NTI5N31UbyBiZXogem5hY3plbmlhLHxwb25pZXdhvyB6bG9rYWxp
|
||||
em93YbNlbSBLb2RleC4NCnsxNDUzMjZ9ezE0NTM5MH1OaWdkeSBuaWUgYnmzbyBnbyB3IGthcHN1
|
||||
bGUuDQp7MTQ1MzkwfXsxNDU0ODl9L0pvci1FbCBnbyB6YWJyYbMufC9ETkEgbWlsaWFyZPN3IGx1
|
||||
ZHppLg0KezE0NTQ4OX17MTQ1NTc1fS9TY2FsabMgZ28geiBrb23zcmthbWkgd7Nhc25lZ28gc3lu
|
||||
YS4NCnsxNDU1Nzd9ezE0NTcwNX0vV3N6eXNjeSBzcGFka29iaWVyY3kgS3J5cHRvbmF8L795arkg
|
||||
dyBjaWVsZSBqZWRuZWdvIHVjaG9kn2N5Lg0KezE0NTgxMH17MTQ1OTQ3fUN6eSBLYWwtRWwgbXVz
|
||||
aSBieeYgv3l3eSx8Ynkgb2R6eXNrYeYgS29kZXggeiBqZWdvIGtvbfNyZWs/DQp7MTQ1OTY4fXsx
|
||||
NDYwMDJ9TmllLg0KezE0NjEzOX17MTQ2MTk0fVVydWNob21p5iBNYWNoaW7qIIx3aWF083cuDQp7
|
||||
MTQ2OTY2fXsxNDcwMTh9LSBDbyBzaeogZHppZWplP3wtIFN0YXRlayBzaeogcm96ZHppZWxpsy4N
|
||||
CnsxNDcwMTh9ezE0NzEwMn1QaWVyd3N6eSBjerNvbiBwb3J1c3phIHNp6iBuYSB3c2No82QsfGRy
|
||||
dWdpIGplc3QgbmFkIHBvs3Vkbmlvd7kgcPOza3VsuS4NCnsxNDcxMDV9ezE0NzIwOH0tIEphayBz
|
||||
enlia28gbGVjaT98LSBNYWNoIDI0IGkgcHJ6eXNwaWVzemEuDQp7MTQ3MjA4fXsxNDczMDl9UHJh
|
||||
d2RvcG9kb2JuaWUgdWRlcnp5fHcgcG+zdWRuaW93eW0gcmVqb25pZSBPY2VhbnUgSW5keWpza2ll
|
||||
Z28uDQp7MTQ3NzMxfXsxNDc4MzR9LSBSZXN6dGEgc3RhdGt1IGplc3QgY29yYXogYmxpv2VqLnwt
|
||||
IERhaiB0byBuYSBla3Jhbi4NCnsxNDc4NDh9ezE0Nzg4Nn1Cb79lIQ0KezE0ODg2MH17MTQ4OTQ0
|
||||
fVVydWNob21p5iBzaWxuaWsgZmFudG9tb3d5IQ0KezE0OTQ1MH17MTQ5NTIyfUplc3RlnG15IHBv
|
||||
ZLO5Y3plbmkgZG8gTWFjaGlueS4NCnsxNDk1MzZ9ezE0OTU4Nn1aYWN6eW5hbXkuDQp7MTUwMzY4
|
||||
fXsxNTA0MzB9Q28gdG8gamVzdD8NCnsxNTA0MzB9ezE1MDU2Mn1XeWdsuWRhIG5hIGpha7mcIGJy
|
||||
b/EgZ3Jhd2l0YWN5am65LnxEemlhs2EgdyBwYXJ6ZSB6ZSBzdGF0a2llbS4NCnsxNTA1Njl9ezE1
|
||||
MDYzNH1XIGpha2mcIHNwb3PzYnx6d2nqa3N6YWq5IG1hc+ogWmllbWksDQp7MTUwNjM0fXsxNTA3
|
||||
MDR9c2tyYXBsYWq5YyBhdG1vc2ZlcuouDQp7MTUwNzQyfXsxNTA3OTB9Qm+/ZSENCnsxNTA4MTZ9
|
||||
ezE1MDg4OH0tIFRvIHRlcnJhZm9ybWFjamEufC0gQ28gdG8gdGFraWVnbz8NCnsxNTA5MDB9ezE1
|
||||
MDk5Nn1Jbr95bmllcmlhIHBsYW5ldGFybmEsfG1vZHlmaWt1arljYSBhdG1vc2ZlcuogaSB0b3Bv
|
||||
Z3JhZmnqIFppZW1pLg0KezE1MDk5Nn17MTUxMDU2fVphbWllbmlharkgWmllbWnqIHcgS3J5cHRv
|
||||
bmEuDQp7MTUxMDU4fXsxNTExNDJ9LSBBIGNvIHogbmFtaT98LSBaIHR5Y2ggb2Rjenl083cgd3lu
|
||||
aWthLA0KezE1MTE0N317MTUxMTkwfb9lIG5pZSBi6mR6aWUgv2FkbnljaCAibmFzIi4NCnsxNTEx
|
||||
OTN9ezE1MTMyMn1QYW5pZSBnZW5lcmFsZS58UHWza293bmlrIEhhcmR5IGplZHppZSB0dSB6IFN1
|
||||
cGVybWFuZW0uDQp7MTUxMzMyfXsxNTEzNzJ9U3VwZXJtYW5lbT8NCnsxNTEzNzV9ezE1MTQ1Nn1U
|
||||
eW0gb2JjeW0ufFRhayBnbyBuYXp5d2FquS4NCnsxNTE1OTN9ezE1MTY3OX0tIE1hbXkgcGxhbiwg
|
||||
Z2VuZXJhbGUufC0gQ3p5IHRvIGplc3QgdG8sIGNvIG15nGzqPw0KezE1MTY5MX17MTUxNzQ0fVRv
|
||||
IHN0YXRlaywga3TzcnltIHByenlsZWNpYbMuDQp7MTUxNzczfXsxNTE4Mzh9U3RhdGVrIG5hcOpk
|
||||
emFueSBqZXN0fHNpbG5pa2llbSBmYW50b21vd3ltLg0KezE1MTg0MH17MTUxOTI5fVphZ2luYSBw
|
||||
cnplc3RyemXxLnxTdGF0ZWsgWm9kYSB1v3l3YSB0ZWogc2FtZWogdGVjaG5vbG9naWkuDQp7MTUx
|
||||
OTI5fXsxNTE5ODl9SmWcbGkgemRlcnp5bXkgemUgc29iuXxkd2EgbmFw6mR5Li4uDQp7MTUxOTg5
|
||||
fXsxNTIwNTN9LSBNb79lIHBvd3N0YeYgb3NvYmxpd2+c5i58LSBDb5wgamFrIGN6YXJuYSBkeml1
|
||||
cmE/DQp7MTUyMDUzfXsxNTIxNjZ9VGFrLiBKZZxsaSBvdHdvcnp5IHNp6iBwcnplapxjaWUsfHBv
|
||||
d2lubmkgem9zdGHmIGRvIG5pZWdvIHdjablnbmnqY2kuDQp7MTUyMTY4fXsxNTIyMjZ9TWFteSBp
|
||||
Y2ggdHltIHpib21iYXJkb3dh5j8NCnsxNTIyMjZ9ezE1MjMxMH1KZZxsaSBzdGF0ZWsgd2G/eSBt
|
||||
bmllanxuab8gOCB0b24sDQp7MTUyMzEwfXsxNTIzOTl9bW+/ZW15IHpyenVjaeYgZ28geiBDLTE3
|
||||
LnxUbyB3eWtvbmFsbmUuDQp7MTUyMzk5fXsxNTI0NjN9SmWcbGkgbmllIHBvd3N0cnp5bWFtfHRl
|
||||
aiBtYXN6eW55IG5hZCBvY2VhbmVtLA0KezE1MjQ2Nn17MTUyNTQwfXNps2EgZ3Jhd2l0YWNqaSBi
|
||||
6mR6aWUgcm9zbrnmLg0KezE1MjY3NH17MTUyNzYxfUplnGxpIHRhIG1hc3p5bmF8dXBvZGFibmlh
|
||||
IFppZW1p6iBkbyBLcnlwdG9uYSwNCnsxNTI3NjF9ezE1MjgyMX1i6mR6aWVzeiBzs2Fic3p5IHcg
|
||||
amVqIHBvYmxpv3U/DQp7MTUyODI1fXsxNTI5NjB9TW+/bGl3ZSwgYWxlIHRvIG1uaWUgbmllIHBv
|
||||
d3N0cnp5bWEuDQp7MTUyOTYyfXsxNTMwMzR9TGVwaWVqIHNp6iBvZHN18S4NCnsxNTMwNjN9ezE1
|
||||
MzExM31Ucm9jaOogZGFsZWouDQp7MTUzODczfXsxNTM5NTB9LSBGYW9yYSwgcHJ6ZWptaWogZG93
|
||||
b2R6ZW5pZS58LSBUYWsgamVzdC4NCnsxNTM5NTB9ezE1NDA5MX1NdXN66iB6YWJlenBpZWN6eeYg
|
||||
a29tb3LqIG5hcm9kemlufGkgerNvv3nmIGhvs2Qgc3RhcmVtdSBwcnp5amFjaWVsb3dpLg0KezE1
|
||||
NDI3Nn17MTU0Mzc3fS9TdHJhv25payB3IGRyb2R6ZSBkbyBNZXRyb3BvbGlzLnxNYW15ILNhZHVu
|
||||
ZWsuDQp7MTU0NTA2fXsxNTQ2Mjh9Ri0zNSBsZWO5IG5hIG1pZWpzY2Ugc3BvdGthbmlhLg0KezE1
|
||||
NTY5NX17MTU1ODAzfS9LbHVjeiBwcnp5aup0eS58L1ezuWN6YW0ga29tb3LqIG5hcm9kemluLg0K
|
||||
ezE1NTgwNn17MTU1ODkwfS9QcnplcndpaiB0bywgWm9kLHwvcPNraSBqZXN6Y3plIGN6YXMuDQp7
|
||||
MTU1OTIzfXsxNTYwMTJ9TmF3ZXQgcG8gnG1pZXJjaXxuaWUgcHJ6ZXN0YWplc3ogbW5pZSBwb3Vj
|
||||
emHmLg0KezE1NjAxNH17MTU2MDYwfU5pZSBwb3p3b2zqIHW/eeYgS29kZXh1fHcgdGFraW0gY2Vs
|
||||
dS4NCnsxNTYwNjB9ezE1NjEwNX1OaWUgbW+/ZXN6IG1uaWUgcG93c3RyenltYeYuDQp7MTU2MTA1
|
||||
fXsxNTYxODR9S2x1Y3osIGt083J5IHdwcm93YWR6abNlbSx8em5vc2kgdHdvamUgdXByYXduaWVu
|
||||
aWEuDQp7MTU2MTg0fXsxNTYyNTR9VGVyYXogamEga29udHJvbHVq6iB0ZW4gc3RhdGVrLg0KezE1
|
||||
NzAxNn17MTU3MDg4fS9Cs3lza2F3aWNhIDEgZG8gZG9382R6dHdhLnwvUHJvc3rqIG8gemV6d29s
|
||||
ZW5pZSBuYSBhdGFrLg0KezE1NzA4OH17MTU3MjA2fVVkemllbGFtIHplendvbGVuaWEufFpkYXdh
|
||||
aiByYXBvcnQgbyB6bmlzemN6ZW5pYWNoLg0KezE1NzUzMH17MTU3NTczfS9Bd2lvbmlrYSB3YXJp
|
||||
dWplLg0KezE1NzU3NX17MTU3NjU0fS9HcmF3aXRhY2phIJxjablnYSByYWtpZXR5IHcgZPOzLnwv
|
||||
TXVzaW15IHBvZGxlY2ll5iBibGm/ZWouDQp7MTU3Nzc0fXsxNTc4ODl9V3N6eXNjeSBvcHVzemN6
|
||||
YW15IGJ1ZHluZWshDQp7MTU4NDI2fXsxNTg0NzR9L1N0cmFjabNlbSBza3J6eWSzb3dlZ28hDQp7
|
||||
MTU4NTE3fXsxNTg1NjN9L01heWRheSwgbWF5ZGF5LCBtYXlkYXkhDQp7MTU4ODE5fXsxNTg4ODJ9
|
||||
VOpkeSENCnsxNTg4ODR9ezE1ODk4N31TenliY2llaiENCnsxNTkxMTR9ezE1OTE2N31KZW5ueSEN
|
||||
CnsxNTkyMjd9ezE1OTI1M31Cb79lIQ0KezE1OTI2NX17MTU5Mjk5fVBlcnJ5IQ0KezE1OTM5N317
|
||||
MTU5NDMzfVTqZHkhDQp7MTU5NTkxfXsxNTk2Mzd9TmFzemUgcmFzeSBtb2e5IGtvZWd6eXN0b3dh
|
||||
5i4NCnsxNTk2Mzd9ezE1OTczOH2vZWJ5nG15IGNpZXJwaWVsaSx8cHLzYnVquWMgc2nqIHByenlz
|
||||
dG9zb3dh5iBqYWsgdHfzaiBzeW4/DQp7MTU5NzQwfXsxNTk3ODN9VG8gbHVkb2LzanN0d28uDQp7
|
||||
MTU5NzgzfXsxNTk4NzJ9T3dzemVtLiBBIHJvenRyerlzYW18amVnbyB6YXNhZG5vnOYgeiBkdWNo
|
||||
ZW0uDQp7MTU5OTAxfXsxNTk5ODl9T2JhaiBqZXN0ZZxteSBkdWNoYW1pLCBab2QufE5pZSByb3p1
|
||||
bWllc3ogdGVnbz8NCnsxNTk5OTJ9ezE2MDAzMH1Ud29qZWdvIEtyeXB0b25hIGp1vyBuaWUgbWEu
|
||||
DQp7MTYwMDMwfXsxNjAxMTR9U3RhdGVrLCB3aWVzeiwgamFrIHBvemJ55iBzaep8dGVqIG5hcGFz
|
||||
dGxpd2VqIGludGVsaWdlbmNqaT8NCnsxNjAxMTR9ezE2MDE2N30vLSBUYWsgamVzdC58LSBQcnp5
|
||||
Z290dWogc2nqIGRvIGplaiB3ebO5Y3plbmlhLg0KezE2MDE2N317MTYwMjcwfS0gTWFtIGRvnOYg
|
||||
dGVqIGRlYmF0eS58LSBVY2lzemVuaWUgbW5pZSBuaWN6ZWdvIG5pZSB6bWllbmkuDQp7MTYwMzA0
|
||||
fXsxNjAzNjF9TfNqIHN5bi4uLg0KezE2MDM2M317MTYwNDI4fWplc3QgbGVwc3p5IG9kIGNpZWJp
|
||||
ZS4NCnsxNjA0NTB9ezE2MDQ5OH1Eb2tv8WN6eSB0bywgY28gemFjeupsaZxteS4NCnsxNjA1Mjd9
|
||||
ezE2MDU5NH1Nb2fqIGNpIHRvIG9iaWVjYeYuDQp7MTYwNjcwfXsxNjA4MTl9UG9zaWFkYXN6IHdz
|
||||
cG9tbmllbmlhfGkgnHdpYWRvbW+c5iBKb3ItRWxhLg0KezE2MDgxOX17MTYwODgxfUN6eSBtb79l
|
||||
c3ogZG+cd2lhZGN6eeYgamVnbyBi82x1Pw0KezE2MDkwOH17MTYxMDE4fVd5cnfqIEtvZGV4IHpl
|
||||
IHp3s29rIHR3b2plZ28gc3luYS4NCnsxNjEwMjB9ezE2MTE1N31PZGJ1ZHVq6iBLcnlwdG9uIG5h
|
||||
IGplZ28gcHJvY2hhY2guDQp7MTYyNTI0fXsxNjI1ODh9SmVubnksIGdkemllIGplc3RlnD8hDQp7
|
||||
MTYyNTk4fXsxNjI2ODJ9LSBUdXRhaiF8LSBUcnp5bWFqIHNp6i4NCnsxNjI2OTR9ezE2Mjc1Nn1V
|
||||
dGtu6rNhbSwgbmllIG1vZ+ogc2nqIHV3b2xuaeYuDQp7MTYyNzU2fXsxNjI4MTR9V3ljablnbmll
|
||||
bXkgY2nqIHN0uWQufE5pZSBydXN6YWogc2nqLg0KezE2MjgzM317MTYyOTAzfS0gTmllIHpvc3Rh
|
||||
d2lhaiBtbmllLCBwcm9zeuohfC0gTmllIHpvc3Rhd2lteSBjaeouDQp7MTYyOTI3fXsxNjMwMTB9
|
||||
LSBMb21iYXJkLCBwb23zvyBtaSF8LSBOaWVjaCB0byBzemxhZy4NCnsxNjMwNzN9ezE2MzExOH0t
|
||||
IE11c2lteSB0byBwcnplc3VuueYufC0gVHJ6eW1hai4NCnsxNjMxMTh9ezE2MzE3Nn1Qb2R3Yb8s
|
||||
IGEgamEgYupk6iBwY2hhsy4NCnsxNjMyOTN9ezE2MzM0NH1QY2hhaiENCnsxNjMzNDR9ezE2MzM4
|
||||
OX1aYmxpv2Egc2nqISBQY2hhaiENCnsxNjM0MTh9ezE2MzQ5Mn1TdHJhv25payBkbyBkb3fzZHp0
|
||||
d2EsfGN6eSBtb79lc3ogZG9rb25h5iB6cnp1dHU/DQp7MTYzNDkyfXsxNjM1Mzh9T2RtYXdpYW0u
|
||||
DQp7MTY1NDE1fXsxNjU0NjN9VWRhs28gbXUgc2nqLg0KezE2NTUwNH17MTY1NTkzfVN0cmG/bmlr
|
||||
IGRvIGRvd/NkenR3YSx8amVzdGWcbXkgZ290b3dpIGRvIHpyenV0dS4NCnsxNjU1OTN9ezE2NTY3
|
||||
OX1Qb3dvZHplbmlhLiBVemJyb2nmILNhZHVuZWsufE1hY2llIHplendvbGVuaWUgbmEgenJ6dXQu
|
||||
DQp7MTY1Njg5fXsxNjU3MzR9VG8gb3N0YXRuaWUgcG9kZWqcY2llLg0KezE2NTc1OH17MTY1ODI4
|
||||
fVRlcmF6IHdzenlzdGtvIHphbGW/eXxvZCBjaWViaWUgaSBIYW1pbHRvbmEuDQp7MTY2NzUzfXsx
|
||||
NjY3ODR9VG8gY2h5YmEgamFraZwgv2FydC4NCnsxNjY3ODR9ezE2Njg4MH0tIKNhZHVuZWsgdXpi
|
||||
cm9qb255PyBNb79lbXkgenJ6dWNh5j98LSBOaWUgbW+/ZW15IQ0KezE2Njg4N317MTY2OTQwfUNv
|
||||
nCBqZXN0IG5pZSB0YWsufFRvIG5pZSBwb3dpbm5vIHRhayByb2Jp5i4NCnsxNjY5NDB9ezE2NzAy
|
||||
OX0tIEEgamFrIHBvd2lubm8/fC0gUG93aW5ubyB3ZWqc5iBkbyBrb/FjYS4NCnsxNjcwMjl9ezE2
|
||||
NzExNX0tIE5pZWNoIHNp6iBwcnp5anJ66i58LSBQcnplam1paiBzdGVyeS4NCnsxNjcxMjB9ezE2
|
||||
NzE2OH1Qcnplam11auogc3RlcnkuDQp7MTY3MzE5fXsxNjczODF9RGxhY3plZ28gbmllIGplc3Rl
|
||||
nG15fGdvdG93aSBkbyB6cnp1dHU/DQp7MTY3Mzg0fXsxNjc0MzJ9TWFteSB0dSBkcm9ibnkgcHJv
|
||||
YmxlbS4NCnsxNjc3OTF9ezE2Nzg0OX1OYW1pZXJ6eeYgb2JpZWt0Lg0KezE2NzkyMX17MTY3OTU5
|
||||
fS9DZWwgbmFtaWVyem9ueS4NCnsxNjgxOTR9ezE2ODIyM31TdPNqIQ0KezE2ODIyM317MTY4MzM4
|
||||
fUplnGxpIHpuaXN6Y3p5c3ogdGVuIHN0YXRlayx8em5pc3pjenlzeiBy83duaWW/IEtyeXB0b25h
|
||||
IQ0KezE2ODQxNX17MTY4NDcyfUtyeXB0b24gbWlhsyBzd29quSBzemFuc+ohDQp7MTY5NzUyfXsx
|
||||
Njk4NTN9UGFubm8gTGFuZSF8VGFtIGplc3QgbmllYmV6cGllY3puaWUhDQp7MTcwNTU4fXsxNzA1
|
||||
OTl9UnVzemFqIQ0KezE3MTA5OH17MTcxMTkxfUEgbmFncm9kuSBqZWdvIC0gaG9ub3Jvd2EgnG1p
|
||||
ZXLmLg0KezE3MjY2Nn17MTcyNzIzfVpuaWtu6mxpPw0KezE3MjczNX17MTcyNzg1fUNoeWJhIHRh
|
||||
ay4NCnsxNzI4MDl9ezE3Mjg0OH1PbiBuYXMgb2NhbGmzLg0KezE3MzQ0NX17MTczNTUzfU3zd2m5
|
||||
LCC/ZSBwbyBwaWVyd3N6eW0gcG9jYbN1bmt1fGplc3QganW/IHogZ/Nya2kuDQp7MTczNjEwfXsx
|
||||
NzM3MDl9VHlsa28gd3RlZHksfGplnGxpIGNhs3VqZXN6IGN6s293aWVrYS4NCnsxNzQzODd9ezE3
|
||||
NDQzMH1TcPNqcnouDQp7MTc0NDgxfXsxNzQ1Nzl9TmEgdHltIHB5bGUgbW9nbGmcbXkgemJ1ZG93
|
||||
YeZ8bm93ZWdvIEtyeXB0b25hLg0KezE3NDU4MX17MTc0NjY1fUplZG5hayBwcnplZLNvv3mzZZwg
|
||||
bHVkeml8cG9uYWQgbmFzLg0KezE3NDY4NH17MTc0Nzk1fUNlbGVtIG1vamVqIGVnenlzdGVuY2pp
|
||||
fGplc3Qgb2Nocm9uYSBLcnlwdG9uYS4NCnsxNzQ4MzN9ezE3NDkzNH1UYWtpIGNlbCBvdHJ6eW1h
|
||||
s2VtIHByenkgbmFyb2R6aW5hY2guDQp7MTc0OTU1fXsxNzUwNjZ9S2G/ZGUgZHppYbNhbmllLHxv
|
||||
Ym9q6nRuaWUgamFrIGJydXRhbG5lLA0KezE3NTA2OH17MTc1MTk3fWphayBva3J1dG5lLHxwb2Rl
|
||||
am11auogdyBpbWnqIHd5v3N6ZWdvIGRvYnJhLi4uDQp7MTc1MjAwfXsxNzUyNTN9bW9qZWdvIGx1
|
||||
ZHUuDQp7MTc1MzUxfXsxNzU0NTJ9QSB0ZXJheiBuaWUgbWFtIHN3b2plZ28gbHVkdS4NCnsxNzU1
|
||||
MzF9ezE3NTYwN31Nb2phIGR1c3phLi4uDQp7MTc1NjEwfXsxNzU3Mzd9T2RlYnJhs2WcIG1pIGq5
|
||||
IQ0KezE3NTkxNH17MTc2MDE1fVNwcmF3aeosIL9lIGx1ZHppZSx8a3TzcnljaCBwcnp5Z2Fybrmz
|
||||
ZZwsIGLqZLkgY2llcnBpZeYuDQp7MTc2MDE3fXsxNzYxNDJ9LSBPZGJpb3LqIGNpIGljaCwgamVk
|
||||
bmVnbyBwbyBkcnVnaW0ufC0gSmVzdGWcIHBvdHdvcmVtLCBab2QuDQp7MTc2MTk3fXsxNzYyNjR9
|
||||
SSB6YW1pZXJ6YW0gY2nqIHBvd3N0cnp5bWHmLg0KezE3ODY2Mn17MTc4NzI3fVRvIHNp6iBtb79l
|
||||
IHNrb/FjennmfHR5bGtvIHcgamVkZW4gc3Bvc/NiIQ0KezE3ODcyN317MTc4ODAxfYxtaWVyY2m5
|
||||
IGplZG5lZ28geiBuYXMhDQp7MTc5NTM1fXsxNzk2MjF9VXJvZHpps2VtIHNp6iB3b2pvd25pa2ll
|
||||
bSwgS2FsLg0KezE3OTYyM317MTc5NzIyfUNhs2Ugv3ljaWUgdHJlbm93YbNlbSBtb2plIHpteXOz
|
||||
eS4NCnsxNzk3MjR9ezE3OTgxMH1BIGdkemllIHR5IHRyZW5vd2GzZZw/fE5hIGZhcm1pZT8hDQp7
|
||||
MTgyOTAzfXsxODMwMDZ9U2tvcm8gdGFrIGJhcmR6byBpY2gga29jaGFzei4uLg0KezE4MzAxOH17
|
||||
MTgzMDkzfW1vv2VzeiB6YWN6ueYgaWNoIG9ws2FraXdh5i4NCnsxODMxNzl9ezE4MzIzMn1OaWUg
|
||||
cvNiIHRlZ28hDQp7MTgzMjg3fXsxODMzMzJ9UHJ6ZXN0YfEhDQp7MTgzNDU1fXsxODM1MDh9Tmll
|
||||
IQ0KezE4MzUzNH17MTgzNTY1fU5pZ2R5Lg0KezE4NTgzMX17MTg1OTE3fS0gT2RiabNvIGNpPyF8
|
||||
LSBKZWRlbiB6IHR3b2ljaCBkcm9u83cgendpYWRvd2N6eWNoLg0KezE4NTkxOX17MTg2MDI1fS0g
|
||||
VG8gamVzdCB3YXJ0ZSAxMiBtaWxpb27zdyF8LSBCebNvLg0KezE4NjAyN317MTg2MTAyfVdpZW0s
|
||||
IL9lIHBy82J1amVzeiB3eZxsZWR6aeYsfGdkemllIG9kd2llc3phbSBwZWxlcnlu6i4NCnsxODYx
|
||||
MDJ9ezE4NjE4MX0tIE5pYyB6IHRlZ28ufC0gWmF0ZW0gemFkYW0gY2kgb2N6eXdpc3RlIHB5dGFu
|
||||
aWU6DQp7MTg2MTg4fXsxODYyNjd9U2u5ZCBwZXdub5zmLCC/ZSBraWVkeZx8bmllIHp3cvNjaXN6
|
||||
IHNp6iBwcnplY2l3a28gQW1lcnljZT8NCnsxODYyNzB9ezE4NjM4N31XeWNob3dhs2VtIHNp6iB3
|
||||
IEthbnNhcy58SnW/IGJhcmR6aWVqIEFtZXJ5a2FuaW5lbSBieeYgbmllIG1vv25hLg0KezE4NjM4
|
||||
OX17MTg2NTE0fUplc3RlbSB0dSwgYnkgcG9tYWdh5ix8YWxlIG5hIG1vaWNoIHdhcnVua2FjaC4N
|
||||
CnsxODY1MTZ9ezE4NjYxN30tIE11c2kgcGFuIHByemVrb25h5iBXYXN6eW5ndG9uLnwtIE5hd2V0
|
||||
IGdkeWJ5bSBjaGNpYbMgc3By82Jvd2HmLi4uDQp7MTg2NjI3fXsxODY3NTR9LSBza7lkIHdpZXN6
|
||||
LCC/ZSBtbmllIHd5c7N1Y2hhark/fC0gTmllIHdpZW0uDQp7MTg2NzU2fXsxODY4MDl9Q2h5YmEg
|
||||
Yupk6iBtdXNpYbMgcGFudSB6YXVmYeYuDQp7MTg3MDMwfXsxODcxMjV9LSBaIGN6ZWdvnCBzaeog
|
||||
cGFuaSBjaWVzenksIGthcGl0YW5pZT98LSBaIG5pY3plZ28uDQp7MTg3MTg4fXsxODcyNDh9UG8g
|
||||
cHJvc3R1IG5pZXqzZSB6IG5pZWdvIGNpYWNoby4NCnsxODcyNzd9ezE4NzM0NH0tIERvIHdvenUs
|
||||
IGthcGl0YW5pZS58LSBUYWsgamVzdC4NCnsxODc1NzF9ezE4NzY2MH1aYXdzemUgd2llcnp5syx8
|
||||
v2UgamVzdGWcIHN0d29yem9ueSBkbyB3eb9zenljaCBjZWzzdy4NCnsxODc2NjV9ezE4Nzc3OH1B
|
||||
IGtpZWR5IG5hZGVqZHppZSBkemll8Sx8dWSfd2lnbmllc3ogc3dvamUgYnJ6ZW1p6i4NCnsxODc4
|
||||
MDJ9ezE4NzkyNn0tIENoY2lhs2J5bSwgv2VieSBt82ezIHRvIHpvYmFjennmLnwtIFdpZHppYbMg
|
||||
dG8sIHV3aWVyeiBtaS4NCnsxODkwNTZ9ezE4OTEzNX0vQ28gYupkemllc3ogcm9iabMsfC9raWVk
|
||||
eSBuaWUgYupkemllc3ogemJhd2lhsyCcd2lhdGE/DQp7MTg5MTM1fXsxODkyMDl9LSBNeZxsYbNl
|
||||
nCBqdb8gbyB0eW0/fC0gTXmcbGGzZW0uDQp7MTg5MjU5fXsxODkzOTR9UG9zenVrYW0gcHJhY3ks
|
||||
fHcga3TzcmVqIGLqZOogYmxpc2tvIHd5ZGFyemXxLg0KezE4OTQ4Mn17MTg5NTk1fS9XIGt083Jl
|
||||
aiBuaWtvZ28gbmllIHpkeml3aSx8L79lIHd5c3Rhd2lhbSBzaeogbmEgbmllYmV6cGllY3pl8XN0
|
||||
d28sDQp7MTg5NjA5fXsxODk2NjJ9L2FsYm8gv2UgemFkYWrqIHB5dGFuaWEuDQp7MTg5OTcxfXsx
|
||||
OTAwNTh9S2llZHkgdyBrb/FjdXxkYXN6IHNp6iB6YXByb3Np5iwgTG9pcz8NCnsxOTAwNzJ9ezE5
|
||||
MDE0Nn1OYWpsZXBzemUgbWllanNjYSBuYSBkemlzaWVqc3p5IG1lY3oufENvIHR5IG5hIHRvPw0K
|
||||
ezE5MDE0OX17MTkwMjc2fUxlcGllaiBzcHLzYnVqIHplIHN0Yb95c3RrYW1pLnxOYSBwZXdubyBt
|
||||
YXN6IHdp6mtzemUgc3phbnNlLg0KezE5MDI4MX17MTkwMzI0fVByemVwcmFzemFtLg0KezE5MDM1
|
||||
N317MTkwNDI3fS0gTmFqbGVwc3plIG1pZWpzY2E/fC0gTmllIHLzYiB0ZWdvLg0KezE5MDQzNH17
|
||||
MTkwNTMwfU9wcm93YWSfY2llIG5hc3plZ28gbm93ZWdvIHJlcG9ydGVyYS4NCnsxOTA1MzB9ezE5
|
||||
MDYxMn1QcnplZHN0YXdpYW0gQ2xhcmthIEtlbnRhLnxQb3dvZHplbmlhLCBts29keS4NCnsxOTA2
|
||||
NTB9ezE5MDcxMH0tIEN6ZZzmLCBqZXN0ZW0gU3RldmUufC0gTWmzbyBtaS4NCnsxOTA3MjJ9ezE5
|
||||
MDc1M31DemWc5i4NCnsxOTA3NjN9ezE5MDg2Nn1Mb2lzIExhbmUsIHdpdGFqIHcgVGhlIFBsYW5l
|
||||
dC4NCnsxOTA5NDJ9ezE5MTAwNX1DaWVzeuogc2nqLCC/ZSB0dSBqZXN0ZW0uDQp7MTkxMTIwfXsx
|
||||
OTExOTJ9Q1qjT1dJRUsgWkUgU1RBTEkNCnsxOTEyMDR9ezE5MTI2NH1Us3VtYWN6ZW5pZTogc2lu
|
||||
dTYNCnsxOTEyNzh9ezE5MTMyNH0+PiBSZWxlYXNlMjQucGwgPDwNCg==
|
||||
headers:
|
||||
cache-control: [public]
|
||||
connection: [close]
|
||||
content-type: [text/html]
|
||||
date: ['Fri, 30 Oct 2015 08:02:30 GMT']
|
||||
server: [Apache]
|
||||
vary: [Accept-Encoding]
|
||||
x-powered-by: [PleskLin]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,20 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
User-Agent: [Subliminal/1.1]
|
||||
method: GET
|
||||
uri: http://napiprojekt.pl/unit_napisy/dl.php?f=abcdabdcabcd1234abcd1234abcd123&pass=&l=PL&nick=&kolejka=false&t=4afc4&napios=Linux&v=dreambox
|
||||
response:
|
||||
body: {string: !!python/unicode 'NPc0'}
|
||||
headers:
|
||||
cache-control: [public]
|
||||
connection: [close]
|
||||
content-length: ['4']
|
||||
content-type: [text/html]
|
||||
date: ['Fri, 30 Oct 2015 08:02:30 GMT']
|
||||
server: [Apache]
|
||||
vary: [Accept-Encoding]
|
||||
x-powered-by: [PleskLin]
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,976 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: '<?xml version=''1.0''?>
|
||||
|
||||
<methodCall>
|
||||
|
||||
<methodName>LogIn</methodName>
|
||||
|
||||
<params>
|
||||
|
||||
<param>
|
||||
|
||||
<value><string></string></value>
|
||||
|
||||
</param>
|
||||
|
||||
<param>
|
||||
|
||||
<value><string></string></value>
|
||||
|
||||
</param>
|
||||
|
||||
<param>
|
||||
|
||||
<value><string>eng</string></value>
|
||||
|
||||
</param>
|
||||
|
||||
<param>
|
||||
|
||||
<value><string>subliminal v1.1</string></value>
|
||||
|
||||
</param>
|
||||
|
||||
</params>
|
||||
|
||||
</methodCall>
|
||||
|
||||
'
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['317']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA6WRTQrCMBCF954idG+TRkUXY3oAF4I3SJvxt0lKforHt60BRUQFd98M8+Y9ZqC8
|
||||
6oZ06PzJmnVW5CwjaGqrTuawzmLYT1dZKSagMRyt2qFvrfHYN1rppPZiQu7UA4FONhEHIuCDi3UY
|
||||
mfRiXaG7FwSM1CiCvaABOnLqP9RpQR9BzLExRYvnmV0cnC72bMFrziu1WgJNI0lOn/RAny3f+fsg
|
||||
Q/Q/BOCMke3mTzOsrVEf3ZSNVYOC5YxxoKn6ZjamSmd+TAFNH0ngB3r93w3lUby4+AEAAA==
|
||||
headers:
|
||||
accept-ranges: [bytes]
|
||||
access-control-allow-headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
access-control-allow-origin: ['*']
|
||||
age: ['0']
|
||||
cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
content-encoding: [gzip]
|
||||
content-length: ['223']
|
||||
content-type: [text/xml;charset=UTF-8]
|
||||
date: ['Thu, 29 Oct 2015 22:51:53 GMT']
|
||||
expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
pragma: [no-cache]
|
||||
server: [lighttpd/1.4.36]
|
||||
set-cookie: [PHPSESSID=4eln1pej3o5grm1f052c22bd87; path=/; domain=.opensubtitles.org]
|
||||
strict-transport-security: [max-age=63072000; includeSubdomains; preload]
|
||||
x-cache: [MISS]
|
||||
x-cache-backend: [web3]
|
||||
x-content-type-options: [nosniff]
|
||||
x-frame-options: [DENY]
|
||||
x-uncompressed-content-length: ['504']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '<?xml version=''1.0''?>
|
||||
|
||||
<methodCall>
|
||||
|
||||
<methodName>SearchSubtitles</methodName>
|
||||
|
||||
<params>
|
||||
|
||||
<param>
|
||||
|
||||
<value><string>4eln1pej3o5grm1f052c22bd87</string></value>
|
||||
|
||||
</param>
|
||||
|
||||
<param>
|
||||
|
||||
<value><array><data>
|
||||
|
||||
<value><struct>
|
||||
|
||||
<member>
|
||||
|
||||
<name>moviebytesize</name>
|
||||
|
||||
<value><string>7033732714</string></value>
|
||||
|
||||
</member>
|
||||
|
||||
<member>
|
||||
|
||||
<name>sublanguageid</name>
|
||||
|
||||
<value><string>fre,ger</string></value>
|
||||
|
||||
</member>
|
||||
|
||||
<member>
|
||||
|
||||
<name>moviehash</name>
|
||||
|
||||
<value><string>5b8f8f4e41ccb21e</string></value>
|
||||
|
||||
</member>
|
||||
|
||||
</struct></value>
|
||||
|
||||
<value><struct>
|
||||
|
||||
<member>
|
||||
|
||||
<name>imdbid</name>
|
||||
|
||||
<value><int>770828</int></value>
|
||||
|
||||
</member>
|
||||
|
||||
<member>
|
||||
|
||||
<name>sublanguageid</name>
|
||||
|
||||
<value><string>fre,ger</string></value>
|
||||
|
||||
</member>
|
||||
|
||||
</struct></value>
|
||||
|
||||
</data></array></value>
|
||||
|
||||
</param>
|
||||
|
||||
</params>
|
||||
|
||||
</methodCall>
|
||||
|
||||
'
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['739']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
LE3y8qj/A57tT3FA4AAA
|
||||
headers:
|
||||
accept-ranges: [bytes]
|
||||
access-control-allow-headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
access-control-allow-origin: ['*']
|
||||
age: ['0']
|
||||
cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
content-encoding: [gzip]
|
||||
content-length: ['2409']
|
||||
content-type: [text/xml;charset=UTF-8]
|
||||
date: ['Thu, 29 Oct 2015 22:51:53 GMT']
|
||||
expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
pragma: [no-cache]
|
||||
server: [lighttpd/1.4.36]
|
||||
set-cookie: [PHPSESSID=4eln1pej3o5grm1f052c22bd87; path=/; domain=.opensubtitles.org]
|
||||
strict-transport-security: [max-age=63072000; includeSubdomains; preload]
|
||||
x-cache: [MISS]
|
||||
x-cache-backend: [web3]
|
||||
x-content-type-options: [nosniff]
|
||||
x-frame-options: [DENY]
|
||||
x-uncompressed-content-length: ['57408']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '<?xml version=''1.0''?>
|
||||
|
||||
<methodCall>
|
||||
|
||||
<methodName>DownloadSubtitles</methodName>
|
||||
|
||||
<params>
|
||||
|
||||
<param>
|
||||
|
||||
<value><string>4eln1pej3o5grm1f052c22bd87</string></value>
|
||||
|
||||
</param>
|
||||
|
||||
<param>
|
||||
|
||||
<value><array><data>
|
||||
|
||||
<value><string>1953767650</string></value>
|
||||
|
||||
</data></array></value>
|
||||
|
||||
</param>
|
||||
|
||||
</params>
|
||||
|
||||
</methodCall>
|
||||
|
||||
'
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['292']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
headers:
|
||||
accept-ranges: [bytes]
|
||||
access-control-allow-headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
access-control-allow-origin: ['*']
|
||||
age: ['0']
|
||||
cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
content-encoding: [gzip]
|
||||
content-length: ['33330']
|
||||
content-type: [text/xml;charset=UTF-8]
|
||||
date: ['Thu, 29 Oct 2015 22:51:58 GMT']
|
||||
download-quota: ['199']
|
||||
expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
p3p: [CP="CUR ADM OUR NOR STA NID"]
|
||||
pragma: [no-cache]
|
||||
server: [lighttpd/1.4.36]
|
||||
set-cookie: [PHPSESSID=4eln1pej3o5grm1f052c22bd87; path=/; domain=.opensubtitles.org,
|
||||
'OAID=1f833196028ac14049e63aaf5029bd2f; expires=Fri, 28-Oct-2016 22:51:53
|
||||
GMT; Max-Age=31536000; path=/', 'OAID=1f833196028ac14049e63aaf5029bd2f;
|
||||
expires=Fri, 28-Oct-2016 22:51:53 GMT; Max-Age=31535998; path=/']
|
||||
strict-transport-security: [max-age=63072000; includeSubdomains; preload]
|
||||
x-cache: [MISS]
|
||||
x-cache-backend: [web3]
|
||||
x-content-type-options: [nosniff]
|
||||
x-frame-options: [DENY]
|
||||
x-uncompressed-content-length: ['44335']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '<?xml version=''1.0''?>
|
||||
|
||||
<methodCall>
|
||||
|
||||
<methodName>LogOut</methodName>
|
||||
|
||||
<params>
|
||||
|
||||
<param>
|
||||
|
||||
<value><string>4eln1pej3o5grm1f052c22bd87</string></value>
|
||||
|
||||
</param>
|
||||
|
||||
</params>
|
||||
|
||||
</methodCall>
|
||||
|
||||
'
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['176']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQQQ6DIBBF956CuK9QV12MeIAumvQGKNPWRKBhwPT4RSXRNE27e5/5M38YaF9m
|
||||
ZBN6GpxtymMlSoa2d3qw96aM4XY4la0swGB4OH1FejpLmB6eyitDsmArJWAwqTHiTAwo+NiHhVlq
|
||||
Nh36VTCwyqCkoEIk4IvIha09T0g7yFoIdjkDzzJb+c4LfD//axj2zuqfadrFbkQpKiFq4Fn9C1u2
|
||||
yt/cXMDzRTLQTJ/3ewOeSfZ8eAEAAA==
|
||||
headers:
|
||||
accept-ranges: [bytes]
|
||||
access-control-allow-headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
access-control-allow-origin: ['*']
|
||||
age: ['0']
|
||||
cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
content-encoding: [gzip]
|
||||
content-length: ['193']
|
||||
content-type: [text/xml;charset=UTF-8]
|
||||
date: ['Thu, 29 Oct 2015 22:52:00 GMT']
|
||||
expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
pragma: [no-cache]
|
||||
server: [lighttpd/1.4.36]
|
||||
set-cookie: [PHPSESSID=4eln1pej3o5grm1f052c22bd87; path=/; domain=.opensubtitles.org]
|
||||
strict-transport-security: [max-age=63072000; includeSubdomains; preload]
|
||||
x-cache: [MISS]
|
||||
x-cache-backend: [web2]
|
||||
x-content-type-options: [nosniff]
|
||||
x-frame-options: [DENY]
|
||||
x-uncompressed-content-length: ['376']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '<?xml version=''1.0''?>
|
||||
|
||||
<methodCall>
|
||||
|
||||
<methodName>close</methodName>
|
||||
|
||||
<params>
|
||||
|
||||
</params>
|
||||
|
||||
</methodCall>
|
||||
|
||||
'
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['99']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQSw6DMAxE95zCYl8SpC5ayYQTdNMbBGJaJJKgfFCPXz6RQFXV7t7YGY9jrF96
|
||||
gImc762p8rLgOZBprerNo8pj6E6XvBYZagpPq+7kR2s8zYVROqm9yGCjGQAnOURaCNAHF9uwMsxm
|
||||
3ZDbBKCRmoQPMkSPbBWpsdvThHkHceZXuK3hYGyAzkajkKVmMrKDE9kx7Ws0tdaon9nKxmYgwQvO
|
||||
S2RJ/Qtbt0qf3l8hS/dJ4Bf6vOYbZMIxSIYBAAA=
|
||||
headers:
|
||||
accept-ranges: [bytes]
|
||||
access-control-allow-headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
access-control-allow-origin: ['*']
|
||||
age: ['0']
|
||||
content-encoding: [gzip]
|
||||
content-length: ['200']
|
||||
content-type: [text/xml;charset=UTF-8]
|
||||
date: ['Thu, 29 Oct 2015 22:52:00 GMT']
|
||||
server: [lighttpd/1.4.36]
|
||||
strict-transport-security: [max-age=63072000; includeSubdomains; preload]
|
||||
x-cache: [MISS]
|
||||
x-cache-backend: [web2]
|
||||
x-content-type-options: [nosniff]
|
||||
x-frame-options: [DENY]
|
||||
x-uncompressed-content-length: ['390']
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
@@ -0,0 +1,294 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: '<?xml version=''1.0''?>
|
||||
|
||||
<methodCall>
|
||||
|
||||
<methodName>LogIn</methodName>
|
||||
|
||||
<params>
|
||||
|
||||
<param>
|
||||
|
||||
<value><string></string></value>
|
||||
|
||||
</param>
|
||||
|
||||
<param>
|
||||
|
||||
<value><string></string></value>
|
||||
|
||||
</param>
|
||||
|
||||
<param>
|
||||
|
||||
<value><string>eng</string></value>
|
||||
|
||||
</param>
|
||||
|
||||
<param>
|
||||
|
||||
<value><string>subliminal v1.1</string></value>
|
||||
|
||||
</param>
|
||||
|
||||
</params>
|
||||
|
||||
</methodCall>
|
||||
|
||||
'
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['317']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA6WRQW7CQAxF95xilH2ZgZaKhRkO0AVSbzAkbghkbBR7Io7fEEYCVRUgsXu2/P2/
|
||||
bFifYmt67KRhWhWzqSsMUslVQ/WqSPrztizWfgIRdcfVN8qRSXBoHEMXoviJudAABvrQJjyTAdEu
|
||||
lTqyGcRxi92lMEAholc+IIEdOfev6rxgiODreq+9MM8b/Dg4qnG2WH5qk2gBNo9kub3Rg721/M9f
|
||||
NGiSJwLMnTObrxfNsGSq7rpVnLYtejd17h1srh6Zjanyma9TYPNHMsiZ/v7vF/pHrFX4AQAA
|
||||
headers:
|
||||
accept-ranges: [bytes]
|
||||
access-control-allow-headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
access-control-allow-origin: ['*']
|
||||
age: ['0']
|
||||
cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
content-encoding: [gzip]
|
||||
content-length: ['225']
|
||||
content-type: [text/xml;charset=UTF-8]
|
||||
date: ['Thu, 29 Oct 2015 22:51:53 GMT']
|
||||
expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
pragma: [no-cache]
|
||||
server: [lighttpd/1.4.36]
|
||||
set-cookie: [PHPSESSID=ggjtvsoo2ie4k0nge1586tiun5; path=/; domain=.opensubtitles.org]
|
||||
strict-transport-security: [max-age=63072000; includeSubdomains; preload]
|
||||
x-cache: [MISS]
|
||||
x-cache-backend: [web3]
|
||||
x-content-type-options: [nosniff]
|
||||
x-frame-options: [DENY]
|
||||
x-uncompressed-content-length: ['504']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '<?xml version=''1.0''?>
|
||||
|
||||
<methodCall>
|
||||
|
||||
<methodName>SearchSubtitles</methodName>
|
||||
|
||||
<params>
|
||||
|
||||
<param>
|
||||
|
||||
<value><string>ggjtvsoo2ie4k0nge1586tiun5</string></value>
|
||||
|
||||
</param>
|
||||
|
||||
<param>
|
||||
|
||||
<value><array><data>
|
||||
|
||||
<value><struct>
|
||||
|
||||
<member>
|
||||
|
||||
<name>query</name>
|
||||
|
||||
<value><string>Marvels Agents of S.H.I.E.L.D.</string></value>
|
||||
|
||||
</member>
|
||||
|
||||
<member>
|
||||
|
||||
<name>sublanguageid</name>
|
||||
|
||||
<value><string>hun</string></value>
|
||||
|
||||
</member>
|
||||
|
||||
<member>
|
||||
|
||||
<name>episode</name>
|
||||
|
||||
<value><int>6</int></value>
|
||||
|
||||
</member>
|
||||
|
||||
<member>
|
||||
|
||||
<name>season</name>
|
||||
|
||||
<value><int>2</int></value>
|
||||
|
||||
</member>
|
||||
|
||||
</struct></value>
|
||||
|
||||
</data></array></value>
|
||||
|
||||
</param>
|
||||
|
||||
</params>
|
||||
|
||||
</methodCall>
|
||||
|
||||
'
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['599']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA+1cbXObOBD+3l/B5GbuG0Jg3uyj7iSxO/E0aXJxrjd33wQSNhdeXCScpL/+ZIwT
|
||||
x7FL5Vgt12M8Y0sgpGeX3WW1z2Dv3X0SK3OS0yhL3x7pAB4pJA0yHKWTt0cFC1X36F3/jZcQNs3w
|
||||
NaGzLKWEH5ihHCW0/0ZZtnhD8eYoLsiipXiU5UXAyrbCL058ki87ipeihPQpQ6ygnlZ2qhNPl1cz
|
||||
cAx9A0Ll8oOnVd1qqLY21tPW59+2GEYMfW0plOfoYdVTvMXwx97G2E3ZqkPPFlXWlr5ALJgSfPLw
|
||||
bP0dM6+JHRZxzMg92xBceSn+6tBLCLtRjQbjwr/I5hF5H8VEEBqUg6mEc4botEFwTh4YGUdfmqSh
|
||||
myghF+NmACrNiEUs3seM9K5lmrZpwo4ccBzaAtVH3hZEdoHyOYkpOJ6QlFGQhWAMzsAIDME5GIAx
|
||||
NIbQBsfgfY4CVuQEg7OsoAQ4BpyBP4cn6oAPG1hA5xcZtqmejAHNJTkyF/KYg0Dx6UBU/dIA7eEw
|
||||
pt015JnBPkGlEwYdHGCfOF3HDEMXGwTbGFmmH+o6lqe8c0TZjbB7w56p92Q50pOXC8KyXNfqdrty
|
||||
UP1BST4SNXpJcbC8b+mkQBMiDGlapPLiX5YniAkCkhmrxkXSoEB1XPCcNj/NkoTHeTFU2uHBYDxA
|
||||
TNTFDKibqq6r0FV4EOh0eRyQpq4ThBvjbteI8WlF4QB5gAbZXRpnCNNTUVPqd1zHlpgwXpOYILpP
|
||||
HqQcPBGSKOb7K9GnpmEBCKVlxiUo0VDnmo7hSkU0SrAvmpxBx7VcmXuaPWzz11865m9Lu1SyUFm3
|
||||
y/KUcqw8mqVSmqVk/EPRcHTgR0gJ5C+C8j2eIBJVs7C3vYK1CyTuCwkqDaMZj7NFJvsxCm7FveDA
|
||||
JjQaX9qdrnD+Kkcrq4R6j9hwVqQTlEdIXmJd5Yy0GQa02OJyx+fzjpIZihpl2Ncovf2xqTXJI0LH
|
||||
PAXKUtHQKOl2lYiGs4hmWNS0ZSaKH6JU1HDISghZZt2UzWJ5y0YXg5MrlAtvFvtGxzYtV5Y5Ff6w
|
||||
ImwEYZ1e6YYlyfd/L0j+cLVghggjuUig3KBWdqzyuNDnxUJbpt+xwpr4yXJ3o6DHLJKCKYgAATHA
|
||||
YKtatmtmh3LqkJOdEaAe+/Y4cFB4dFfIrEe33dIPi67w4ypDiLZFrXqQuwpvgjDLOTZt9pAVhfNI
|
||||
9AnanzI262kajkE2Iymtqrd8A59PNJJquJpZC6OY8B+aByqaRdo8D1W96zswsHSNRlidTP5hc5pl
|
||||
RkTMW5hOiG65NouK1NKe2Bsw+SInhPwdzb6DDviZDRWElkugH5A6FUgtb69K7nR/0e/u7rbL/nhg
|
||||
JUKdpMsIqWahStWpGqlEjVWsIjVc7bDV6WKHrb5qL/DSkV5c11LxG9BaKv5HQvq5qHiLfyRVgl5N
|
||||
xSvbK32Kqhj30OY/L6p94Gxw82n5Nfx0CaZFy8HXgLEMG1pN4uCRY6PANmFIINHtsNsxXRuHhtMx
|
||||
u12k237zOHjYsySlA6/g4B1btyUZWsvB14NqOfj/BwcP1Q5UdLdn6D1dEoXXcvDSOHjDkVUIOxAH
|
||||
/9oMqFHMO2yJ929B1RLvLfG+N6KWeK8F1BLvLfHeEu/S8umWeK+H1BLvNVBa4r0l3ndqZody6pC3
|
||||
xPtr0LXEuyzincDAsr+JeC+5mp+QeLcd6Pt+PfEusab9vYj3UoT/CPHuaeuvxHva+vvyz8bWv4pP
|
||||
SZCl+Ksv/uOMhxhSFol4tK16dYutC/E0ytOqPyeoGnTR2vwrg38BTRpXmwNBAAA=
|
||||
headers:
|
||||
accept-ranges: [bytes]
|
||||
access-control-allow-headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
access-control-allow-origin: ['*']
|
||||
age: ['0']
|
||||
cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
content-encoding: [gzip]
|
||||
content-length: ['1358']
|
||||
content-type: [text/xml;charset=UTF-8]
|
||||
date: ['Thu, 29 Oct 2015 22:51:53 GMT']
|
||||
expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
pragma: [no-cache]
|
||||
server: [lighttpd/1.4.36]
|
||||
set-cookie: [PHPSESSID=ggjtvsoo2ie4k0nge1586tiun5; path=/; domain=.opensubtitles.org]
|
||||
strict-transport-security: [max-age=63072000; includeSubdomains; preload]
|
||||
x-cache: [MISS]
|
||||
x-cache-backend: [web2]
|
||||
x-content-type-options: [nosniff]
|
||||
x-frame-options: [DENY]
|
||||
x-uncompressed-content-length: ['16643']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '<?xml version=''1.0''?>
|
||||
|
||||
<methodCall>
|
||||
|
||||
<methodName>LogOut</methodName>
|
||||
|
||||
<params>
|
||||
|
||||
<param>
|
||||
|
||||
<value><string>ggjtvsoo2ie4k0nge1586tiun5</string></value>
|
||||
|
||||
</param>
|
||||
|
||||
</params>
|
||||
|
||||
</methodCall>
|
||||
|
||||
'
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['176']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQTQ6CMBCF95yiYS+tunEx1AO4MPEGhY5KQlvSH+LxLTAJxBjdfa/zZt504Pwy
|
||||
PRvRh87ZutxXomRoW6c7+6jLFO+7U3mWBRiMT6dvGAZnA+aHQXllgizYQhkYjKpPOBGDEH1q48ws
|
||||
N5sG/SIYWGVQhqhiCsBnQYW1nSbkHeRBCHa9ACdJVr7xAt/O/xqGrbP6Z5p2qelRikqII3BS/8Lm
|
||||
reibqws4XYQgTPR5vzehOT3yeAEAAA==
|
||||
headers:
|
||||
accept-ranges: [bytes]
|
||||
access-control-allow-headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
access-control-allow-origin: ['*']
|
||||
age: ['0']
|
||||
cache-control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
|
||||
content-encoding: [gzip]
|
||||
content-length: ['193']
|
||||
content-type: [text/xml;charset=UTF-8]
|
||||
date: ['Thu, 29 Oct 2015 22:51:53 GMT']
|
||||
expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
|
||||
pragma: [no-cache]
|
||||
server: [lighttpd/1.4.36]
|
||||
set-cookie: [PHPSESSID=ggjtvsoo2ie4k0nge1586tiun5; path=/; domain=.opensubtitles.org]
|
||||
strict-transport-security: [max-age=63072000; includeSubdomains; preload]
|
||||
x-cache: [MISS]
|
||||
x-cache-backend: [web3]
|
||||
x-content-type-options: [nosniff]
|
||||
x-frame-options: [DENY]
|
||||
x-uncompressed-content-length: ['376']
|
||||
status: {code: 200, message: OK}
|
||||
- request:
|
||||
body: '<?xml version=''1.0''?>
|
||||
|
||||
<methodCall>
|
||||
|
||||
<methodName>close</methodName>
|
||||
|
||||
<params>
|
||||
|
||||
</params>
|
||||
|
||||
</methodCall>
|
||||
|
||||
'
|
||||
headers:
|
||||
Accept-Encoding: [gzip]
|
||||
Content-Length: ['99']
|
||||
Content-Type: [text/xml]
|
||||
User-Agent: [xmlrpclib.py/1.0.1 (by www.pythonware.com)]
|
||||
method: POST
|
||||
uri: https://api.opensubtitles.org/xml-rpc
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4WQSw6DMAxE95zCYl8SpC5ayYQTdNMbBGJaJJKgfFCPXz6RQFXV7t7YGY9jrF96
|
||||
gImc762p8rLgOZBprerNo8pj6E6XvBYZagpPq+7kR2s8zYVROqm9yGCjGQAnOURaCNAHF9uwMsxm
|
||||
3ZDbBKCRmoQPMkSPbBWpsdvThHkHceZXuK3hYGyAzkajkKVmMrKDE9kx7Ws0tdaon9nKxmYgwQvO
|
||||
S2RJ/Qtbt0qf3l8hS/dJ4Bf6vOYbZMIxSIYBAAA=
|
||||
headers:
|
||||
accept-ranges: [bytes]
|
||||
access-control-allow-headers: ['Origin, X-Requested-With, Content-Type, Accept']
|
||||
access-control-allow-origin: ['*']
|
||||
age: ['0']
|
||||
content-encoding: [gzip]
|
||||
content-length: ['200']
|
||||
content-type: [text/xml;charset=UTF-8]
|
||||
date: ['Thu, 29 Oct 2015 22:51:53 GMT']
|
||||
server: [lighttpd/1.4.36]
|
||||
strict-transport-security: [max-age=63072000; includeSubdomains; preload]
|
||||
x-cache: [MISS]
|
||||
x-cache-backend: [web3]
|
||||
x-content-type-options: [nosniff]
|
||||
x-frame-options: [DENY]
|
||||
x-uncompressed-content-length: ['390']
|
||||
status: {code: 200, message: OK}
|
||||
version: 1
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user