Search Results

Search found 432 results on 18 pages for 'deja dup'.

Page 8/18 | < Previous Page | 4 5 6 7 8 9 10 11 12 13 14 15  | Next Page >

  • Windows Embedded 8 sortira en mars 2013, Microsoft publie la Roadmap et une préversion de son OS embarqué, fondé sur Windows 8

    Windows Embedded Standard 8 : la deuxième CTP disponible Plus de 6 000 développeurs utilisent déjà l'OS embarqué dérivé de Windows 8 Mise à jour du 07/06/12 Hier, au salon Computex de Taïwan, Steven Guggenheimer, vice-président du service OEM de Microsoft, est monté sur scène pour présenter les dernières technologies de Microsoft sur les « systèmes intelligents » (appareils qui embarquent un OS et qui permettent de se connecter à des terminaux spécialisés ou à des services en ligne comme des serveurs distants ou des bases de données). Il en a profité pour annoncer la disponibilité de la deuxième community technology preview (CTP) de Windows Embedded Standard 8...

    Read the article

  • Emploi : le chômage des informaticiens en baisse, mais la situation reste tendue pour les jeunes diplômés

    Emploi : le chômage des informaticiens en baisse Mais la situation reste tendue pour les jeunes diplômés Mise à jour du 02/03/2011 par Idelways D'après les nouveaux chiffres de Pôle Emploi, le chômage des informaticiens connaît un léger recul (baisse de 3.3 % toute catégorie et de 7 % pour la catégorie A) Une amélioration qui se ferait toutefois au détriment des opportunités de carrière pour les jeunes diplômés. Les informaticiens déjà en poste seraient les plus favorisés pour trouver un nouvel emploi, plus encore que les informaticiens ayant entre trois et cinq ans d'expérience. La situation rest...

    Read the article

  • Le succès de Windows 7 se confirme en entreprise et présage une adoption rapide et massive, selon Fo

    Mise à jour du 27/05/10 Le succès de Windows 7 se confirme en entreprise Et présage une adoption rapide et massive, selon Forrester Nouvelle étude à 500 $ pour le cabinet Forrester... qui accepte néanmoins de livrer quelques conclusions pour 0 Euro. « Corporate Desktop Operating System And Browser Trends, Q2 2009 To Q2 2010 » nous apprend donc que Windows 7 arrive (sic) et que Firefox et Chrome ne cessent de progresser (une constatation déjà fait...

    Read the article

  • Firefox Marketplace s'ouvre aux adopteurs précoces, la galerie d'applications Web de Mozilla disponible en version Aurora pour Android

    Premières images du Firefox OS Marketplace Des fuites dévoilent une galerie d'applications à interface minimaliste On le sait, Mozilla prépare le lancement de sa propre plateforme mobile appelée Firefox OS, prévue pour 2013. Nous avons eu un avant-goût de ce système d'exploitation, mais peu d'informations ont filtré sur sa galerie d'applications. Grâce à des images publiées en ligne, nous savons d'ores et déjà à quoi il ressemblerait. [IMG]http://idelways.developpez.com/news/images/firefoxOS-marketplace.png[/IMG]

    Read the article

  • Java EE 7 : les fonctionnalités Cloud reportées, à cause d'un progrès trop lent de la spécification

    Java EE 7 offrira un support étendu du PaaS La plateforme confirme son virage vers le Cloud Mise à jour du 24/06/11, par Hinault Romaric On sait déjà que le prochain Java EE 7 sera très orienté Cloud. La technologie Java pour les applications d'entreprises, dont les spécifications traitent des sujets comme la persistance, le développement et le déploiement d'applications, sera adaptée pour supporter plusieurs modèles de Cloud. Selon les déclarations d'un employé d'Oracle, le prochain JAVA EE aura des capacités permettant une prise en charge du PaaS ((Platform-as-a-service), défini comme la couche intermédiaire en...

    Read the article

  • Firefox Marketplace s'ouvre aux testeurs volontaires, la galerie d'applications Web de Mozilla disponible en version Aurora pour Android

    Premières images du Firefox OS Marketplace Des fuites dévoilent une galerie d'applications à interface minimaliste On le sait, Mozilla prépare le lancement de sa propre plateforme mobile appelée Firefox OS, prévue pour 2013. Nous avons eu un avant-goût de ce système d'exploitation, mais peu d'informations ont filtré sur sa galerie d'applications. Grâce à des images publiées en ligne, nous savons d'ores et déjà à quoi il ressemblerait. [IMG]http://idelways.developpez.com/news/images/firefoxOS-marketplace.png[/IMG]

    Read the article

  • ASUS lance son concurrent de Kinect et un SDK pour WAVI Xtion, « le premier système de reconnaissance de mouvements sur PC »

    ASUS lance son concurrent de Kinect Et un SDK pour WAVI Xtion, « le premier système de reconnaissance de mouvements sur PC » Mise à jour du 03/03/11 Le succès du système de reconnaissance de mouvements de Microsoft donne des idées à la concurrence. ASUS vient d'annoncer l'arrivée prochaine de WAVI Xtion (prononcez Way-vi Action), sa technologie maison, que le constructeur est fier de présenter comme le « premier système de reconnaissance de mouvements sur PC ». Pour l'instant Kinect est effectivement cantonné à la Xbox, même si Microsoft a déjà laissé entendre qu'il pourrait

    Read the article

  • Windows 8 : le Windows Store s'ouvre aux développeurs de 120 pays, la francophonie représentée de manière quasi exhaustive

    Windows Store : Microsoft fait le point sur les licences d'applications tests avant achat, ventes des fonctionnalités, nombre de machines utilisées Mise à jour du 13/03/2012 Le Windows Store a ouvert ses portes depuis quelques semaines et les utilisateurs peuvent déjà profiter gratuitement des premières applications de style Metro présentes sur la galerie. Pour cela, ils doivent disposer d'un compte Microsoft pour se connecter. Le modèle de licence des applications du magasin dont Microsoft vient de faire une description permet d'offrir aux clients l'accès à l'ensemble de leurs applications sur tous leurs appareils Windows 8, l...

    Read the article

  • Cours vidéo Python pour débutants par Pythonnerie, mise à jour du cours et deux nouvelles vidéos sur les bases de données

    voici un tutoriel, destiné à des débutants en informatique, utilise la vidéo pour aider à visualiser les concepts.Cours vidéo Python pour débutantsCe tutoriel est un travail en cours, qui sera (doucement) enrichi et complété au fil du temps. Bien entendu, il n'a aucune prétention à remplacer la documentation de référence, qu'il espère simplement rendre indirectement plus accessible. Mais son auteur espère avoir confirmé le goût de l'informatique chez ceux qui l'avaient déjà et montré aux autres que la programmation n'est pas forcément rébarbative ni mystérieuse....

    Read the article

  • Apple : bientôt des casques utilisant le port Lightening sur les iDevices ? Cupertino a ajouté des spécificités à son programme MFI

    Apple : bientôt des casques utilisant le port Lightening sur les iDevices ? Cupertino a ajouté des spécificités à son programme MFIQuelques temps seulement après la confirmation du rachat de la société Beats Electronics par Apple le 28 mai dernier pour un montant de 3 milliards de dollars, Apple prévoit déjà de revoir la façon dont les casques et écouteurs seront branchés à ses appareils. Notons que jusqu'à présent, sur mobile, les casques audio se connectent soit via un port jack 3.5, soit...

    Read the article

  • Mise à jour du cours vidéo Python pour débutants par Pythonnerie, trois nouvelles vidéos sur les bases de données

    voici un tutoriel, destiné à des débutants en informatique, utilise la vidéo pour aider à visualiser les concepts.Cours vidéo Python pour débutantsCe tutoriel est un travail en cours, qui sera (doucement) enrichi et complété au fil du temps. Bien entendu, il n'a aucune prétention à remplacer la documentation de référence, qu'il espère simplement rendre indirectement plus accessible. Mais son auteur espère avoir confirmé le goût de l'informatique chez ceux qui l'avaient déjà et montré aux autres que la programmation n'est pas forcément rébarbative ni mystérieuse....

    Read the article

  • Agile Tour 2010 : Lancement de l'édition 2010 avec l'appel à candidature d'organisateurs locaux. Vot

    Bonjour, La troisième édition de l'Agile Tour se prépare pour le troisième trimestre (septembre / octobre). 1ère étape : la définition des villes étapes. L'an passé il y avait un total de 18 villes dont 11 en France, Luxembourg, Genève, et 3 aux Canada. Cette année, le Brésil fait son apparition et quelques villes françaises sont d'ores et déjà identifiées. Les organisateurs ont lancé l'appel à candidature de villes. Citation:

    Read the article

  • Debian 6.0.6 disponible avec plusieurs correctifs de sécurité pour la version stable

    Debian 6.0.6 disponible avec plusieurs correctifs de sécurité pour la version stable Les développeurs de Debian viennent de publier la sixième mise à jour de la branche stable 6.0 du système d'exploitation basé sur le noyau Linux. Cette version n'apporte pas de nouvelles fonctionnalités à l'OS, mais juste une combinaison de mises à jour déjà publiées pour la distribution, permettant aux utilisateurs d'installer simplement cette version, au lieu de recherche et installer manuellement tous les patchs de sécurité. [IMG]http://rdonfack.developpez.com/images/debian.png[/IMG] Debian 6.0.6 alias « Squeeze » apporte donc plusieurs mises à j...

    Read the article

  • « Windows Phone Marketplace » devient « Windows Phone Store » alors que le site de Windows Phone s'offre une nouvelle jeunesse

    Le site Windows Phone s'offre une nouvelle jeunesse ainsi que le Marketplace qui devient Store La sortie de Windows Phone 8, la prochaine mise à jour majeure du système d'exploitation mobile de Microsoft, est proche. Pour cela, le chemin doit être préparé pour son accueil : les premiers modèles de smartphones de Nokia sous l'OS ont déjà été présentés ; le Dev Center, l'interface de gestion des applications pour les développeurs, a été mis à jour ; la Preview du SDK de Windows Phone 8 a é...

    Read the article

  • Firefox 31 Beta débarque avec de nombreux outils pour développeurs, l'API Firefox Hub signe son arrivée sur Android

    Firefox 31 Beta débarque avec de nombreux outils pour développeurs, l'API Firefox Hub signe son arrivée sur Android Deux jours seulement après avoir publié la version stable de Firefox 30, Mozilla propose déjà la bêta de la mouture suivante, Firefox 31, pour ordinateur de bureau sur les plateformes Windows, Mac et Linux mais également pour mobile sur Android. Les nouveautés apportées sont principalement axées développeurs afin de leur permettre de bâtir plus facilement qu'avant du contenu web,...

    Read the article

  • QCP : un simulateur d'ordinateur quantique pour apprendre la programmation quantique, le projet de Google permet de simuler un ordinateur de 22 qubits

    QCP : un simulateur d'ordinateur quantique pour apprendre la programmation quantique le projet de Google permet de simuler un ordinateur de 22 qubitsVous avez sans doute déjà entendu parler d'ordinateur ou de calculateur quantique, cet outil de calcul très puissant en mesure de résoudre les problèmes algorithmiques les plus complexes, en se basant sur le principe de la superposition d'états quantiques et sur les équivalents des bits actuels : les qubits.Mythe ou réalité, l'ordinateur quantique...

    Read the article

  • Pourquoi les entreprises passent-elles par des cabinets de recrutement lorsqu'elles ont besoin de développeurs ? Pour quels intérêts ?

    Pourquoi les boites ne publient pas des annonces détaillées des jobs de développeur qu'elles proposent au lieu de passer par des cabinets de recrutement ou même des SSII alors que le projet dure plus d'un an ?Je suis convaincu que dans 99% des cas c'est ridicule de passer par un cabinet de recrutement (déjà ça leur coûte au moins 1500 euros à payer quand le nouvel employé a terminé sa période d'essai) et que le principal effet en plus de la perte nette sur salaire (c'est 1500 euros de moins sur...

    Read the article

  • Ethan Zuckerman : le créateur des publicités pop-up s'excuse pour son ?uvre et affirme avoir eu de « bonnes intentions »

    Ethan Zuckerman : le créateur des publicités pop-up s'excuse pour son oeuvre et affirme avoir eu de « bonnes intentions » Dans un essai publié sur la version en ligne du magazine américain The Atlantic, Ethan Zuckerman, qui dirige actuellement le Centre pour Média Civique au MIT, a expliqué qu'il ne savait pas ce qu'il apportait au monde lorsqu'il a écrit le code du premier pop-up il y a déjà plus d'une décennie. A cette époque, il travaillait pour le compte de la société Tripod.com. La startup...

    Read the article

  • What are the primitive Forth operators?

    - by Barry Brown
    I'm interested in implementing a Forth system, just so I can get some experience building a simple VM and runtime. When starting in Forth, one typically learns about the stack and its operators (DROP, DUP, SWAP, etc.) first, so it's natural to think of these as being among the primitive operators. But they're not. Each of them can be broken down into operators that directly manipulate memory and the stack pointers. Later one learns about store (!) and fetch (@) which can be used to implement DUP, SWAP, and so forth (ha!). So what are the primitive operators? Which ones must be implemented directly in the runtime environment from which all others can be built? I'm not interested in high-performance; I want something that I (and others) can learn from. Operator optimization can come later. (Yes, I'm aware that I can start with a Turing machine and go from there. That's a bit extreme.) Edit: What I'm aiming for is akin to bootstrapping an operating system or a new compiler. What do I need do implement, at minimum, so that I can construct the rest of the system out of those primitive building blocks? I won't implement this on bare hardware; as an educational exercise, I'd write my own minimal VM.

    Read the article

  • Dealing with Try/Catch Exceptions in Java bytecode? ("stack height inconsistent")

    - by Cogwirrel
    I am trying to do some error handling in java bytecode. I first tried to implement some catch-like subroutines, where I would check for the error condition, and jump to the appropriate subroutine, a little like: iconst_1 iconst_0 dup ifeq calldiverr goto enddivtest calldiverr: jsr divError enddivtest: idiv ...More instructions... divError: getstatic java/lang/System/out Ljava/io/PrintStream; ldc "Oh dear you divided by 0!" invokevirtual java/io/PrintStream/print(Ljava/lang/String;)V The problem with the above is that when I have multiple instructions that jump to this subroutine, I get an error message when running the bytecode, saying that the stack height is inconsistent. Perhaps using exceptions is the best way to get around this? From some googling I have found that you can create instances of Exception classes and initialise them with something like: new java/lang/Exception dup ldc "exception message!" invokespecial java/lang/Exception/<init>(Ljava/lang/String;)V I have also found that you can throw them with athrow and this seems ok. What is confusing me however is exactly how exceptions are caught. There seems to be a magical "Exception table" which glues the throwing and catching of exceptions together, but I do not know how to define one of these when writing bytecode from scratch (and assembling using Jasmin). Can somebody tell me the secret of creating an exception table? And possibly give me an example of exception handling that will assemble with jasmin?

    Read the article

  • getting duplicate array output - java

    - by dowln
    Hello, Can someone could be kind and help me out here. Thanks in advance... My code below outputs the string as duplicates. I don't want to use Sets or ArrayList. I am using java.util.Random. I am trying to write a code that checks if string has already been randomly outputted and if it does, then it won't display. Where I am going wrong and how do I fix this. public class Worldcountries { private static Random nums = new Random(); private static String[] countries = { "America", "Candada", "Chile", "Argentina" }; public static int Dice() { return (generator.nums.nextInt(6) + 1); } public String randomCounties() { String aTemp = " "; int numOfTimes = Dice(); int dup = 0; for(int i=0 ; i<numOfTimes; i++) { // I think it's in the if statement where I am going wrong. if (!countries[i].equals(countries[i])) { i = i + 1; } else { dup--; } // and maybe here aTemp = aTemp + countries[nums.nextInt(countries.length)]; aTemp = aTemp + ","; } return aTemp; } } So the output I am getting (randomly) is, "America, America, Chile" when it should be "America, Chile".

    Read the article

  • Le Logiciel Libre – Omniprésent dans le secteur public

    - by gravax
    NOTE : Cet article a servi de base à du contenu publié en Juin 2011 dans le magazine Acteurs Publics. Créé il y a plusieurs décennies déjà, pour répondre à un besoin de partage de savoir, et de compétences, le Logiciel Libre existe sous plusieurs appellations, à l'origine anglo-saxonnes, dont « Free Software » et « Open Source » sont les plus utilisées. En Anglais, le mot « Free » pouvant signifier à la fois libre et gratuit, cela a créé une certaine confusion qui n'existe pas en Français avec le mot « libre ». Du coup, on voit souvent l’acronyme FOSS ou FLOSS, pour « Free, Libre, Open Source Software » afin d'éliminer l’ambiguïté. De nos jours, dans le secteur public, le logiciel libre est, depuis, devenu omniprésent. Il répond à plusieurs besoins critiques dont le contrôle des coûts, le choix (de partenaire, de logiciel, de fonctionnalités), la liberté de pouvoir modifier les applications pour les adapter à ses propres besoins, la sécurité provenant du fait que de nombreux développeurs et utilisateurs ont pu contrôler la qualité du code. Un autre aspect très présent dans les logiciels libres et l'adhérence quasi-systématique aux standards de l'industrie, qui garantit une intégration simple et facile au système d'information existant. Il y a cependant des éléments à prendre en compte lors des choix de logiciels libres stratégiques. Si l'aspect coûts est clairement un élément de choix qui peut conduire aux logiciels libres, il est principalement dû au fait qu'un logiciel libre existe souvent en version gratuite, librement téléchargeable. Mais ceci n'est que le le sommet de l'iceberg. Lors de la mise en production de logiciels il va falloir s'entourer de services dont l'intégration, où les possibilités de choix d'un partenaire seront d'autant plus grandes que le logiciel choisi est populaire et connu, ce qui conduira à des coups tirés vers le bas grâce à une concurrence saine. Mais il faudra aussi prévoir le support technique. La encore, la popularité du logiciel choisi augmentera la palette de prestataires de support possible. Le choix devra se faire suivant des critères très solides, et en particulier la capacité à s'engager sur des niveaux de service, la disponibilité 24 heures sur 24, 7 jours sur 7 (le pays ne s’arrête pas de fonctionner le week-end ou la nuit), et, éventuellement, la couverture géographique correspondant aux métiers que l'on exerce (un pays comme la France couvrant avec ses DOM et ses TOM une grande partie des fuseaux horaires et zones géographiques de la planète). La plus part des services publics, que ce soit éducation, santé, ou gouvernement, utilisent déjà des logiciels libres. On les retrouve coté infrastructure, avec des produits comme la base de données MySQL, fortement appréciée dans le monde de l'éducation pour construire des plate-formes d'e-éducation en conjonction avec d'autres produits libres tels Moodle, ou GlassFish, le serveur d'applications très prisé des développeurs pour son adhérence au standard Java EE version 6 et sa simplicité de mise-en-œuvre. Linux est extrêmement présent comme système d'exploitation libre dans le datacenter, mais aussi sur le poste de travail. On retrouve des outils de virtualisation tels Oracle VM, issu de Xen, dans le datacenter, et VirtualBox sur le poste du développeur. Avec une telle palette de solutions et d'outils dans le monde du Logiciel libre, Oracle se apporte au secteur public des réponses ciblées, efficaces, aux besoins du marché, y compris en matière de support technique et qualité de service associée.

    Read the article

  • Changing email application in Preferred Applications to GMail?

    - by grm
    I'm trying to change the Preferred Application for email. I have installed the package desktop-webmail, but there is no new option under System - Preferences - Preferred Application as you would expect, infact, there is only one option there, only Evolution. According to this post it should be possible to set a custom application, but no option is available. Is it possible to setup GMail as Preferred email app so that File - Send by email works in gnome apps? This seems to be a dup of another post here, Thing is that this works fine in 10.10, but in 11.04 this method no longer work. My post above is meant for 11.04 and the question is still valid.

    Read the article

  • Subterranean IL: Generics and array covariance

    - by Simon Cooper
    Arrays in .NET are curious beasts. They are the only built-in collection types in the CLR, and SZ-arrays (single dimension, zero-indexed) have their own commands and IL syntax. One of their stranger properties is they have a kind of built-in covariance long before generic variance was added in .NET 4. However, this causes a subtle but important problem with generics. First of all, we need to briefly recap on array covariance. SZ-array covariance To demonstrate, I'll tweak the classes I introduced in my previous posts: public class IncrementableClass { public int Value; public virtual void Increment(int incrementBy) { Value += incrementBy; } } public class IncrementableClassx2 : IncrementableClass { public override void Increment(int incrementBy) { base.Increment(incrementBy); base.Increment(incrementBy); } } In the CLR, SZ-arrays of reference types are implicitly convertible to arrays of the element's supertypes, all the way up to object (note that this does not apply to value types). That is, an instance of IncrementableClassx2[] can be used wherever a IncrementableClass[] or object[] is required. When an SZ-array could be used in this fashion, a run-time type check is performed when you try to insert an object into the array to make sure you're not trying to insert an instance of IncrementableClass into an IncrementableClassx2[]. This check means that the following code will compile fine but will fail at run-time: IncrementableClass[] array = new IncrementableClassx2[1]; array[0] = new IncrementableClass(); // throws ArrayTypeMismatchException These checks are enforced by the various stelem* and ldelem* il instructions in such a way as to ensure you can't insert a IncrementableClass into a IncrementableClassx2[]. For the rest of this post, however, I'm going to concentrate on the ldelema instruction. ldelema This instruction pops the array index (int32) and array reference (O) off the stack, and pushes a pointer (&) to the corresponding array element. However, unlike the ldelem instruction, the instruction's type argument must match the run-time array type exactly. This is because, once you've got a managed pointer, you can use that pointer to both load and store values in that array element using the ldind* and stind* (load/store indirect) instructions. As the same pointer can be used for both input and output to the array, the type argument to ldelema must be invariant. At the time, this was a perfectly reasonable restriction, and maintained array type-safety within managed code. However, along came generics, and with it the constrained callvirt instruction. So, what happens when we combine array covariance and constrained callvirt? .method public static void CallIncrementArrayValue() { // IncrementableClassx2[] arr = new IncrementableClassx2[1] ldc.i4.1 newarr IncrementableClassx2 // arr[0] = new IncrementableClassx2(); dup newobj instance void IncrementableClassx2::.ctor() ldc.i4.0 stelem.ref // IncrementArrayValue<IncrementableClass>(arr, 0) // here, we're treating an IncrementableClassx2[] as IncrementableClass[] dup ldc.i4.0 call void IncrementArrayValue<class IncrementableClass>(!!0[],int32) // ... ret } .method public static void IncrementArrayValue<(IncrementableClass) T>( !!T[] arr, int32 index) { // arr[index].Increment(1) ldarg.0 ldarg.1 ldelema !!T ldc.i4.1 constrained. !!T callvirt instance void IIncrementable::Increment(int32) ret } And the result: Unhandled Exception: System.ArrayTypeMismatchException: Attempted to access an element as a type incompatible with the array. at IncrementArrayValue[T](T[] arr, Int32 index) at CallIncrementArrayValue() Hmm. We're instantiating the generic method as IncrementArrayValue<IncrementableClass>, but passing in an IncrementableClassx2[], hence the ldelema instruction is failing as it's expecting an IncrementableClass[]. On features and feature conflicts What we've got here is a conflict between existing behaviour (ldelema ensuring type safety on covariant arrays) and new behaviour (managed pointers to object references used for every constrained callvirt on generic type instances). And, although this is an edge case, there is no general workaround. The generic method could be hidden behind several layers of assemblies, wrappers and interfaces that make it a requirement to use array covariance when calling the generic method. Furthermore, this will only fail at runtime, whereas compile-time safety is what generics were designed for! The solution is the readonly. prefix instruction. This modifies the ldelema instruction to ignore the exact type check for arrays of reference types, and so it lets us take the address of array elements using a covariant type to the actual run-time type of the array: .method public static void IncrementArrayValue<(IncrementableClass) T>( !!T[] arr, int32 index) { // arr[index].Increment(1) ldarg.0 ldarg.1 readonly. ldelema !!T ldc.i4.1 constrained. !!T callvirt instance void IIncrementable::Increment(int32) ret } But what about type safety? In return for ignoring the type check, the resulting controlled mutability pointer can only be used in the following situations: As the object parameter to ldfld, ldflda, stfld, call and constrained callvirt instructions As the pointer parameter to ldobj or ldind* As the source parameter to cpobj In other words, the only operations allowed are those that read from the pointer; stind* and similar that alter the pointer itself are banned. This ensures that the array element we're pointing to won't be changed to anything untoward, and so type safety within the array is maintained. This is a typical example of the maxim that whenever you add a feature to a program, you have to consider how that feature interacts with every single one of the existing features. Although an edge case, the readonly. prefix instruction ensures that generics and array covariance work together and that compile-time type safety is maintained. Tune in next time for a look at the .ctor generic type constraint, and what it means.

    Read the article

< Previous Page | 4 5 6 7 8 9 10 11 12 13 14 15  | Next Page >