Pourquoi Visual Studio 2013 est-il très lent?


269

J'exécute Visual Studio 2013 Pro (version RTM) sur mon PC formaté (nouvelle installation de Windows 8.1).

Je ne sais pas pourquoi, mais Visual Studio 2013 Pro est très très lent! Lent pour la construction, le débogage, la navigation dans l'IDE ... ma LED de disque dur ne s'allume pas du tout!

Je suis sur un petit projet MFC (C ++) utilisant la bibliothèque Boost .

Des idées?



2
Merci, j'ai désactivé le contrôle de source, mais .... ça reste lent!
Walter Fabio Simoni

12
J'ai cessé de travailler dans VS2013 après quelques jours, il a juste gelé ...
Goran

3
Vous devriez envisager de marquer la réponse d'Asim Omers comme la solution ... cela m'a très bien aidé.
Kris

1
Mêmes problèmes, extrêmement lent.
pixel

Réponses:


268

C'est quelque chose qui concerne les pilotes graphiques. Si vous les mettez à jour, tout ira bien.

Ou vous pouvez désactiver l'accélération graphique matérielle dans Visual Studio en procédant comme suit:

  1. Dans Visual Studio, cliquez sur " Outils ", puis sur " Options ".

  2. Dans la boîte de dialogue Options, accédez à la section « Environnement> Général » et désactivez la case à cocher «Ajuster automatiquement l'expérience visuelle en fonction des performances du client ». (Reportez-vous à la capture d'écran suivante pour cette étape.)

  3. Décochez la case " Utiliser l'accélération graphique matérielle si disponible " pour empêcher l'utilisation de l'accélération graphique matérielle.

  4. Cochez ou décochez la case " Activer l'expérience visuelle du client riche " pour vous assurer que les visuels riches sont toujours activés ou désactivés, respectivement. Lorsque cette case est cochée, les visuels riches sont utilisés indépendamment de l'environnement informatique. Par exemple, les visuels riches sont utilisés lorsque vous exécutez Visual Studio localement sur un client riche et sur un bureau distant.

entrez la description de l'image ici

Références:


8
Cela a fonctionné pour moi, merci. Je ne sais pas pourquoi le PO n'a pas pris la peine d'accepter cela comme réponse.
Josh C

4
Ce n'est pas une solution pour moi.
selami

11
La suppression du fichier .suo l'a fait pour moi.
ceebreenk

1
Semble ridicule d'avoir activé les "améliorations visuelles" pour les développeurs. Je suis sur un i7 avec 32 Go et cela m'a causé des problèmes au fil du temps.
Fred Lackey

13
"Utiliser l'accélération graphique matérielle si disponible" ne devrait-il pas réellement augmenter les performances? : \ pas le diminuer
GONeale

110

Essayez de définir le plug-in de contrôle de source actuel sur Aucun (menu OutilsOptionsContrôle de source ), si vous utilisez le fournisseur Microsoft Git , ce qui semble ralentir Visual Studio 2013 de plus en plus à mesure que le référentiel s'agrandit.

Entrez la description de l'image ici

J'avais l'ensemble du framework Dojo Toolkit sous contrôle de source à l'aide du fournisseur Microsoft Git, et il est arrivé au point où il y a eu des retards entre le moment où j'appuie sur une touche et le moment où le glyphe apparaît à l'écran. Si mauvais.

Lorsque / si vous avez à nouveau besoin de Git, vous pouvez basculer vers le fournisseur TortoiseGit ou Git-Extensions , les deux fonctionneront sans ralentissement. J'aime personnellement les extensions Git.


26
La suppression du contrôle des sources n'est pas une solution dans un environnement de développement professionnel
codemonkeh

9
J'ai dit passer à une autre extension VS git.
Isaac Bolinger

1
L'OP n'a même pas mentionné le contrôle des sources, sans parler de Git
codemonkeh

41
Cette question transcende son contexte d'origine. Les gens recherchent VS 2013 lentement et viennent ici. Il est utile de savoir que Microsoft Git est actuellement lent et bogué.
Isaac Bolinger

1
@codemonkeh J'ai eu les mêmes problèmes que OP et le tournage de Microsoft Git m'a sauvé après beaucoup de recherches.
Vian Esterhuizen

52

