• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 129
  • 29
  • 14
  • Tagged with
  • 171
  • 61
  • 53
  • 47
  • 47
  • 40
  • 31
  • 31
  • 29
  • 25
  • 24
  • 23
  • 23
  • 21
  • 20
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
31

METHODOLOGIE DE CONCEPTION D'UNE ALIMENTATION A DECOUPAGE

Schutz, Jean 06 January 1999 (has links) (PDF)
Cette thèse se préoccupe d'améliorer la conception de convertisseur. Le nombre de contraintes augmente avec l'évolution technologique et les restrictions actuelle et amènent à .des solutions informatiques. Dans une première partie nous allons analysé nos connaissances actuelles sur la base de la réalisation d'un Flyback et d'un Forward. De nombreuses difficultés ont été rencontrées et une étude du transformateur en découle. Cette approche ne tien par contre pas conte des problèmes CEM. Dans une deuxième partie nous traitons la modélisation du transformateur. La prédétermination magnétique d'enroulement en fils de Litz est développée et des comparaisons avec des résultats expérimentaux la valide. Une approche analytique 2D permet d'améliorer le calcul * de l'inductru1ce de fuite. La pris en compte du plan de masse * et l'instauration d'une nouvelle méthode d'identification permet d'améliorer le modèle électrostatique du transformateur. La problématique de la CEM dans la conception est aborder dans la troisième partie. Un recensement des modèles * actuellement disponible est effectué. Trois méthodes * de calculs de perturbations en fréquencielle sont étudiées. Une analyse des perturbations, en fonction des paramètres des modèles, permet l'identification des paramètres les plus sensibles et d'agir en conséquence pour améliorer le comportement CEM. Une dernière partie est consacrée à l'expérimentation d'un logicielle de conception de convertisseur en plein développement. Jusque là il n'est pas encore possible d'obtenir des résultats probants cependant de nombreuses erreurs ont pu être éliminer et des modifications significatives sont élaborées pour une prochaine version.
32

Qinna, une architecture à base de composants pour la gestion de la qualité de service dans les systèmes embarqués mobiles

Tournier, Jean-Charles 01 July 2005 (has links) (PDF)
Les systèmes embarqués communicants sont de plus en plus présents dans notre environnement quotidien sous formes de PDA, téléphones portables, etc. Ces sytèmes se doivent d'être ouverts afin de pouvoir accueillir de nouvelles applications tout au long de leur cycle de vie. Ils possèdent alors des contraintes fortes de types qualité de service, sécurité, tolérance aux fautes, etc. La programmation à base de composants apparaît comme une solution prometteuse pour le développement de tels systèmes. Cependant, un des frein à l'adoption de ce type de programmation est que les modèles à composants n'intègrent pas les aspects de gestion de qualité de service. <br />Ce travail de thèse présente une architecture de gestion de qualité de service pour les systèmes embarqués mobiles à composants. Cette architecture, appelée Qinna, est définie à l'aide de composants Fractal et permet la mise en œuvre, ainsi que la gestion dynamique, de contrats de qualité de service entre les différents composants d'un système. L'originalité de l'approche proposée permet de prendre en compte la qualité de service quelque soit le niveau considéré du système (niveau applicatif, niveau services, niveau système d'exploitation et niveau ressources).<br />L'architecture Qinna a été validée par une évaluation qualitative à base de patrons génériques d'architecture, puis par une évaluation quantitative permettant de montrer que le coût de l'architecture reste faible.<br />Le travail réalisé ouvre de nombreuses perspectives de recherche notamment celle de généraliser l'approche utilisée (définition d'une architecture abstraite de composant pour la prise en charge de la gestion d'une propriété non-fonctionnelle, ici la QdS) à d'autres propriétés non-fonctionnelles (par exemple la sécurité ou la tolérance aux fautes), et d'en tirer des conclusions sur la définition et la génération de conteneurs ouverts.
33

Gestion thermique des composants d'électronique de puissance- Utilisation du diamant CVD

