Téléchargement de séries : la classe américaine

Téléchargement de séries : la classe américaine

Salut à vous,

cela faisait déjà quelques temps que je souhaitais faire un mini-tutorial (et du partage de liens) sur le téléchargement de séries américaines. En effet, j’ai beau être scrupuleux sur les notions de piratage, etc… j’ai du mal à considérer le téléchargement de séries comme du piratage, dans la mesure où:

  1. les séries américaines ne passent pas toutes à la télé française
  2. il n’y a pas la possibilité (ou faible) de voir les séries américaines en VO (ou VOST) à la télé française
  3. il faut parfois attendre longtemps, longtemps qu’une série soit diffusée en France, sans garantie que la saison suivante le sera

Pour ces raisons, je télécharge assidument. Et j’ai décidé de vous faire partager les liens dont je dispose et autres petites astuces qui vont vous faciliter la vie.

Trouver la série qui vous intéresse

Plusieurs sources sont disponibles pour trouver la série qui vous intéresse, je ne vous communique bien entendu que mes préférées.

Arcadya est le site que je suis depuis sa création (il a été créé par des anciens de Jouteya, pour ceux qui connaissent). Une interface épurée vous permet, en tapant le nom de la série qui vous intéresse, de télécharger au choix les saisons terminées, mais aussi les saisons en cours. Vous pouvez de plus vous renseigner sur les date de parution des prochains épisodes. En ouvrant un compte sur Arcadya, vous aurez la possibilité de sauvegarder la liste de vos séries préférées, et même de créer un flux RSS de celles-ci (si, ça sert à quelquechose, continuez à lire…)

Arcadya

Arcadya

TV-underground est un site russe (aïe) en anglais (ouf) qui contient une tonne de liens torrent. Aussi bien (mieux?) fourni que Arcadya, la recherche est néanmoins plus complexe.

Télécharger la série

Bon, OK, vous avez trouvé la série qui vous intéresse. Il faut donc maintenant la télécharger. Les séries sont généralement téléchargeables en Torrent, il vous faut donc un client Torrent, je vous en conseille deux :

Le client utorrent est tout léger (moins de 2 Mo) et contient toutes les fonctionnalités nécessaires d’un bon client Torrent. Je le conseille pour une utilisation PC. Il est aussi à noter que utorrent est utilisable en version portable, sur une clé USB (commencez le téléchargement chez vous, terminez le au travail ;)

utorrent

utorrent

Vuze fait plus partie des mastodontes. Ce client bittorent vous propose un player intégré, dispose d’une interface de téléchargement de bandes annonces en HD, un moteur de recherche et une conversion automatique de vos téléchargements en différents formats, notamment en mp4 pour intégration sur un iPhone, par exemple. J’utilise Vuze sur Mac.

La raison pour laquelle je mets en avant ces deux outils est que chacun peut intégrer un flux RSS. Cela vous permet de laisser votre client bittorent travailler à votre place, et débuter le téléchargement automatiquement dès qu’un nouvel épisode sort. Vous avez compris ? Ouvrez un compte sur Arcadya, sélectionner vos séries préférées et intégrez le flux RSS proposé dans votre client bittorent. Et voilà !

Trouver les sous-titres qui vont bien

Hein? quoi? comment ça vous n’êtes pas bilingues? Vous devez trouver des sous-titres? Bon, voici encore quelques liens :

Déjà entendu parler de ce site ? Arcadya permet effectivement de télécharger les sous-titres des séries, en plus des séries elles-mêmes. En revanche, le téléchargement se fait ici directement, pas par le biais de torrents. Arcadya dispose de sa propre team de sous-titrage (AGT -Arcadya Global Team) mais récupère aussi pas mal de sous-titres du web. Cela fait que parfois la disponibilité ou la rapidité des sous-titres laisse à désirer…

Si on jugeait tous les sites web à leur graphisme, je ne me serais jamais arrêté sur Podnapisi (et vous ne seriez peut être même pas en train de lire cet article). Podnapisi est pour moi la meilleure source de sous-titres du web. Pour les séries, entre autres. Vous pouvez rechercher un sous-titre dans n’importe quelle langue, pour la série, saison et épisode que vous souhaitez. Les sous-titres en français sont généralement disponibles dès le lendemain de la diffusion de la série. Une référence !

Interface de recherche de Podnapisi.net

Interface de recherche de Podnapisi.net

Mater la série

Voilà. Vous avez téléchargé la version complète de Battlestar Galactica (en bon geek que vous êtes) et vous voulez vous faire une soirée « séries ». Reste plus qu’à regarder tout ça. Comme il se fait tard et qu’avec les outils que je vais présenter j’ai l’impression d’enfoncer des portes ouvertes, je vais faire ça vite.

  • Windows media player avec extension vobsub

Windows Media Player ne lit pas les sous-titres par défaut. Vous devez donc renommer le sous-titre exactement comme le fichier de l’épisode à regarder, stocker tout ça dans le même répertoire et surtout installer vobsub. Une fois installé, vobsub se lance en même temps que WMP afin de lire les sous-titres.

VLC

Enfin, VLC est un lecteur vidéo qui lit tout, qui est multi-plateformes, qui est configurable à souhait (et vous permet d’accélérer/ralentir la vitesse des sous-titres au cas où ceux-ci soient mal synchronisés). Mon choix de prédilection, pas forcément que pour les séries.