Moi aussi, j'ai eu un peu de mal avec de mauvaises performances dans Visual Studio 2013 (Premium). À peu près les mêmes problèmes que TS. Navigation lente, défilement, construction ... à peu près tout. Heureusement, j'ai réussi à résoudre mon propre problème en désactivant les paramètres synchronisés dans Visual Studio. Allez dans le menu OutilsOptionsParamètres synchronisés avec l'environnement et supprimez cette option en décochant la case.

Désactiver les paramètres synchronisés


Cela m'a aidé à réduire le long temps d'attente (même jusqu'à une minute) lors du changement de configuration (par exemple de «Debug / x64» à «Release / Win32»). La désactivation de la synchronisation des paramètres l'a ramenée à une vitesse normale de <1 seconde. +1
zzz

C'est la réponse qui a semblé résoudre mon problème. J'attendais entre 1 et 3 secondes après avoir tapé pendant 10 secondes dans mon IDE.
Jean-Simon Brochu

47

Dans le cas des applications Web, une autre cause de construction et de débogage lents (mais pas la navigation IDE) pourrait être la fonctionnalité Link du navigateur .

J'ai constaté qu'avec cette option activée, la construction prendrait 4 fois plus de temps et le débogage était douloureux - après chaque publication, les pages Web se figeaient pendant quelques secondes avant que vous puissiez interagir avec elles.


Après la mise à niveau vers VS2013, mes pages, en particulier avec javascript, ont commencé à se charger très lentement. La désactivation de la fonction de lien du navigateur a résolu ce problème et maintenant mes pages Web se chargent à nouveau rapidement. Merci beaucoup!
cck

1
La chose étrange est que le lien du navigateur ralentit certaines pages et d'autres non. Au moins, on peut facilement vérifier si le lien du navigateur est à l'origine du problème. Chargez simplement une page où le problème se produit et vérifiez si, une fois la page chargée, l'utilisation du processeur reste élevée. Si tel est le cas et que l'utilisation du processeur est faible si vous désactivez le lien du navigateur, vous pouvez être sûr qu'il s'agit du lien du navigateur. BTW: J'ai le sentiment que cela a à voir avec l'utilisation des attributs de classe en HTML.
Leo Gerber

1
Cela a amélioré mon débogage 400% plus rapidement. La désactivation du lien du navigateur doit être effectuée par chaque développeur, vous pouvez plutôt ajouter le paramètre d'application suivant pour le désactiver à partir du niveau du projet <appSettings> <add key = "vs: EnableBrowserLink" value = "false" /> </appSettings>
Dhanuka777

Cela a résolu le problème pour moi. Ma machine commençait à se débattre après l'ouverture d'un projet Web, puis à y accéder dans mon navigateur. La désactivation de cette fonctionnalité a fait une énorme amélioration. @Garzun, je pense que vous êtes sur la bonne voie, je pense que les requêtes des médias pourraient être le problème.
Rastus7

1
J'ai essayé de supprimer Git Source Control et de désactiver les améliorations graphiques, mais ce changement a fait la différence pour ma machine.
Neil Thompson

38

J'utilisais une solution mise à niveau à partir de Visual Studio 2012. Visual Studio 2013 a également mis à niveau le fichier .suo. La suppression du fichier .suo de la solution (à côté du fichier .sln), la fermeture et la réouverture de Visual Studio ont résolu le problème pour moi. Mon fichier .suo est passé de 91 Ko à 27 Ko.


2
J'aimerais souscrire à cette astuce. Mon suo était de 1 Mo !! Je viens de le supprimer et de rouvrir le sln et la saisie et l'intellisense sont maintenant immédiats alors qu'avant d'afficher des propriétés dans l'éditeur xaml, cela prendrait 10 secondes.
pfa

5
.suo est un fichier caché.
Dherik

Peut-être ajouter des informations sur ce qui sera perdu? Par exemple, les paramètres de ce qu'il faut lancer à F5 (le projet particulier. Plusieurs projets.)
Peter Mortensen

37

J'ai eu le même problème et la seule solution qui a fonctionné pour moi a été de suivre les trois étapes présentées ci-dessous:

  1. Nettoyez le dossier WebSiteCache (vous pouvez le trouver dans C: \ Users \% USERNAME% \ AppData \ Local \ Microsoft \ WebSiteCache )

  2. Nettoyez le dossier "Fichiers ASP.NET temporaires" (recherchez-le dans C: \ Users \% USERNAME% \ AppData \ Local \ Temp \ Temporary ASP.NET Files )

  3. Redémarrez Visual Studio


Cela a certainement aidé et amélioré la situation ... mais ne l'a pas complètement résolue, cette étape est recommandée pour découvrir pourquoi vs2013 est si lent et crash
julian guppy

5
Le nettoyage du dossier WebSiteCache a fait le travail pour moi. Honnêtement, je ne peux même pas décrire la différence énorme qui existe. J'ai attendu 30 minutes pour créer un nouveau projet de formulaires Web ASP.NET et Visual Studio disait souvent «ne répond pas». Après avoir nettoyé le cache, cela prend moins de 10 secondes.
Apostrofix

3
Les "fichiers Asp.Net temporaires" se trouvent généralement sous C: \ Windows \ Microsoft .Net \ Framework (64) \ {version}
yoel halb

20

Ce qui a résolu le problème était de désactiver Git en définissant le plug-in de contrôle de source actuel sur Aucun dans Visual Studio, menu OptionsContrôle de source :

Entrez la description de l'image ici


Pour corroborer: cela m'a corrigé dans VS Express 2013. Avoir mon projet attaché à git tuait absolument VS.
2014

Cela m'a arrangé! Merci beaucoup!!
Akhil

Reformaté mon ordinateur, la désactivation de Git le rend toujours plus rapide, donc je pense que c'est l'un des problèmes pour lesquels VS est lent en 2013.
Mike Flynn

19

Ce problème semble être dû à la désinstallation de l' édition SQL Server Compact (4.0).

J'avais ce problème et il a été résolu après l'installation de l'édition SQL Server Compact 4.0. À la fermeture de Visual Studio 2013, je recevais un message pour installer l'édition SQL Server Compact car un projet C ++ avait besoin de quelque chose ... ne peut mettre le doigt sur rien.


3
MERCI! J'essayais de nettoyer mon système mais pour Visual Studio, il s'est retourné contre!
Pete Alvin

Quelle solution bizarre et complètement intuitive. De la question de l'op, il est difficile de retracer le problème à sql compact, mais bon ça marche.
nocarrier

Oui, cela a fonctionné pour moi aussi. En fait, je ne sais pas pourquoi cela importerait, mais j'ai commencé à faire fonctionner Intellisense pour du code C ++ simple après avoir installé SQL Server Compact Edition.
NOMO

Cela a parfaitement fonctionné. Impossible de comprendre pourquoi il s'exécutait si lentement avec seulement des projets c ++, mais un avertissement s'affiche avant de quitter Visual Studio, que j'aurais dû lire mieux car il mentionne spécifiquement l'absence de SQL Server Compact Edition ...
DSF

C'était pour moi. Très difficile à trouver.
Bene Tleilax

12

Résolvez ce problème en installant Microsoft SQL Server Compact 4.0

Microsoft SQL Server Compact 4.0

problème de performances de Visual Studio 2013 en raison de l'absence de Microsoft SQL Server Compact 4.0


11
Je ne suis pas. Comment est-ce lié à cette question?
Keith Pinson

Cela fonctionne vraiment. J'ai désinstallé le mien mais j'ai dû réinstaller. C'est comme si VS partait en chasse aux oies sauvages pour rechercher ce composant en permanence, alors faites-vous plaisir et assurez-vous qu'il est installé.
Seralize


11

Je peux conseiller une option comme celle-ci.

CodeLens peut être désactivé comme sur l'image. Cela donne beaucoup de performances.

Entrez la description de l'image ici


7

Si vous déboguez un site Web ASP.NET à l'aide d'Internet Explorer 10 (et versions ultérieures), assurez-vous de désactiver votre plug-in de gestionnaire de mots de passe «LastPass» pour Internet Explorer. LastPass va amener vos sessions de débogage à une exploration et réduire considérablement votre capacité de patience!

J'ai soumis un ticket d'assistance à Lastpass à ce sujet et ils ont reconnu le problème sans aucune intention de le résoudre, disant simplement: "LastPass n'est pas compatible avec Visual Studio 2013".


Incroyable, je viens d'installer LastPass ce matin et je n'ai jamais pensé à deux fois qu'il me causait des maux de tête ...
ewitkows

Ce n'est pas seulement IE. Même problème avec Chrome et Firefox, semble-t-il. Le désactiver a ramené VS à la normale pour moi.
Noah

6

J'ai eu le même problème et toutes les solutions mentionnées ici n'ont pas fonctionné pour moi.

Après avoir désinstallé l'extension "Productivity Power Tools 2013", les performances sont revenues à la normale.


J'ai également eu ce problème avec le même correctif en utilisant Visual Studio 2015.
Gram

5

Une dernière chose à vérifier; pour moi, c'était la journalisation Fusion.

J'avais allumé cela il y a très longtemps et plus ou moins oublié. Se débarrasser des plus de 5000 répertoires et 1 Go de fichiers enregistrés a fait des merveilles.


J'ai activé la journalisation de fusion dans le passé, et je l'ai oublié. Dans les solutions avec beaucoup de projets (20+), cela peut vraiment tuer les performances. Je l'ai à nouveau désactivé et tout est très rapide maintenant. En outre, seule l'activation des échecs de liaison est meilleure pour les performances que toutes les liaisons.
Preben Huybrechts

Qu'est-ce que "Fusion" (dans ce contexte)?
Peter Mortensen


4

Il existe une bonne solution de contournement pour cette solution si vous rencontrez une lenteur dans le rendu des fichiers .cs et .cshtml.

Fermez simplement tous les fichiers ouverts afin que le cache soit effacé et ouvrez à nouveau les fichiers requis.


4

Visual Studio Community Edition était lent à basculer entre les fichiers ou à ouvrir de nouveaux fichiers. Tout le reste (par exemple, les éléments de menu) était par ailleurs normal.

J'ai d'abord essayé toutes les suggestions des réponses précédentes et aucune n'a fonctionné. J'ai ensuite remarqué que cela se produisait uniquement sur une application Web ASP.NET MVC 4, j'ai donc ajouté une nouvelle application Web ASP.NET MVC 4, et cela a été rapide.

Après beaucoup d'essais et d'erreurs, j'ai découvert que la différence était packages.config- Si je mettais les références Microsoft en haut du fichier, cela rendait tout à nouveau accrocheur.

Entrez la description de l'image ici

Déplacez les Microsoft*entrées vers le haut.

Entrez la description de l'image ici

Il semble que vous n'ayez pas besoin de les déplacer tous - le déplacement, par exemple, <package id="Microsoft.Web.Infrastructure"a un effet notable sur ma machine.

En aparté

  • La suppression de tout le contenu du fichier le rend encore plus rapide *
  • L'exclusion de packages.config de Visual Studio ne résout pas le problème
  • Un ami utilisant Visual Studio 2013 Premium n'a remarqué aucune différence dans ces deux cas (les deux étaient rapides)

METTRE À JOUR

Il semble que les packages NuGet manquants ou incomplets localement en soient la cause. J'ai ouvert le gestionnaire de packages et j'ai reçu un avertissement `` Certains packages NuGet manquent dans cette solution '' et j'ai choisi de les restaurer et cela a accéléré les choses. Cependant, je n'aime pas cela car dans mon référentiel, j'ajoute uniquement les éléments réels requis pour la compilation car je ne veux pas gonfler mon référentiel, donc à la fin, je viens de supprimer le packages.config.

Cette solution peut ne pas convenir à vos besoins car je préfère utiliser NuGet pour récupérer les packages, pas gérer les mises à jour des packages, donc cela cassera cela si vous l'utilisez à cette fin.


Cette réponse a eu l'effet le plus significatif dans mon cas. Je vous remercie.
hakan

Oui, il semble que les packages Nuget manquants provoquent également un ralentissement de VS 2013. Étrange!
Chandermani

3

Pour moi, le problème était la page de démarrage - elle téléchargeait du contenu et provoquait le blocage de Visual Studio.

La seule solution pour moi était de:

  1. Tuez le processus DevEnv à partir du Gestionnaire des tâches
  2. Démarrez Visual Studio en mode sans échec à partir de la ligne de commande:
    devenv.exe /safemode
  3. Allez dans le menu OutilsOptions et sélectionnez les options Environnement / Démarrage
  4. Choisissez "Afficher un environnement vide" pour l'action de démarrage
  5. Fermez Visual Studio
  6. Redémarrez normalement

2

L'exécution des tests unitaires était lente. C'était un problème ReSharper.

  1. Menu ReSharperOptionsEnvironnementGénéral ...Clear Caches
  2. Outils de menu → OptionsReSharperGénéral ...Suspend Now
  3. Fermez Visual Studio
  4. Supprimez le fichier .suo.
  5. Ouvrez à nouveau Visual Studio.
  6. Réactivez ReSharper.

1

J'ai également eu un problème avec un IDE lent.

Dans mon cas j'ai installé

  • ReSharper
  • Npgsql (faible chance de provoquer le problème)
  • Entity Framework Power Tools Beta 4

Ce qui suit m'a un peu aidé:

  • Synchronisation désactivée - menu OutilsOptionsParamètres synchronisés avec l'environnement
  • Sélection de plug-in désactivée - menu OutilsStudioOptionsContrôle de source .
  • Désactivé Entity Framework Power Tools Beta 4 - menu OutilsExtensions et mises à jour

Resharper JetBrain non installé - WOW !! Je suis encore rapide !!


1

Modifiez la valeur du journal de fusion à 0. Cela a résolu mon problème.

Il s'agit de la clé FusionLog dans le registre:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion
Check ForceLog value (1 enabled, 0 disabled).

"Fusion Log Value" contre "FusionLog" contre "Fusion" : qu'est-ce qui est littéral et qu'est-ce qui ne l'est pas?
Peter Mortensen

1

J'étais également confronté à ce problème depuis assez longtemps. Voici les étapes que j'effectue, et cela fonctionne pour moi toujours:

  • Suppression du fichier .suo de la solution.
  • Suppression des fichiers ASP.NET temporaires (vous pouvez les trouver à le trouver dans % WINDOW% \ Microsoft.NET \ Framework \ Temporary ASP.NET Files)
  • Suppression de tous les points d'arrêt dans l'application.

0

Visual Studio 2013 a un serveur de packages en cours d'exécution et dépensait jusqu'à 2 millions de K de mémoire.

Je l'ai mis à faible priorité et affinité avec un seul processeur, et Visual Studio a fonctionné beaucoup plus facilement.


6
Quel est le nom du processus du serveur de packages Visual Studio? Vous voyez, 2 millions de K de mémoire, c'est beaucoup, ~ 1,9 Go de RAM. Est-ce que c'est le processus devenv.exe ou autre chose?
Dio Phung

0

Explorateur de performances

Avez-vous utilisé le menu AnalyserPerformances et diagnostics ? J'ai! C'est génial! Mais vous voudrez peut-être nettoyer.

Ouvrez l' Explorateur de performances . Si vous réduisez tous les éléments qui s'y trouvent, sélectionnez-les tous, puis vous pouvez cliquer avec le bouton droit et supprimer .

Ma solution s'ouvre plus rapidement et fonctionne en général beaucoup plus rapidement maintenant.

Vous pouvez également remarquer des changements dans votre slnfichier comme indiqué. Pour moi, cette section a été supprimée du sln.

GlobalSection(Performance) = preSolution
    HasPerformanceSessions = true
EndGlobalSection

1
C'est pour mesurer les performances des applications pendant le développement, mais pas pour Visual Studio lui

Oui, mais l'utilisation de l'outil affectera les performances de Visual Studio comme dans mon cas. Cette question et cet ensemble de réponses ressemblent plus à une liste de contrôle. Toutes les réponses ne s'appliqueront pas dans tous les cas.
Jess

Pouvez-vous ajouter plus d'informations à la réponse sur ce qu'il supprime / modifie (certains états sont modifiés)?
Peter Mortensen

0

Dans Visual Studio 2015 Community edition, j'ai connu un IDE très (très) lent après avoir changé la "Police d'environnement" dans le menu OutilsOptions ...Polices et couleurs .

Le rétablissement de ces options à la valeur par défaut ("automatique") l'a résolu immédiatement.


C'est certainement l'optimisation la plus étrange que j'ai vue sur ce sujet jusqu'à présent. Je me demande comment Font a tout
gâché

0

J'ai rencontré des problèmes similaires lors du passage de Visual Studio 2012 → Visual Studio 2013. L'EDI se bloquait après presque chaque clic ou enregistrement, et la construction prenait plusieurs fois plus de temps. Aucune des solutions énumérées ici n'a aidé.

Ce qui a finalement aidé, c'est de déplacer mes projets sur un disque local. Visual Studio 2012 n'a eu aucun problème à stocker mes projets sur un partage réseau, mais Visual Studio 2013 n'a pas pu le gérer pour une raison quelconque.


0

J'avais installé Visual Studio 2013 et il fonctionnait sans problème. À un moment donné, il a commencé à devenir lent et a décidé d'installer Visual Studio 2015. Après l'installation, rien n'a changé et les deux versions construisaient la solution très lentement (environ 10 minutes pour 18 projets en solution).

Ensuite, j'ai commencé à penser aux extensions récemment installées - la plus récente installée était les outils PHP pour Visual Studio (l'avaient sur Visual Studio 2013 uniquement). Je ne sais pas comment une extension peut affecter d'autres versions de Visual Studio, mais sa désinstallation m'a aidé à résoudre le problème.