Zhang, Zhongda 13 July 2012 (has links) (PDF)
L'augmentation de la densité de puissance des convertisseurs déénergie électrique nécessite une gestion thermique toujours plus performante. La thermique devient même l'élément dimensionnant de ces convertisseurs et est au centre des préoccupations des concepteurs. Le diamant présente des propriétés physico-chimiques exceptionnelles particulièrement adaptées à la gestion thermique des composants semi-conducteurs de l'électronique de puissance. C'est en effet le meilleur matériau isolant et conducteur thermique connu à ce jour. La possibilité de réaliser du diamant polycristallin de manière reproductible par synthèse CVD ouvre aujourd'hui à ce matériau un grand champ d'applications industrielles. Nous avons étudié les potentialités d'applications au domaine particulier de l'électronique de puissance. Nous avons tout d'abord développé une plateforme de simulation COMSOL qui nous permette d'évaluer différentes structures pour optimiser le système de refroidissement des composants d'électronique de puissance. Nous avons alors étudié deux solutions, l'utilisation d'un substrat diamant épais pour reporter les composants ou le dépôt direct d'une fine couche de passivation sur les composants en fin de fabrication. Nous avons ainsi développé une structure à substrat diamant et micropoteaux en cuivre qui permet d'extraire jusqu'à 800 W/cm² sous le composant pour un échauffement de 120°C. Cette structure a été réalisée technologiquement pour valider toute la démarche de simulation et conception. Ce prototype propose des performances particulièrement intéressantes pour l'intégration des convertisseurs d'électronique de puissance à haute densité de puissance. Nous avons également étudié la passivation des composants avec du diamant CVD en lieu et place du SiO2. L'intérêt d'une telle passivation est démontré en simulation et les différentes étapes de la réalisation technologique sont étudiées. Cette dernière partie met en évidence des difficultés qu'il faudra lever si l'on souhaite utiliser le diamant comme couche de passivation.
34

Méthodologie d'évaluation de la sensibilité des microprocesseurs vis à vis des rayonnements cosmiques.

Houssany, Sabrine 13 September 2013 (has links) (PDF)
Les circuits électroniques embarqués dans les systèmes évoluant au niveau spatial ou dans l'atmosphère sont soumis à des particules naturellement présentes qui peuvent provoquer une perturbation de leur fonctionnement. Le type d'effet lié à ces particules le plus souvent rencontré dans les composants logiques est le SEU. Cet effet correspond à l'inversion de l'état logique d'un élément de mémorisation. De nombreuses études ont été menées pour mettre au point des outils et méthodologies permettant de caractériser la sensibilité des mémoires (SRAM principalement) vis-à-vis de ce type d'effets. Néanmoins, avec l'augmentation importante de l'électronique embarquée et plus particulièrement, l'utilisation de composants de plus en plus complexes comme les microprocesseurs multicoeurs, il est devenu difficile, à l'aide des outils jusque là disponibles, de déterminer l'impact réel d'une erreur déclenchée dans un élément de mémorisation sur une application exécutée par le système électronique. L'utilisation des outils et méthodologies actuellement disponibles ne constituent alors qu'une approche pire cas : tous les éléments de mémorisation non protégés du composant sont comptabilisés et considérés comme sensibles, ce qui amène à considérer des marges importantes lors de l'analyse de risque de l'équipement. Une réduction importante de ces marges est possible en analysant le comportement dynamique de l'application opérée par le composant complexe. En effet, tous les éléments de mémorisation ne sont pas sensibles 100% du temps et de nombreux mécanismes de masquage peuvent faire en sorte qu'une erreur au niveau composant n'ait pas d'incidence sur l'application. Ce sujet de thèse aboutira à la mise au point d'un outil permettant de connaitre avec plus de précisions la sensibilité réelle d'une application opérée sur un microprocesseur, en vue d'optimiser les protections nécessaires et plus particulièrement, de tirer profit de l'architecture spécifique des microprocesseurs multicoeurs. Pour réaliser cette étude, les axes suivants seront investigués : - Étude de l'architecture des microprocesseurs - Utilisation des modèles de performance de processeurs - Utilisation des techniques d'émulation par FPGA - Analyse logicielle du code de l'application Des validations expérimentales sous laser et faisceau de particules seront également réalisées.
35

Modèles de conception et d'exécution pour la médiation et l'intégration de services