Voilà, avec tout ça vous devriez passer un hiver bien au chaud dans votre canapé à regarder toutes les séries que vous avez manquées ces 10 dernières années. Mais si vous utilisez d’autres outils, n’hésitez pas à en parler dans les commentaires!

, , , ,

10 Responses to “Téléchargement de séries : la classe américaine”

  1. martin

    merci beaucoup pour les liens et surtout ceux de sous titres. je vais essayer aussi le site russe. peut etre que je peux trouver des series que je cherche depuis

    Répondre

  2. Seth

    Très bon mini-tuto. Il faut dire que ce site déchire :P

    Répondre

  3. Flany

    si l’interface de Podnapisi rebute, alors il existe une solution. personnellement en allant voir Podnapisi j’ai eu un choc car il ressemblait trop à un autre site qui a une interface tellement proche et tellement plus simple :
    http://www.sub-titles.net
    et en effet une petite icône en haut montre qu’il s’agit du même site …
    Comme quoi le web c’est tout petit.
    Je conseille vraiment la version simplifiée.

    Répondre

    • Mathieu

      En réalité Flany, je ne trouve pas vraiment que sub-titles.net soit tellement différent de Podnapisi, si ce n’est que les tableaux de bord de la page de connexion sont absents sur sub-titles.
      L’intérêt, de l’un comme de l’autre, est le moteur de recherche, qui est identique sur les deux.

  4. Ninoochat

    J’aurais peur de faire un article comme ça avec ma photo et mon vrai nom.

    Répondre

  5. Mathieu

    Je pars du principe que si quelqu’un me cherche, il me trouvera. un Whois sur un nom de domaine, un trace d’une IP, on peut vite trouver qui se cache derrrière une identité numérique. Je m’appelle Mathieu, et c’est pas trop grave que les gens le sachent ^.^’

    Répondre

  6. Ninoochat

    Je suis un peu parano ! J’évite d’attirer les problèmes. Fais gaffe quand même ;)

    Répondre

  7. Boliam

    Plop

    Euh je viens juste de voir ton article sur arcadya…

    Sache juste ques les teams de sous titrage ont une vie irl bien rempli, et qu’ils font tous ce boulot bien gracieusement. Donc quand je vois marquer : disponibilité ou la rapidité des sous-titres laisse à désirer… est un peu déplacer.

    Merci tout de même de nous avoir fais un petit billet sur notre site. C’est Seth qui sera content !

    Répondre

    • Mathieu

      Merci Boliam pour ce commentaire. Effectivement je me suis mal exprimé. Je ne remets pas en cause le travail des traducteurs (bénévoles) de l’AGT ni des autres teams. Je voulais juste souligner que parfois des sous titres étaient disponibles sur d’autres sites, comme podnapisi par exemple, avant de l’être sur Arcadya. Une différence de quelques heures à quelques jours, qui compte pas mal pour un accro comme moi ;)
      En tout cas, passe le message aux autres admin (seth a déjà commenté l’article) : arcadya est dans ma liste de favoris depuis sa création.
      Bonne continuation!

  8. Boliam

    Np :-)

    Juste pour en revenir au sous-titrage, mieux vaut attendre quelque jours de plus et avoir un str de qualité, que prendre le premier venu, et avoir des sous titres merdique, avec de mauvaises trad :-)

    M’enfin s’pa grave !

    bonne continuation a toi également !

    Répondre


Leave a Reply

