Bienvenue sur le site des sciences de l'ingénieur de la PCSI/PSI du lycée Jean Jaurès à Argenteuil

Connexion


Site des S2I - PCSI/PSI - Jean Jaurès - Argenteuil

Cahier de textes de la PCSI

Date Sé. Gr. Cy. Contenu À faire
11/05/20
9h - 10h
TD 7 TD 1 : sécateur PellencTD3 :
joint de Oldham
06/05/20
10h - 10h
TD 7 Correction concours blanc – Q5 à Q12.
Train épicycloïdal : exercice 3 et 4.
Interrogation d’1h : liaison équivalente et train d’engrenages simple.
TD1 :
sécateur Pellenc
04/05/20
9h - 10h
TD 7 Correction concours blanc – Q1 à 5
22/04/20
10h-1 -
TD – Cours 7 Synthèse des élèments du cours.
Exercice d’application n°1 et n°2 (agrafeuse Rexel).
Interrogation d’1h : liaison équivalente, condition de roulement sans glissement et train d’engrenages simple.
20/04/20
8h - 10h
TD – Cours 7 Correction de l’interrogation n°11.
Début du cycle 7 :
     - test de découverte sur la transmission de puissance ;
     - étude du cours 12 et 13.
Finir l’étude du cours 12 et 13.
Interrogation,d’un 1h ;
liaison équivalente, condition de roulement sans glissement, adaptateur de vitesse :
train simple.
01/04/20
10h - 13h
TD 6 Cours 
     - Cas particulier – Contact ponctuel.
TD5 – Étude d’un variateur à billes.
Interrogation : liaison équivalente et calcul de vitesse.
30/03/20
9h - 10h
TD 6 TD 4 : exercice 2 ascenseur de la Tour de la terreur
25/03/20
11h - 13h
TD 6 TD : Trayeuse pour vache.
Questions 10 et 11, Cours 10 : torseur cinématique.
TD 4 : exercice 1 wiiboard
18/03/20
10h - 13h
TD 6 TD : Trayeuse pour vache.
Questions 1 à 9.
16/03/20
8h - 10h
TD 6 Fin du TD 2 : manège pieuvre.
11/03/20
8h - 10h
TP G2 6 Fin du cours 9 : performances cinématiques des systèmes Début TD1 : calcul vectoriel
11/03/20
13h - 14h
Cours CE 6 TD 2 : manège pieuvre
11/03/20
10h - 12h
TP G1 6 Fin du cours 9 : performances cinématiques des systèmes
04/03/20
8h - 10h
TP G2 6 Cours 9 : performances cinématiques des systèmes : généralités
04/03/20
13h - 14h
Cours CE 6 Suite du cours 9 : performances cinématiques des systèmes :
     - rappel cinématique du point ;
     - calcul de la vitesse par dérivation de la vitesse.
04/03/20
10h - 12h
TP G1 6 Cours 9 : performances cinématiques des systèmes : généralités
02/03/20
9h - 10h
TD G1 5 Fin du TD analyse géométrique de l’inclinaison de pales d’hélicoptère
02/03/20
8h - 9h
TD G2 5 Fin du TD analyse géométrique de l’inclinaison de pales d’hélicoptère
25/02/20
8h - 10h
TP G2 5 Présentation orale des TP 4 Fin du TD1 : schéma cinématique d’un micromoteur
25/02/20
13h - 14h
Cours CE 5 TD 4 : analyse géométrique de l’inclinaison de pales d’hélicoptère
25/02/20
10h - 12h
TP G1 5 Présentation orale des TP 4 Fin du TD1 : schéma cinématique d’un micromoteur
24/02/20
9h - 10h
TD G1 5 TD1 : schéma cinématique d’un micromoteur
24/02/20
8h - 9h
TD G2 5 TD1 : schéma cinématique d’un micromoteur
05/02/20
8h - 10h
TP G2 5 TP 4 : modélisation des mécanismes par groupe de 3 à 4 élèves sur les systèmes suivants :
     - Maxpid ;
     - barrière Sympact ;
     - pilote hydraulique.
05/02/20
13h - 14h
Cours CE 5 Cours 8 : analyse géométrique
05/02/20
10h - 12h
TP G1 5 TP 4 : modélisation des mécanismes par groupe de 3 à 4 élèves sur les systèmes suivants :
     - Maxpid ;
     - barrière Sympact ;
     - pilote hydraulique.