Garcia garza, Issac noe 18 June 2012 (has links) (PDF)
Les systèmes logiciels s'orientent vers des environnements de plus en plus hétérogènes et dynamiques. Cette évolution est induite par différents facteurs : explosion des dispositifs embarqués avec de fortes capacités de calcul, adoption rapide des services distants fournis par des tiers, mobilité des usagers et évolution du contexte associé, etc. Ces facteurs ouvrent de grandes possibilités pour la construction de nouveaux services numériques dans des domaines aussi divers que la santé, le divertissement, la domotique, ou encore le transport. Ces nouveaux domaines d'applications demandent la mise en œuvre des opérations d'intégration dans des contextes dynamiques et hétérogènes. Il est aujourd'hui admis que les approches à services facilitent l'intégration logicielle par la définition de protocoles standard de découverte et de liaison. La problématique d'intégration, au sens médiation, reste néanmoins entière. Le problème principal abordé par cette thèse est l'intégration de services dans des contextes hétérogènes et dynamiques. Plus précisément, nous avons conçu un modèle à composant spécifique à l'intégration logicielle, nommé CILIA. Ce modèle repose sur des composants, appelés médiateurs, et sur un langage d'assemblage de ces médiateurs. CILIA reprend les grands principes du Génie Logiciel tels que l'abstraction, la séparation de préoccupations et la modularité, et s'appuie sur des patrons d'intégration bien connus (Enterprise Integration Patterns). CILIA est implanté sous la forme d'un framework dynamique qui permet la mise à jour à l'exécution des solutions d'intégration. Ce framework CILIA est pleinement opérationnel et disponible en open source. Il est utilisé dans plusieurs projets collaboratifs.
36

Sam : un environnement d'exécution pour les applications à services dynamiques et hétérogènes

Simon, Eric 07 March 2011 (has links) (PDF)
Ces dernières années, le contexte d'exécution des applications a beaucoup évolué. Nous sommes passés, en moins de 15 ans, d'applications monolithiques et statiques faiblement distribuées à des applications réparties à grande échelle ayant un comportement très dynamique. Les plates-formes d'exécution qui étaient autrefois fermées sont désormais ouvertes à des équipements nomades et aux contextes des utilisateurs comme dans l'informatique ubiquitaire ou la domotique. Les éléments logiciels, dans ce nouveau contexte, peuvent apparaitre ou disparaître de façon imprédictible (ils sont dits " dynamiques ") et sont souvent issus de technologies hétérogènes (Web Service, OSGi, UPnP, etc.). Le caractère imprévisible de l'environnement, et le fait qu'il faille s'y adapter rend, apparemment, les plates-formes d'exécution non déterministes. Il est impératif de pouvoir maîtriser l'évolution des applications dynamiques. Cette thèse définit une plate-forme pour l'exécution répartie de services hétérogènes. Cette plate-forme fournit un modèle homogène de l'état des services à l'exécution et des opérations d'administration du cycle de vie d'un service, indépendamment des plates-formes réelles. Cette plate-forme fournit également des mécanismes qui permettent d'étendre la supervision et l'administration à d'autres préoccupations (déploiement, versionnement, etc.). Les propriétés d'introspection et de réflexion ainsi obtenues permettent de contrôler l'évolution à l'exécution de l'architecture d'une application et par là même de maîtriser les applications dynamiques. Cette thèse fournit un prototype d'une telle plate-forme nommée SAM-RT.
37

Vers une modélisation et un dimensionnement automatique des systèmes répartis

Harbaoui, Ahmed 21 October 2011 (has links) (PDF)
De nos jours, les systèmes distribués sont caractérisés par une complexité croissante de l'architecture, des fonctionnalités et de la charge soumise. Cette complexité induit souvent une perte de la qualité de service offerte, ou une saturation des ressources, voire même l'indisponibilité des services en ligne, en particulier lorsque la charge est importante. Afin d'éviter les désagrèments causés par d'importantes charges et remplir le niveau attendu de la qualité de service, les systèmes nécessitent une auto-gestion, en optimisant par exemple un tier ou en le renforçant à travers la réplication. Cette propriété autonome requiert une modélisation des performances de ces systèmes. Visant cet objectif, nous développons un framework basé sur une méthodologie théorique et expérimentale d'identification automatique de modèle et de dimensionnement, fournissant en premier un modèle de réseau de file d'attente pour un système distribué. Ensuite, ce Modèle est utilisé au sein de notre framwork pour dimensionner le système à travers une analyse ou une simulation du réseau de file d'attente.
38