J'espère que cela aidera les autres à se rendre compte que ce n'est pas toujours la faute de Visual Studio.


0

J'ai ajouté "devenv.exe" en tant qu'exclusion à Windows Defender . Cela a résolu mon problème complètement. Les gens peuvent essayer ceci comme leur premier essai.


0

J'ai le même problème, mais cela ralentit lorsque vous essayez d'arrêter le débogage dans Visual Studio 2013, et j'essaie ceci:

  • Fermez Visual Studio, puis
  • Trouver le dossier du projet de travail
  • Supprimer le fichier .suo
  • Supprimer le dossier / obj
  • Ouvrez Visual Studio
  • Reconstruire

0

Aucune des suggestions n'a fonctionné pour moi, mais j'ai résolu mon problème. J'avais essayé la plupart des autres recommandations avant d'arriver à la solution suivante.

Mon scénario / problème:

Utilisation de Visual Studio 2017 avec ReSharper Ultimate. La saisie au clavier dans l'EDI est devenue très lente comme d'autres l'ont décrit. La dernière modification que j'ai apportée à ma solution a été d'ajouter un nouveau projet de site Web, j'ai donc examiné cela. Après avoir essayé beaucoup de choses, j'ai essayé d'ajouter un deuxième projet de site Web, afin que je puisse essayer de remplacer le premier, et Visual Studio s'est contenté après cela. Il ne chargerait même plus la solution.