03/02/20
9h - 10h
TD G1 5 TD1 : schéma cinématique d’un micromoteur
03/02/20
8h - 9h
TD G2 5 TD1 : schéma cinématique d’un micromoteur
29/01/20
15h - 16h
Cours CE 5 Cours 8 : analyse géométrique
29/01/20
13h - 15h
TP G1 5 TP 4 : modélisation des mécanismes par groupe de 3 à 4 élèves sur les systèmes suivants :
     - Maxpid ;
     - barrière Sympact ;
     - pilote hydraulique.
29/01/20
10h - 12h
TP G2 5 TP 4 : modélisation des mécanismes par groupe de 3 à 4 élèves sur les systèmes suivants :
     - Maxpid ;
     - barrière Sympact ;
     - pilote hydraulique.
27/01/20
9h - 10h
TD G1 5 Cours 7 : schéma cinématique
27/01/20
8h - 9h
TD G2 5 Cours 7 : schéma cinématique
22/01/20
15h - 16h
Cours CE 5 Cours 7 : schéma cinématique
22/01/20
13h - 15h
TP G1 5 Cours 6 : modélisation des mécanismes.
22/01/20
10h - 12h
TP G2 5 Cours 6 : modélisation des mécanismes.
20/01/20
9h - 10h
TD G1 4 TD2 : système d’orientation de phare
20/01/20
8h - 9h
TD G2 4 TD2 : système d’orientation de phare
15/01/20
15h - 16h
Cours CE 4 Exercice : identification d’un système à partir de son diagramme de Bode
15/01/20
13h - 15h
TP G1 4 TD2 : système d’orientation de phare
15/01/20
10h - 12h
TP G2 4 TD2 : système d’orientation de phare
13/01/20
9h - 10h
TD G1 4 TD2 : système d’orientation de phare
13/01/20
8h - 9h
TD G2 4 TD2 : système d’orientation de phare
08/01/20
15h - 16h
Cours CE 4 Exercice : tracé de diagramme de Bode
08/01/20
13h - 15h
TP G1 4 TD1 : suspension active automobile
08/01/20
10h - 12h
TP G2 4 TD1 : suspension active automobile
06/01/20
9h - 10h
TD G1 4 TD1 : suspension active automobile
06/01/20
8h - 9h
TD G2 4 TD1 : suspension active automobile
18/12/19
15h - 16h
Cours CE 4 Exercice : tracé de diagramme de Bode
18/12/19
13h - 15h
TP G1 4 Fin du cours sur l’analyse fréquentielle des SLCI
18/12/19
10h - 12h
TP G2 4 Fin du cours sur l’analyse fréquentielle des SLCI
16/12/19
9h - 10h
TD G1 4 Exercice : tracé de diagramme de Bode
16/12/19
8h - 9h
TD G2 4 Exercice : tracé de diagramme de Bode
11/12/19
15h - 16h
Cours CE 4 Cours sur l’analyse fréquentielle des SLCI
11/12/19
13h - 15h
TP G1 3 Présentation des TP.
Fin du TD2 : création de motifs sur de la poudre de maquillage compactée.
TD3 : Speedcam
11/12/19
10h - 12h
TP G2 3 Présentation des TP.
Fin du TD2 : création de motifs sur de la poudre de maquillage compactée.
TD3 : Speedcam
09/12/19
9h - 10h
TD G1 3 Correction de l’exercice sur l’identification d’un système à partir de sa réponse temporelle
09/12/19
8h - 9h
TD G2 3 Correction de l’exercice sur l’identification d’un système à partir de sa réponse temporelle
04/12/19
15h - 16h
Cours CE 3 Exercice : tracée de la réponse indicielle de systèmes d’ordre 1 et 2.
04/12/19
13h - 15h
TP G1 3 TP 3 : étude de la performance temporelle par groupe de 4 élève sur les systèmes suivants :
     - Maxpid ;
     - cheville Nao ;
     - Comax
04/12/19
10h - 12h
TP G2 3 TP 3 : étude de la performance temporelle par groupe de 4 élève sur les systèmes suivants :
     - Maxpid ;
     - cheville Nao ;
     - Comax
02/12/19
9h - 10h
TD G1 3 Fin du TD1 : système de refroidissement d’une centrale nucléaire TD2 : création de motifs sur de la poudre de maquillage compactée.
02/12/19
8h - 9h
TD G2 3 Fin du TD1 : système de refroidissement d’une centrale nucléaire TD2 : création de motifs sur de la poudre de maquillage compactée.
27/11/19
15h - 16h
Cours CE 3 Exercice : identification de l’ordre et des caractéristiques d’un système à partir de sa réponse indicielle
27/11/19
13h - 15h
TP G1 3 TP 3 : étude de la performance temporelle par groupe de 4 élève sur les systèmes suivants :
     - Maxpid ;
     - cheville Nao ;
     - Comax