Compositional verification of component-based real-time systems and applications / Vérification compositionnelle des systèmes temps-réel à base de composants et applications

Ben Rayana - Tekaya, Souha 04 November 2016 (has links)
Dans le cas des systèmes temps-réels, une difficulté majeure pour le développement d’une approche compositionnelle consiste au modèle synchrone du temps où les horloges des différents composants avancent simultanément.Cet aspect est, pourtant, difficile à considérer dans un cadre compositionnel.Nous proposons une méthode basée sur l’approche déductive et consistant à calculer d’une manière purement compositionnelle une sur-approximation de l’ensemble des états atteignables du système à travers un invariant.Ce dernier se compose d’invariants locaux propres aux composants, un invariantd’interaction caractérisant les interactions entre les composants. En plus, afin de considérer le modèle synchrone du temps, nous introduisons des horloges auxiliaires appelées « Horloges d’Histoire ». Elles permettent de générer des invariants supplémentaires permettant de détecter des relations induites par les synchronisations temporelles des différents composants. Appliqué à plusieurs exemples de systèmes, l’invariant s’est avéré souvent suffisamment fort avec une réduction importante de la complexité de vérification.Toutefois, puisque la méthode est basée sur une sur-approximation, des faux contre-exemples peuvent être générés. Nous avons complété la méthode avec un module destiné pour leur analyse.Au delà de son passage à l’échelle, la méthode est étendue pour la vérification uniforme des systèmes paramétrés, où certains composants sont identiques. La validité de la propriété peut être affirmée indépendamment de leur nombre.Cette méthode compositionnelle est implémentée dans l’outil RTD-Finder conçu pour la vérification des systèmes modélisés au langage BIP (Behavior-Interaction-Priority).Les résultats d’expérimentation montrent la réduction de la complexité de vérification en comparaison avec l’approche monolithique, surtout quand l’invariant global est en mesure de détecter la propriété d’intérêt. / The compositional Verification aims at breaking down the complexity of the verification task by relying on the separate analysis of the sub-components and inferring global properties of the system from their local properties.In the framework of real-time systems, one main obstacle for developing fully compositional methods is the synchronous model of time.We propose a verification method based on the deductive approach where the setof reachable states of the system is over-approximated by an invariant computedin a fully compositional manner. It comprises local component invariants andan interaction invariant characterizing the interactions between the components.In addition, we introduce auxiliary clocks, called history clocks which allow toautomatically generate new invariants capturing the constraints induced by thetime-synchronizations between the different components. We completed this com-positional invariant generation approach with a counterexample-based invariantenforcement module analyzing iteratively the generated counterexamples.Besides its scalability, the method can be extended to the uniform verification of parameterized timed systems.Our compositional verification method was implemented in the RTD-Finder tool.The experimental results show that the verification time for large systems is drastically reduced in comparison with exploration techniques, especially when the global invariant catches the safety property of interest.
39

Croissance, propriétés optiques et intégration d'hétérostructures radiales InGaN/GaN autour de fils auto-assemblés de GaN crûs sur saphir et silicium / Growth, Optical properties and integration of InGaN/GaN radial heterostructures on self-assembled GaN wires grown on sapphire and silicon