Ma solution:

J'ai forcé la fermeture de Visual Studio, puis j'ai supprimé le ou les projets de site Web nouvellement ajoutés du fichier .sln à l'aide du Bloc-notes . Après avoir enregistré et démarré Visual Studio, ma solution s'est chargée rapidement et tout semblait redevenir normal. J'ai ajouté un nouveau site Web avec une configuration légèrement différente (voir la réflexion ci-dessous), et le problème ne s'est pas reproduit.

Ma pensée:

Je pense que le problème provient de la création du nouveau projet de site Web et de l'utilisation d'un chemin d'accès au système de fichiers vers un partage réseau hébergé dans Azure. Je travaille sur un VPN qui a tendance à ralentir les choses, et je rencontre parfois des problèmes de routage avec certains services, donc mon problème / solution peut être un peu un flocon de neige. J'ai changé le chemin du système de fichiers pour être un référentiel local et publierai les fichiers selon les besoins, ce qui semble être une bien meilleure façon de procéder.


0

J'ai eu un comportement Visual Studio où la saisie était lente pour mes fichiers HTML. Auparavant, lors de l'installation, je devinais que, parce que mes fichiers HTML étaient du code HTML générique, il n'était pas nécessaire d'installer des outils de développement Web à partir du composant de charge de travail du programme d'installation. Je suis retourné et j'ai installé ce bit et le comportement de Visual Studio est devenu comme je m'y attendais.


-1

Quelqu'un at-il trouvé des problèmes CodeLens (le compteur de référence) avec les performances de démarrage?

Désactiver CodeLens (menu OutilsOptionséditeur de texteToutes les languesCodeLens )

Désactivez également le contrôle de source Git (menu Outils * → OptionsContrôle de source )

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.