27/11/19
10h - 12h
TP G2 3 TP 3 : étude de la performance temporelle par groupe de 4 élève sur les systèmes suivants :
     - Maxpid ;
     - cheville Nao ;
     - Comax
25/11/19
9h - 10h
TD G1 3 TD1 : système de refroidissement d’une centrale nucléaire
25/11/19
8h - 9h
TD G2 3 TD1 : système de refroidissement d’une centrale nucléaire
20/11/19
15h - 16h
Cours CE 3 Exercice : identification de l’ordre et des caractéristiques d’un système à partir de sa fonction de transfert
20/11/19
13h - 15h
TP G1 3 Cours sur la performance globale des systèmes multiphysiques (système d’ordre 2) TD1 : système de refroidissement d’une centrale nucléaire
20/11/19
10h - 12h
TP G2 3 Cours sur la performance globale des systèmes multiphysiques (système d’ordre 2) TD1 : système de refroidissement d’une centrale nucléaire
18/11/19
9h - 10h
TD G1 3 TD5 : robot Ericc
18/11/19
8h - 9h
TD G2 3 TD5 : robot Ericc
13/11/19
15h - 16h
Cours CE 3 Cours sur la performance globale des systèmes multiphysiques (système d’ordre 1)
13/11/19
13h - 15h
TP G1 2 TD4 : modélisation du téléphérique Vanoise Express
13/11/19
10h - 12h
TP G2 2 TD4 : modélisation du téléphérique Vanoise Express
11/11/19
9h - 10h
TD G1 2 Férié : pas de cours
11/11/19
8h - 9h
TD G2 2 Férié : pas de cours
06/11/19
15h - 16h
Cours CE 2 TD4 : modélisation du téléphérique Vanoise Express
06/11/19
13h - 15h
TP G1 2 Présentation des TP sur la modélisation acausale des SLCI.
06/11/19
10h - 12h
TP G2 2 Présentation des TP sur la modélisation acausale des SLCI.
04/11/19
9h - 10h
TD G1 2 Fin du TD 3 : bassin RAMSES
04/11/19
8h - 9h
TD G2 2 Fin du TD 3 : bassin RAMSES
16/10/19
15h - 16h
Cours CE 2 Interrogation sur la performance des systèmes et les schéma-bloc.
Suite du cours sur la modélisation par schéma-bloc : exercice de calcul de fonction de transfert et principe de superposition.
16/10/19
13h - 15h
TP G1 2 TP2 : modélisation acausale des SLCI par groupe de 4 élèves sur les systèmes suivants :
     - Mobycréa ;
     - Variospeed ;
     - Comax.
16/10/19
10h - 12h
TP G2 2 TP2 : modélisation acausale des SLCI par groupe de 4 élèves sur les systèmes suivants :
     - Mobycréa ;
     - Variospeed ;
     - Comax.
14/10/19
9h - 10h
TD G1 2 Fin du TD2 : enceinte chauffante.
TD3 : bassin RAMSES questions 1 à 3.
Finir TD 3
14/10/19
8h - 9h
TD G2 2 Fin du TD2 : enceinte chauffante.
TD3 : bassin RAMSES questions 1 à 3.
Finir TD 3
11/10/19
15h - 16h
Cours CE 2 Interrogation sur la performance des systèmes et les schéma-bloc.
Suite du cours sur la modélisation par schéma-bloc : exercice de calcul de fonction de transfert.
11/10/19
13h - 15h
TP G1 2 TP2 : modélisation acausale des SLCI par groupe de 4 élèves sur les systèmes suivants :
     - Mobycréa ;
     - Variospeed ;
     - Comax.
11/10/19
10h - 12h
TP G2 2 TP2 : modélisation acausale des SLCI par groupe de 4 élèves sur les systèmes suivants :
     - Mobycréa ;
     - Variospeed ;
     - Comax.
09/10/19
9h - 10h
TD G1 2 TD2 : enceinte chauffante.
Interrogation sur la performance des systèmes.
09/10/19
8h - 9h
TD G2 2 TD2 : enceinte chauffante.
Interrogation sur la performance des systèmes.
02/10/19
15h - 16h
Cours CE 2 Interrogation : performances des systèmes, schéma-bloc, transformée de Laplace.
Suite du cours sur la modélisation des SLCI par schéma-bloc.
(Représentation par schéma-bloc et FTBF)
02/10/19
13h - 15h
TD G1 2 Fin du TD1 : modélisation d’un four.
Exercice d’application sur les théorèmes usuels (valeur finale et valeur initiale).
Début du cours la modélisation des systèmes par schéma-bloc.
02/10/19
10h - 12h
TD G2 2 Fin du TD1 : modélisation d’un four.
Exercice d’application sur les théorèmes usuels (valeur finale et valeur initiale).
Début du cours la modélisation des systèmes par schéma-bloc.
30/09/19
9h - 10h
TD G1 2 TD 1 : modélisation d’un four.
30/09/19
8h - 9h
TD G2 2 TD 1 : modélisation d’un four.
25/09/19
15h - 16h
Cours CE 2 Fin du cours sur la transformée de Laplace.
Exercices d’application sur la transformée de Laplace.
25/09/19
13h - 15h
TP G1 1 TP 1 : analyse des systèmes.
Par groupe de 3 à 4 élèves, découverte, prise en main et analyse de quelques systèmes du laboratoire :
     - boule gyrostabilisée BGR-300 ;
     - capsuleuse Indexa ;
     - barrière Sympact.