Salomon, Damien 15 November 2013 (has links)
Ce travail est consacré à la réalisation de diodes électroluminescentes visibles à base de fils de GaN crûs sur Si(111) par épitaxie en phase vapeur de précurseurs organo-métalliques. Nous cherchons en particulier à comprendre les mécanismes de croissance des fils de GaN et les propriétés structurales et optiques de puits quantiques InGaN/GaN cœur/coquille déposés autour de ceux-ci. La croissance de fils orientés le long de l'axe -c sur saphir est dans un premier temps détaillée et expliquée. Nous montrons que l'injection de silane pendant la croissance des fils permet de former une couche de passivation de SiNx autour de ceux-ci. L'arrêt de l'injection de silane après quelques dizaines de secondes ne modifie pas la géométrie fil et ce procédé peut donc être utilisé pour contrôler le positionnement le long du fil de la zone de dépôts des puits quantiques InGaN/GaN. Ce procédé est ensuite transféré sur substrat Si(111) grâce au dépôt préalable d'une fine couche tampon d'AlN sur le substrat. Le dépôt de puits quantiques InGaN/GaN sur les facettes non-polaires m de ces fils et l'influence de différents paramètres de croissance sur leur émission de lumière sont étudiés. Nous montrons notamment l'existence de plusieurs familles des puits quantiques dans les fils dont les longueurs d'onde d'émission ont pu être indexées à l'aide de cartographies de cathodoluminescence. La concentration en indium des puits quantiques déposés a été estimée en comparant les énergies d'émissions des puits à des simulations utilisant la théorie k.p dans l'approximations 8 bandes pour les électrons et les trous et est comprise entre 8 et 24%. Enfin, des structures LED complètes ont été déposées sur les fils de GaN par MOVPE et une électroluminescence bleue à 450 nm à température ambiante est mesurée sur des fils uniques et sur des assemblées de fils sur silicium. / This work reports on the realization by metal organic vapor phase epitaxy of visible light emitting diodes based on GaN wires grown on Si(111) with a focus on understanding the wires growth mechanisms and the properties of InGaN/GaN core/shell heterostructures grown around them. First we report the MOVPE growth of –c oriented GaN wires on sapphire. We demonstrate that the injection of silane during the growth induces the formation of a SiNx passivation layer around the GaN wires, preventing the lateral expansion. The silane flow can be stopped after a certain time without modifying the wire geometry. This phenomenon is used to control the position of the InGaN/GaN multiple quantum well shells along the wires. The wire growth on sapphire has then been transferred to silicon substrate thanks to the deposition of a thin AlN buffer layer prior to the wire growth. The deposition of InGaN/GaN core/shell heterostructures on the non-polar m-plane side facets of the wires and the influence of different growth parameters on the light emission properties of the quantum wells are then studied. Several types of quantum wells grown on different facets of the wire surface are observed. These different families emit light at different wavelengths that have been indexed thanks to cathodoluminescence mapping. The indium concentration in the quantum wells deposited is estimated between 8 and 24 %, depending on the growth conditions. This estimation has been made by comparing the emission wavelength of the quantum well to the recombination energy of electrons and wells simulated using the 8x8 band k.p theory for electron and hole masses. Finally, complete LED structures have been deposited on GaN wires by MOVPE and blue electroluminescence at 450 nm has been measured on single wires and assemblies of wires on Si(111).
40

Surveillance de systèmes à composants multi-threads et distribués / monitoring multi-threaded and distributed (component-based) systems