Blog WebMastered by All in One Webmaster.
PHVsPjxsaT48c3Ryb25nPndvb3RoZW1lc19zZXR0aW5nczwvc3Ryb25nPiAtIGE6MDp7fTwvbGk+PGxpPjxzdHJvbmc+d29vX2Fib3V0PC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWJvdXRfYmlvPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWJvdXRfZ3JhdmF0YXI8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19hYm91dF9yZWFkbW9yZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2Fkc19pbm5lcl9jb250ZW50PC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2Fkc19yb3RhdGU8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fYWRfMTI1X2Fkc2Vuc2VfYTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzEyNV9hZHNlbnNlX2I8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19hZF8xMjVfYWRzZW5zZV9jPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfMTI1X2Fkc2Vuc2VfZDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzEyNV9pbWFnZV9hPC9zdHJvbmc+IC0gaHR0cDovL3dvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTEuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfMTI1X2ltYWdlX2I8L3N0cm9uZz4gLSBodHRwOi8vd29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF8xMjVfaW1hZ2VfYzwvc3Ryb25nPiAtIGh0dHA6Ly93b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS0zLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzEyNV9pbWFnZV9kPC9zdHJvbmc+IC0gaHR0cDovL3dvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTQuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfMTI1X3VybF9hPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfMTI1X3VybF9iPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfMTI1X3VybF9jPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfMTI1X3VybF9kPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfMzAwX2Fkc2Vuc2U8L3N0cm9uZz4gLSA8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj48IS0tDQpnb29nbGVfYWRfY2xpZW50ID0gXCJwdWItNTYyMjg2OTAyMDMwOTQwM1wiOw0KLyogMzAweDI1MCwgZGF0ZSBkZSBjcsOpYXRpb24gMjMvMDcvMTAgKi8NCmdvb2dsZV9hZF9zbG90ID0gXCI2NzIxMTA3ODM5XCI7DQpnb29nbGVfYWRfd2lkdGggPSAzMDA7DQpnb29nbGVfYWRfaGVpZ2h0ID0gMjUwOw0KLy8tLT4NCjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCINCnNyYz1cImh0dHA6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvc2hvd19hZHMuanNcIj4NCjwvc2NyaXB0PjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzMwMF9pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cuZ2Vla3BhdXZyZS5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF8zMDBfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5nZWVrcGF1dnJlLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2Jsb2NrX2Fkc2Vuc2U8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19hZF9ibG9ja19pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTMwMHgyNTAtMS5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9ibG9ja191cmw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF9jb250ZW50X2Fkc2Vuc2U8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19hZF9jb250ZW50X2Rpc2FibGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2NvbnRlbnRfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy00Njh4NjAtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9jb250ZW50X3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2hlYWRlcl9hZHNlbnNlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfaGVhZGVyX2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtNDY4eDYwLTIuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaGVhZGVyX3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzE8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTEuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV8zPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS0zLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzQ8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTQuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfNTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtNC5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV82PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS00LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8xPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzI8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMzwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF80PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzU8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfNjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FsdF9zdHlsZXNoZWV0PC9zdHJvbmc+IC0gNC1pY2VibHVlLmNzczwvbGk+PGxpPjxzdHJvbmc+d29vX2FyY2hpdmVfY29udGVudDwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fYXNpZGVzX2NhdGVnb3J5PC9zdHJvbmc+IC0gUmllbiDDoCB2b2lyPC9saT48bGk+PHN0cm9uZz53b29fYXV0aG9yPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19hdXRvX2ltZzwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19ibG9nX3N1Ym5hdmlnYXRpb248L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2JyZWFkY3J1bWJzPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfbWVudTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19jb250ZW50PC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NvbnRlbnRfYXJjaGl2ZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY29udGVudF9hcmNoaXZlczwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY29udGVudF9mZWF0PC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NvbnRlbnRfaG9tZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX2Nzczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV9mYXZpY29uPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5nZWVrcGF1dnJlLmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzQtQmxvZy0zMi5wbmc8L2xpPjxsaT48c3Ryb25nPndvb19kZWxpY2lvdXM8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19kaWdnPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZXhjbHVkZV9wYWdlc19mb290ZXI8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19leGNsdWRlX3BhZ2VzX21haW48L3N0cm9uZz4gLSAxLDIzMDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZhY2Vib29rPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZmVhdHVyZWRfbGF5b3V0PC9zdHJvbmc+IC0gbGFyZ2Vfbm9fYWQucGhwPC9saT48bGk+PHN0cm9uZz53b29fZmVhdHVyZWRfcG9zdHM8L3N0cm9uZz4gLSAxPC9saT48bGk+PHN0cm9uZz53b29fZmVhdF9hbHRfaGVpZ2h0PC9zdHJvbmc+IC0gODU8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0X2FsdF93aWR0aDwvc3Ryb25nPiAtIDEzMDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlYXRfaW1hZ2VfaGVpZ2h0PC9zdHJvbmc+IC0gMTk1PC9saT48bGk+PHN0cm9uZz53b29fZmVhdF9pbWFnZV93aWR0aDwvc3Ryb25nPiAtIDU0MDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlZWRidXJuZXJfaWQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mZWVkYnVybmVyX3VybDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZsaWNrcjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZyYW1ld29ya190ZW1wbGF0ZTwvc3Ryb25nPiAtIGE6MTM6e2k6MDthOjI6e3M6NDoibmFtZSI7czoxNzoiRnJhbWV3b3JrIE9wdGlvbnMiO3M6NDoidHlwZSI7czo3OiJoZWFkaW5nIjt9aToxO2E6NTp7czo0OiJuYW1lIjtzOjM0OiJEaXNhYmxlIG9wdGlvbnMgcGFuZWwgb3VwdXQgb3B0aW9uIjtzOjQ6ImRlc2MiO3M6MTIxOiJEaXNhYmxlIHRoZSBhYmlsaXR5IHRvIHNob3cgeW91ciBXb28gT3B0aW9ucy4gWW91IGNhbiB2aWV3IHRoZSB0aGVtZXMgb3B0aW9uIGJ5IFVSTCBlLmcuIGh0dHA6Ly95b3Vyc2l0ZS5jb20vP29wdGlvbnM9d29vIjtzOjI6ImlkIjtzOjI2OiJmcmFtZXdvcmtfd29vX3Nob3dfb3B0aW9ucyI7czozOiJzdGQiO3M6MDoiIjtzOjQ6InR5cGUiO3M6ODoiY2hlY2tib3giO31pOjI7YTo1OntzOjQ6Im5hbWUiO3M6MjE6IlRoZW1lIFZlcnNpb24gQ2hlY2tlciI7czo0OiJkZXNjIjtzOjEwMToiVGhpcyB3aWxsIGVuYWJsZSBub3RpY2VzIG9uIHlvdXIgdGhlbWUgb3B0aW9ucyBwYWdlIHRoYXQgdGhlcmUgaXMgYW4gdXBkYXRlIGF2YWlsYWJsZSBmb3IgeW91ciB0aGVtZS4iO3M6MjoiaWQiO3M6MzU6ImZyYW1ld29ya193b29fdGhlbWVfdmVyc2lvbl9jaGVja2VyIjtzOjM6InN0ZCI7czowOiIiO3M6NDoidHlwZSI7czo4OiJjaGVja2JveCI7fWk6MzthOjU6e3M6NDoibmFtZSI7czoyMjoiRGlzYWJsZSBCdXkgVGhlbWVzIFRhYiI7czo0OiJkZXNjIjtzOjExMDoiVGhpcyBkaXNhYmxlcyB0aGUgJ0J1eSBUaGVtZXMnIHRhYi4gVGhpcyBwYWdlIGxpc3RzIHRoZSBsYXRlc3QgYXZhaWxhYmUgdGhlbWVzIGZyb20gdGhlIFdvb1RoZW1lcy5jb20gd2Vic2l0ZS4iO3M6MjoiaWQiO3M6MjQ6ImZyYW1ld29ya193b29fYnV5X3RoZW1lcyI7czozOiJzdGQiO3M6MDoiIjtzOjQ6InR5cGUiO3M6ODoiY2hlY2tib3giO31pOjQ7YTo1OntzOjQ6Im5hbWUiO3M6NTI6IkZyYW1ld29yayBDb3JlIFVwZGF0ZSAoT25seSBmb3IgZnJhbWV3b3JrIFYuMi43LjAgKykiO3M6NDoiZGVzYyI7czoxNDA6IjxzdHJvbmc+QkVUQTo8L3N0cm9uZz4gVGhpcyBvcHRpb24gd2lsbCBhY3RpdmUgdGhlIFdvb0ZyYW1ld29yayBDb3JlIFVwZGF0ZS4gSW50ZW5kZWQgb25seSBmb3IgYmV0YSB0ZXN0ZXJzIGFuZCBhZHZhbmNlZCB1c2VycyBhdCB0aGlzIHRpbWUuIjtzOjI6ImlkIjtzOjMwOiJmcmFtZXdvcmtfd29vX2ZyYW1ld29ya191cGRhdGUiO3M6Mzoic3RkIjtzOjA6IiI7czo0OiJ0eXBlIjtzOjg6ImNoZWNrYm94Ijt9aTo1O2E6Njp7czo0OiJuYW1lIjtzOjEzOiJTdXBlciBVc2VyIElEIjtzOjQ6ImRlc2MiO3M6MTgxOiJBZGQgdGhlIFVzZXIgSUQgdG8gdGhpcyBmaWVsZCB0byBoaWRlIHRoZSBGcmFtZXdvcmsgU2V0dGluZ3MgcGFuZWwgZnJvbSBvdGhlciB1c2Vycy4gQ2FuIGJlIHJlc2V0IGZyb20gdGhlIDxjb2RlPndwLWFkbWluL29wdGlvbnMucGhwPC9jb2RlPiB1bmRlciA8ZW0+ZnJhbWV3b3JrX3dvb19zdXBlcl91c2VyPC9lbT4uIjtzOjI6ImlkIjtzOjI0OiJmcmFtZXdvcmtfd29vX3N1cGVyX3VzZXIiO3M6Mzoic3RkIjtzOjA6IiI7czo1OiJjbGFzcyI7czo0OiJtaW5pIjtzOjQ6InR5cGUiO3M6NDoidGV4dCI7fWk6NjthOjI6e3M6NDoibmFtZSI7czo4OiJCcmFuZGluZyI7czo0OiJ0eXBlIjtzOjc6ImhlYWRpbmciO31pOjc7YTo1OntzOjQ6Im5hbWUiO3M6MjA6Ik9wdGlvbnMgcGFuZWwgaGVhZGVyIjtzOjQ6ImRlc2MiO3M6NTA6IkNoYW5nZSB0aGUgaGVhZGVyIGltYWdlIGZvciB0aGUgV29vVGhlbWVzIEJhY2tlbmQuIjtzOjI6ImlkIjtzOjM0OiJmcmFtZXdvcmtfd29vX2JhY2tlbmRfaGVhZGVyX2ltYWdlIjtzOjM6InN0ZCI7czowOiIiO3M6NDoidHlwZSI7czo2OiJ1cGxvYWQiO31pOjg7YTo1OntzOjQ6Im5hbWUiO3M6MTg6Ik9wdGlvbnMgcGFuZWwgaWNvbiI7czo0OiJkZXNjIjtzOjU2OiJDaGFuZ2UgdGhlIGljb24gaW1hZ2UgZm9yIHRoZSBXb3JkcHJlc3MgYmFja2VuZCBzaWRlYmFyLiI7czoyOiJpZCI7czoyNjoiZnJhbWV3b3JrX3dvb19iYWNrZW5kX2ljb24iO3M6Mzoic3RkIjtzOjA6IiI7czo0OiJ0eXBlIjtzOjY6InVwbG9hZCI7fWk6OTthOjI6e3M6NDoibmFtZSI7czoxNDoiSW1wb3J0IE9wdGlvbnMiO3M6NDoidHlwZSI7czo3OiJoZWFkaW5nIjt9aToxMDthOjU6e3M6NDoibmFtZSI7czo0NjoiSW1wb3J0IG9wdGlvbnMgZnJvbSBhbm90aGVyIFdvb1RoZW1lcyBpbnN0YW5jZSI7czo0OiJkZXNjIjtzOjE3MDoiWW91IGNhbiB0cmFuc2ZlciBvcHRpb25zIGZyb20gYW5vdGhlciBXb29UaGVtZXMgKHNhbWUgdGhlbWUpIHRvIHRoaXMgb25lIGJ5IGNvcHlpbmcgdGhlIGV4cG9ydCBjb2RlIGFuZCBhZGRpbmcgaXQgaGVyZS4gV29ya3MgYmVzdCBpZiBpdCdzIGltcG9ydGVkIGZyb20gaWRlbnRpY2FsIHRoZW1lcy4iO3M6MjoiaWQiO3M6Mjg6ImZyYW1ld29ya193b29faW1wb3J0X29wdGlvbnMiO3M6Mzoic3RkIjtzOjA6IiI7czo0OiJ0eXBlIjtzOjg6InRleHRhcmVhIjt9aToxMTthOjI6e3M6NDoibmFtZSI7czoxNDoiRXhwb3J0IE9wdGlvbnMiO3M6NDoidHlwZSI7czo3OiJoZWFkaW5nIjt9aToxMjthOjU6e3M6NDoibmFtZSI7czo2NjoiVXNlIHRoZSBjb2RlIGJlbG93IHRvIGV4cG9ydCB0aGlzIHRoZW1lcyBzZXR0aW5ncyB0byBhbm90aGVyIHRoZW1lIjtzOjQ6ImRlc2MiO3M6MTcwOiJZb3UgY2FuIHRyYW5zZmVyIG9wdGlvbnMgZnJvbSBhbm90aGVyIFdvb1RoZW1lcyAoc2FtZSB0aGVtZSkgdG8gdGhpcyBvbmUgYnkgY29weWluZyB0aGUgZXhwb3J0IGNvZGUgYW5kIGFkZGluZyBpdCBoZXJlLiBXb3JrcyBiZXN0IGlmIGl0J3MgaW1wb3J0ZWQgZnJvbSBpZGVudGljYWwgdGhlbWVzLiI7czoyOiJpZCI7czoyODoiZnJhbWV3b3JrX3dvb19leHBvcnRfb3B0aW9ucyI7czozOiJzdGQiO3M6MTg3MjoiWVRveU9EcDdjem94TkRvaWQyOXZYMkZrYzE5eWIzUmhkR1VpTzNNNk5Eb2lkSEoxWlNJN2N6b3hPRG9pZDI5dlgyRmtYek13TUY5aFpITmxibk5sSWp0ek9qQTZJaUk3Y3pveE5qb2lkMjl2WDJGa1h6TXdNRjlwYldGblpTSTdjem8xTWpvaWFIUjBjRG92TDNkM2R5NTNiMjkwYUdWdFpYTXVZMjl0TDJGa2N5OTNiMjkwYUdWdFpYTXRNekF3ZURJMU1DMHlMbWRwWmlJN2N6b3hORG9pZDI5dlgyRmtYek13TUY5MWNtd2lPM002TWpRNkltaDBkSEE2THk5M2QzY3VkMjl2ZEdobGJXVnpMbU52YlNJN2N6b3hORG9pZDI5dlgyRmtYMmx0WVdkbFh6RWlPM002TlRJNkltaDBkSEE2THk5M2QzY3VkMjl2ZEdobGJXVnpMbU52YlM5aFpITXZkMjl2ZEdobGJXVnpMVEV5TlhneE1qVXRNUzVuYVdZaU8zTTZNVFE2SW5kdmIxOWhaRjlwYldGblpWOHlJanR6T2pVeU9pSm9kSFJ3T2k4dmQzZDNMbmR2YjNSb1pXMWxjeTVqYjIwdllXUnpMM2R2YjNSb1pXMWxjeTB4TWpWNE1USTFMVEl1WjJsbUlqdHpPakUwT2lKM2IyOWZZV1JmYVcxaFoyVmZNeUk3Y3pvMU1qb2lhSFIwY0RvdkwzZDNkeTUzYjI5MGFHVnRaWE11WTI5dEwyRmtjeTkzYjI5MGFHVnRaWE10TVRJMWVERXlOUzB6TG1kcFppSTdjem94TkRvaWQyOXZYMkZrWDJsdFlXZGxYelFpTzNNNk5USTZJbWgwZEhBNkx5OTNkM2N1ZDI5dmRHaGxiV1Z6TG1OdmJTOWhaSE12ZDI5dmRHaGxiV1Z6TFRFeU5YZ3hNalV0TkM1bmFXWWlPM002TVRRNkluZHZiMTloWkY5cGJXRm5aVjgxSWp0ek9qVXlPaUpvZEhSd09pOHZkM2QzTG5kdmIzUm9aVzFsY3k1amIyMHZZV1J6TDNkdmIzUm9aVzFsY3kweE1qVjRNVEkxTFRRdVoybG1JanR6T2pFME9pSjNiMjlmWVdSZmFXMWhaMlZmTmlJN2N6bzFNam9pYUhSMGNEb3ZMM2QzZHk1M2IyOTBhR1Z0WlhNdVkyOXRMMkZrY3k5M2IyOTBhR1Z0WlhNdE1USTFlREV5TlMwMExtZHBaaUk3Y3pveE1qb2lkMjl2WDJGa1gzVnliRjh4SWp0ek9qSTBPaUpvZEhSd09pOHZkM2QzTG5kdmIzUm9aVzFsY3k1amIyMGlPM002TVRJNkluZHZiMTloWkY5MWNteGZNaUk3Y3pveU5Eb2lhSFIwY0RvdkwzZDNkeTUzYjI5MGFHVnRaWE11WTI5dElqdHpPakV5T2lKM2IyOWZZV1JmZFhKc1h6TWlPM002TWpRNkltaDBkSEE2THk5M2QzY3VkMjl2ZEdobGJXVnpMbU52YlNJN2N6b3hNam9pZDI5dlgyRmtYM1Z5YkY4MElqdHpPakkwT2lKb2RIUndPaTh2ZDNkM0xuZHZiM1JvWlcxbGN5NWpiMjBpTzNNNk1USTZJbmR2YjE5aFpGOTFjbXhmTlNJN2N6b3lORG9pYUhSMGNEb3ZMM2QzZHk1M2IyOTBhR1Z0WlhNdVkyOXRJanR6T2pFeU9pSjNiMjlmWVdSZmRYSnNYellpTzNNNk1qUTZJbWgwZEhBNkx5OTNkM2N1ZDI5dmRHaGxiV1Z6TG1OdmJTSTdjem94T0RvaWQyOXZYMkZzZEY5emRIbHNaWE5vWldWMElqdHpPakV4T2lKa1pXWmhkV3gwTG1OemN5STdjem94TWpvaWQyOXZYMkYxZEc5ZmFXMW5JanR6T2pVNkltWmhiSE5sSWp0ek9qRTFPaUozYjI5ZlluSmxZV1JqY25WdFluTWlPM002TlRvaVptRnNjMlVpTzNNNk1UUTZJbmR2YjE5amRYTjBiMjFmWTNOeklqdHpPakE2SWlJN2N6b3hPRG9pZDI5dlgyTjFjM1J2YlY5bVlYWnBZMjl1SWp0ek9qQTZJaUk3Y3pveE56b2lkMjl2WDJabFpXUmlkWEp1WlhKZmFXUWlPM002TURvaUlqdHpPakU0T2lKM2IyOWZabVZsWkdKMWNtNWxjbDkxY213aU8zTTZNRG9pSWp0ek9qSXdPaUozYjI5ZloyOXZaMnhsWDJGdVlXeDVkR2xqY3lJN2N6b3dPaUlpTzNNNk9Eb2lkMjl2WDJ4dloyOGlPM002TURvaUlqdHpPakUxT2lKM2IyOWZibUYyWDJWNFkyeDFaR1VpTzNNNk1Eb2lJanR6T2pFd09pSjNiMjlmY21WemFYcGxJanR6T2pRNkluUnlkV1VpTzNNNk1UTTZJbmR2YjE5MFpYaDBkR2wwYkdVaU8zTTZORG9pZEhKMVpTSTdmUT09IjtzOjQ6InR5cGUiO3M6ODoidGV4dGFyZWEiO319PC9saT48bGk+PHN0cm9uZz53b29fZnJhbWV3b3JrX3ZlcnNpb248L3N0cm9uZz4gLSAyLjcuMTA8L2xpPjxsaT48c3Ryb25nPndvb19nZXRfaW1hZ2VfaGVpZ2h0PC9zdHJvbmc+IC0gNTAwPC9saT48bGk+PHN0cm9uZz53b29fZ2V0X2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gMjAwPC9saT48bGk+PHN0cm9uZz53b29fZ29vZ2xlX2FuYWx5dGljczwvc3Ryb25nPiAtIDxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPg0KDQogIHZhciBfZ2FxID0gX2dhcSB8fCBbXTsNCiAgX2dhcS5wdXNoKFtcJ19zZXRBY2NvdW50XCcsIFwnVUEtOTA1Mjg0Ni0xXCddKTsNCiAgX2dhcS5wdXNoKFtcJ190cmFja1BhZ2V2aWV3XCddKTsNCg0KICAoZnVuY3Rpb24oKSB7DQogICAgdmFyIGdhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcJ3NjcmlwdFwnKTsgZ2EudHlwZSA9IFwndGV4dC9qYXZhc2NyaXB0XCc7IGdhLmFzeW5jID0gdHJ1ZTsNCiAgICBnYS5zcmMgPSAoXCdodHRwczpcJyA9PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCA/IFwnaHR0cHM6Ly9zc2xcJyA6IFwnaHR0cDovL3d3d1wnKSArIFwnLmdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpzXCc7DQogICAgdmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcJ3NjcmlwdFwnKVswXTsgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnYSwgcyk7DQogIH0pKCk7DQoNCjwvc2NyaXB0PjwvbGk+PGxpPjxzdHJvbmc+d29vX2dyYXZhdGFyPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29faGVhZGVyX2xheW91dDwvc3Ryb25nPiAtIGFib3V0LnBocDwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfb25lX2NvbDwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9wb3N0czwvc3Ryb25nPiAtIDEwPC9saT48bGk+PHN0cm9uZz53b29faG9tZV90aXRsZTwvc3Ryb25nPiAtIERlcm5pZXIgQXJ0aWNsZTwvbGk+PGxpPjxzdHJvbmc+d29vX2ltYWdlX2hlaWdodDwvc3Ryb25nPiAtIDE3MDwvbGk+PGxpPjxzdHJvbmc+d29vX2ltYWdlX3NpbmdsZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29faW1hZ2Vfd2lkdGg8L3N0cm9uZz4gLSA0MzA8L2xpPjxsaT48c3Ryb25nPndvb19sYXN0Zm08L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19sYXlvdXQ8L3N0cm9uZz4gLSAxY29sLnBocDwvbGk+PGxpPjxzdHJvbmc+d29vX2xpbmtlZGluPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fbG9nbzwvc3Ryb25nPiAtIGh0dHA6Ly93d3cuZ2Vla3BhdXZyZS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy82LWxvZ29MR1AtNTAweDEwMC5wbmc8L2xpPjxsaT48c3Ryb25nPndvb19tYW51YWw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vc3VwcG9ydC90aGVtZS1kb2N1bWVudGF0aW9uL2ZyZXNoLW5ld3MvPC9saT48bGk+PHN0cm9uZz53b29fbmF2X2V4Y2x1ZGU8L3N0cm9uZz4gLSAxLDQ0PC9saT48bGk+PHN0cm9uZz53b29fbmF2X2Zvb3Rlcjwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19vcHRpb25zPC9zdHJvbmc+IC0gYTozMDp7czoxODoid29vX2FsdF9zdHlsZXNoZWV0IjtzOjg6ImdyZXkuY3NzIjtzOjg6Indvb19sb2dvIjtzOjA6IiI7czoxMzoid29vX3RleHR0aXRsZSI7czo0OiJ0cnVlIjtzOjE4OiJ3b29fY3VzdG9tX2Zhdmljb24iO3M6MDoiIjtzOjIwOiJ3b29fZ29vZ2xlX2FuYWx5dGljcyI7czo0OTM6IjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCiAgdmFyIF9nYXEgPSBfZ2FxIHx8IFtdOwogIF9nYXEucHVzaChbXCdfc2V0QWNjb3VudFwnLCBcJ1VBLTkwNTI4NDYtMVwnXSk7CiAgX2dhcS5wdXNoKFtcJ190cmFja1BhZ2V2aWV3XCddKTsKCiAgKGZ1bmN0aW9uKCkgewogICAgdmFyIGdhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcJ3NjcmlwdFwnKTsgZ2EudHlwZSA9IFwndGV4dC9qYXZhc2NyaXB0XCc7IGdhLmFzeW5jID0gdHJ1ZTsKICAgIGdhLnNyYyA9IChcJ2h0dHBzOlwnID09IGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sID8gXCdodHRwczovL3NzbFwnIDogXCdodHRwOi8vd3d3XCcpICsgXCcuZ29vZ2xlLWFuYWx5dGljcy5jb20vZ2EuanNcJzsKICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCdzY3JpcHRcJylbMF07IHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZ2EsIHMpOwogIH0pKCk7Cgo8L3NjcmlwdD4iO3M6MTg6Indvb19mZWVkYnVybmVyX3VybCI7czowOiIiO3M6MTc6Indvb19mZWVkYnVybmVyX2lkIjtzOjA6IiI7czoxNDoid29vX2N1c3RvbV9jc3MiO3M6MDoiIjtzOjE1OiJ3b29fbmF2X2V4Y2x1ZGUiO3M6NDoiMSw0NCI7czoxNToid29vX2JyZWFkY3J1bWJzIjtzOjU6ImZhbHNlIjtzOjEwOiJ3b29fcmVzaXplIjtzOjQ6InRydWUiO3M6MTI6Indvb19hdXRvX2ltZyI7czo1OiJmYWxzZSI7czoxOToid29vX2dldF9pbWFnZV93aWR0aCI7aToyMDA7czoyMDoid29vX2dldF9pbWFnZV9oZWlnaHQiO2k6NTAwO3M6MTg6Indvb19hZF8zMDBfYWRzZW5zZSI7czowOiIiO3M6MTY6Indvb19hZF8zMDBfaW1hZ2UiO3M6NTI6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTMwMHgyNTAtMi5naWYiO3M6MTQ6Indvb19hZF8zMDBfdXJsIjtzOjI0OiJodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20iO3M6MTQ6Indvb19hZHNfcm90YXRlIjtzOjQ6InRydWUiO3M6MTQ6Indvb19hZF9pbWFnZV8xIjtzOjUyOiJodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTEuZ2lmIjtzOjEyOiJ3b29fYWRfdXJsXzEiO3M6MjQ6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbSI7czoxNDoid29vX2FkX2ltYWdlXzIiO3M6NTI6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtMi5naWYiO3M6MTI6Indvb19hZF91cmxfMiI7czoyNDoiaHR0cDovL3d3dy53b290aGVtZXMuY29tIjtzOjE0OiJ3b29fYWRfaW1hZ2VfMyI7czo1MjoiaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS0zLmdpZiI7czoxMjoid29vX2FkX3VybF8zIjtzOjI0OiJodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20iO3M6MTQ6Indvb19hZF9pbWFnZV80IjtzOjUyOiJodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTQuZ2lmIjtzOjEyOiJ3b29fYWRfdXJsXzQiO3M6MjQ6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbSI7czoxNDoid29vX2FkX2ltYWdlXzUiO3M6NTI6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtNC5naWYiO3M6MTI6Indvb19hZF91cmxfNSI7czoyNDoiaHR0cDovL3d3dy53b290aGVtZXMuY29tIjtzOjE0OiJ3b29fYWRfaW1hZ2VfNiI7czo1MjoiaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS00LmdpZiI7czoxMjoid29vX2FkX3VybF82IjtzOjI0OiJodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20iO308L2xpPjxsaT48c3Ryb25nPndvb19wb3J0Zm9saW9fY2F0PC9zdHJvbmc+IC0gU2VsZWN0IGEgY2F0ZWdvcnk6PC9saT48bGk+PHN0cm9uZz53b29fcG9ydGZvbGlvX2NhdGVnb3J5PC9zdHJvbmc+IC0gU2VsZWN0IGEgY2F0ZWdvcnk6PC9saT48bGk+PHN0cm9uZz53b29fcG9ydGZvbGlvX3Bvc3RzPC9zdHJvbmc+IC0gU2VsZWN0IGEgbnVtYmVyOjwvbGk+PGxpPjxzdHJvbmc+d29vX3BvcnRmb2xpb19yZXNpemVyPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19wb3J0X2luX25hdjwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fcG9ydF9wcmV2X2luczwvc3Ryb25nPiAtIENsaWNrIG9uIGltYWdlcyBiZWxvdyB0byBsb2FkIGEgbGFyZ2VyIHByZXZpZXcuPC9saT48bGk+PHN0cm9uZz53b29fcG9ydF9wcmV2X3RpdGxlPC9zdHJvbmc+IC0gVGh1bWJuYWlsczwvbGk+PGxpPjxzdHJvbmc+d29vX3JlbGF0ZWQ8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fcmVzaXplPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3JpZ2h0X3NpZGViYXI8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fc2VhcmNoX2NvbnRlbnQ8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3NldHRpbmdzX2N1c3RvbV9uYXZfYWR2YW5jZWRfb3B0aW9uczwvc3Ryb25nPiAtIHllczwvbGk+PGxpPjxzdHJvbmc+d29vX3NldHRpbmdzX2N1c3RvbV9uYXZfdmVyc2lvbjwvc3Ryb25nPiAtIDEuMC4xNDwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3J0bmFtZTwvc3Ryb25nPiAtIHdvbzwvbGk+PGxpPjxzdHJvbmc+d29vX3NpbmdsZV9oZWlnaHQ8L3N0cm9uZz4gLSAxMjA8L2xpPjxsaT48c3Ryb25nPndvb19zaW5nbGVfaW1hZ2VfaGVpZ2h0PC9zdHJvbmc+IC0gNzU8L2xpPjxsaT48c3Ryb25nPndvb19zaW5nbGVfaW1hZ2Vfd2lkdGg8L3N0cm9uZz4gLSA3NTwvbGk+PGxpPjxzdHJvbmc+d29vX3NpbmdsZV93aWR0aDwvc3Ryb25nPiAtIDE4MDwvbGk+PGxpPjxzdHJvbmc+d29vX3N0dW1ibGU8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb190YWJzPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3RleHR0aXRsZTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb190aGVtZW5hbWU8L3N0cm9uZz4gLSBGcmVzaCBOZXdzPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfaGVpZ2h0PC9zdHJvbmc+IC0gNjQ8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl9pbWFnZV9oZWlnaHQ8L3N0cm9uZz4gLSA3NTwvbGk+PGxpPjxzdHJvbmc+d29vX3RodW1iX2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gNzU8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl93aWR0aDwvc3Ryb25nPiAtIDY0PC9saT48bGk+PHN0cm9uZz53b29fdHdpdHRlcl91c2VyPC9zdHJvbmc+IC0gbXF1ZW50aW48L2xpPjxsaT48c3Ryb25nPndvb191cGxvYWRzPC9zdHJvbmc+IC0gYTo0OntpOjA7czo3MDoiaHR0cDovL3d3dy5nZWVrcGF1dnJlLmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzYtbG9nb0xHUC01MDB4MTAwLnBuZyI7aToxO3M6NzA6Imh0dHA6Ly93d3cuZ2Vla3BhdXZyZS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy81LWxvZ29MR1AtNTAweDEwMC5wbmciO2k6MjtzOjYyOiJodHRwOi8vd3d3LmdlZWtwYXV2cmUuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNC1CbG9nLTMyLnBuZyI7aTozO3M6NzA6Imh0dHA6Ly93d3cuZ2Vla3BhdXZyZS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8zLWxvZ29MR1AtNTAweDEwMC5wbmciO308L2xpPjxsaT48c3Ryb25nPndvb192aWRlb19jYXRlZ29yeTwvc3Ryb25nPiAtIFNlbGVjdCBhIGNhdGVnb3J5OjwvbGk+PGxpPjxzdHJvbmc+d29vX3lvdXR1YmU8L3N0cm9uZz4gLSA8L2xpPjwvdWw+