Présentation orale des résultats du TP.
25/09/19
10h - 12h
TP G2 1 TP 1 : analyse des systèmes.
Par groupe de 3 à 4 élèves, découverte, prise en main et analyse de quelques systèmes du laboratoire :
     - boule gyrostabilisée BGR-300 ;
     - capsuleuse Indexa ;
     - barrière Sympact.
Présentation orale des résultats du TP.
23/09/19
9h - 10h
TD G1 1 Suit du TD : poste de mise en carton.
23/09/19
8h - 9h
TD G2 1 Suit du TD : poste de mise en carton.
18/09/19
15h - 16h
Cours CE 2 Cycles 2 : cours 1 : modélisation des SLCI par la transformée de Laplace.
Performances de systèmes : stabilité, rapidité, précision.
Exercice d’application : identification des performances temporelles à partir d’une réponse à un échelon.
18/09/19
13h - 15h
TP G1 1 TP 1 : analyse des systèmes.
Par groupe de 3 à 4 élèves, découverte, prise en main et analyse de quelques systèmes du laboratoire :
     - boule gyrostabilisée BGR-300 ;
     - capsuleuse Indexa ;
     - barrière Sympact.
18/09/19
10h - 12h
TP G2 1 TP 1 : analyse des systèmes.
Par groupe de 3 à 4 élèves, découverte, prise en main et analyse de quelques systèmes du laboratoire :
     - boule gyrostabilisée BGR-300 ;
     - capsuleuse Indexa ;
     - barrière Sympact.
16/09/19
9h - 10h
TD G1 1 TD 2 : exercice 2 tests et assemblage de disjoncteurs.
Exercice 3 : Segway question 6.
TD 3 : poste de mise en carton question 1.
Pour le 23/09/2019 :
finir TD3
16/09/19
8h - 9h
TD G2 1 TD 2 : exercice 2 tests et assemblage de disjoncteurs.
Exercice 3 : Segway question 6.
TD 3 : poste de mise en carton question 1.
Pour le 23/09/2019 :
finir TD3
11/09/19
15h - 16h
Cours CE 1 TD 1 : analyse fonctionnelle et comportementale externe.
Correction de l’exercice 4.
TD 2 : analyse fonctionnelle, comportementale et structurelle.
Exercice 1.
Pour le 23/09/2019 :
DM n°1 commande génerique d’ouvrants pilotés automobiles.
Pour le 16/09/2019 :
finir exercice 2 du TD
11/09/19
13h - 15h
TP G1 1 Présentation du déroulement des TP.
TP 1 : analyse des systèmes.
Par groupe de 3 à 4 élèves, découverte, prise en main et analyse de quelques systèmes du laboratoire :
     - boule gyrostabilisée BGR-300 ;
     - capsuleuse Indexa ;
     - barrière Sympact.
11/09/19
10h - 12h
TP G2 1 Présentation du déroulement des TP.
TP 1 : analyse des systèmes.
Par groupe de 3 à 4 élèves, découverte, prise en main et analyse de quelques systèmes du laboratoire :
     - boule gyrostabilisée BGR-300 ;
     - capsuleuse Indexa ;
     - barrière Sympact.
09/09/19
9h - 10h
TD G1 1 TD 1 : analyse fonctionnelle et comportementale externe.
Correction de l’exercice 2.
Exercices 3 et 4.
09/09/19
8h - 9h
TD G2 1 TD 1 : analyse fonctionnelle et comportementale externe.
Correction de l’exercice 2.
Exercices 3 et 4.
04/09/19
15h - 16h
TD CE 1 TD1 : analyse fonctionnelle et comportementale externe : exercices 1 et 2
04/09/19
13h - 15h
Cours CE 1 Introduction aux sciences industrielles de l’ingénieur.
Cours sur l’analyse des systèmes : langage SysML, chaîne d’information chaîne d’information.
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-
//
-