Nazarpour, Hosein 26 June 2017 (has links)
La conception à base de composants est le processus qui permet à partir d’exigences et un ensemble de composants prédéfinis d’aboutir à un système respectant les exigences. Les composants sont des blocs de construction encapsulant du comportement. Ils peuvent être composés afin de former des composants composites. Leur composition doit être rigoureusement définie de manière à pouvoir i) inférer le comportement des composants composites à partir de leurs constituants, ii) déduire des propriétés globales à partir des propriétés des composants individuels. Cependant, il est généralement impossible d’assurer ou de vérifier les propriétés souhaitées en utilisant des techniques de vérification statiques telles que la vérification de modèles ou l’analyse statique. Ceci est du au problème de l’explosion d’espace d’états et au fait que la propriété est souvent décidable uniquement avec de l’information disponible durant l’exécution (par exemple, provenant de l’utilisateur ou de l’environnement). La vérification à l’exécution (Runtime Verification) désigne les langages, les techniques, et les outils pour la vérification dynamique des exécutions des systèmes par rapport à des propriétés spécifiant formellement leur comportement. En vérification à l’exécution, une exécution du système vérifiée est analysée en utilisant une procédure de décision : un moniteur. Un moniteur peut être généré à partir d’une spécification écrite par l’utilisateur (par exemple une formule de logique temporelle, un automate) et a pour but de détecter les satisfactions ou les violations par rapport à la spécification. Généralement, le moniteur est une procédure de décision réalisant une analyse pas à pas de l’exécution capturée comme une séquence d’états du système, et produisant une séquence de verdicts (valeur de vérité prise dans un domaine de vérité) indiquant la satisfaction ou la violation de la spécification.Cette thèse s’intéresse au problème de la vérification de systèmes à composants multithread et distribués. Nous considérons un modèle général de la sémantique et système à composants avec interactions multi-parties: les composants intrinsèquement indépendants et leur interactions sont partitionées sur plusieurs ordonnanceurs. Dans ce contexte, il est possible d’obtenir des modèles avec différents degrés de parallelisme, des systèmes séquentiels, multi-thread, et distribués. Cependant, ni le modèle exact ni le comportement du système est connu. Ni le comportement des composants ni le comportement des ordonnanceurs est connu. Notre approche ne dépend pas du comportement exact des composants et des ordonnanceurs. En s’inspirant de la théorie du test de conformité, nous nommons cette hypothèse : l’hypothèse de monitoring. L’hypothèse de monitoring rend notre approche indépendante du comportement des composants et de la manière dont ce comportement est obtenu. Lorsque nous monitorons des composants concurrents, le problème qui se pose est celui de l’indisponibilité de l’état global à l’exécution. Une solution naïve à ce problème serait de brancher un moniteur qui forcerait le système à se synchroniser afin d’obtenir une séquence des états globaux à l’exécution. Une telle solution irait complètement à l’encontre du fait d’avoir des exécutions concurrentes et des systèmes distribués. Nous définissons deux approches pour le monitoring de système un composant multi-thread et distribués. Dans les deux approches, nous attachons des contrôleurs locaux aux ordonnanceurs pour obtenir des événements à partir des traces locales. Les événements locaux sont envoyés à un moniteur (observateur global) qui reconstruit l’ensemble des traces globale qui sont i) compatibles avec les traces locales et ii) adéquates pour le monitoring, tout en préservant la concurrence du système. / Component-based design is the process leading from given requirements and a set of predefined components to a system meeting the requirements. Components are abstract building blocks encapsulating behavior. They can be composed in order to build composite components. Their composition should be rigorously defined so that it is possible to infer the behavior of composite components from the behavior of their constituents as well as global properties from the properties of individual components. It is, however, generally not possible to ensure or verify the desired property using static verification techniques such as model-checking or static analysis, either because of the state-space explosion problem or because the property can only be decided with information available at runtime (e.g., from the user or the environment). Runtime Verification (RV) is an umbrella term denoting the languages, techniques, and tools for the dynamic verification of system executions against formally-specified behavioral properties. In this context, a run of the system under scrutiny is analyzed using a decision procedure: a monitor. Generally, the monitor may be generated from a user-provided specification (e.g., a temporal-logic formula, an automaton), performs a step-by-step analysis of an execution captured as a sequence of system states, and produces a sequence of verdicts (truth-values taken from a truth-domain) indicating specification satisfaction or violation.This thesis addresses the problem of runtime monitoring multi-threaded and distributed component-based systems with multi-party interactions (CBSs). Although, neither the exact model nor the behavior of the system are known (black box system), the semantic of such CBSs can be modeled with labeled transition systems (LTSs). Inspiring from conformance testing theory, we refer to this as the monitoring hypothesis. Our monitoring hypothesis makes our approach oblivious of (i) the behavior of the CBSs, and (ii) how this behavior is obtained. We consider a general abstract semantic model of CBSs consisting of a set of intrinsically independent components whose interactions are managed by several schedulers. Using such an abstract model, one can obtain systems with different degrees of parallelism, such as sequential, multi-threaded and distributed systems. When monitoring concurrent (multi-threaded and distributed) CBSs, the problem that arises is that a global state of the system is not available at runtime, since the schedulers execute interactions even by knowing the partial state of the system. Moreover, in distributed systems the total ordering of the execution of the interaction is not observable. A naive solution to these problems would be to plug in a monitor which would however force the system to synchronize in order to obtain the sequence of global states as well as the total ordering of the executions at runtime Such a solution would defeat the whole purpose of having concurrent executions and distributed systems. We define two approaches for the monitoring of multi-threaded and distributed CBSs. In both approaches, we instrument the system to retrieve the local events of the schedulers. Local events are sent to an online monitor which reconstructs on-the-fly the set of global traces that are i) compatible with the local traces of the schedulers, and ii) suitable for monitoring purposes, in a concurrency-preserving fashion.

Page generated in 0.0374 seconds