From 68fd4be1d04d9d2a558c74ca5792d1648982a18c Mon Sep 17 00:00:00 2001 From: Bertrand Benjamin Date: Mon, 7 Nov 2022 09:45:22 +0100 Subject: [PATCH] =?UTF-8?q?Feat:=20importation=20et=20modif=20=C3=A0=20la?= =?UTF-8?q?=20marge=20des=20notebook=20de=20la=20s=C3=A9quence=20de=20l'an?= =?UTF-8?q?n=C3=A9e=20derni=C3=A8re?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 2nd/06_Programmation/1B_momie.pdf | Bin 0 -> 25670 bytes 2nd/06_Programmation/1B_momie.tex | 38 +++ 2nd/06_Programmation/1E_tour_d_horizon.ipynb | 1 + 2nd/06_Programmation/2B_variables.pdf | Bin 0 -> 20730 bytes 2nd/06_Programmation/2B_variables.tex | 60 +++++ 2nd/06_Programmation/2E_variables.ipynb | 1 + 2nd/06_Programmation/3B_conditions.pdf | Bin 0 -> 19809 bytes 2nd/06_Programmation/3B_conditions.tex | 39 +++ 2nd/06_Programmation/3E_conditions.ipynb | 1 + 2nd/06_Programmation/4B_boucle_for.pdf | Bin 0 -> 17942 bytes 2nd/06_Programmation/4B_boucle_for.tex | 54 ++++ 2nd/06_Programmation/4E_boucles_for.ipynb | 1 + 2nd/06_Programmation/5B_boucle_while.pdf | Bin 0 -> 18247 bytes 2nd/06_Programmation/5B_boucle_while.tex | 52 ++++ 2nd/06_Programmation/5E_boucles_while.ipynb | 1 + 2nd/06_Programmation/6B_fonctions.pdf | Bin 0 -> 19209 bytes 2nd/06_Programmation/6B_fonctions.tex | 62 +++++ 2nd/06_Programmation/6E_fonctions.ipynb | 42 +++ 2nd/06_Programmation/7E_simulation.ipynb | 259 +++++++++++++++++++ 2nd/06_Programmation/code/momie.py | 29 +++ 2nd/06_Programmation/index.rst | 0 2nd/index.rst | 19 +- 22 files changed, 651 insertions(+), 8 deletions(-) create mode 100644 2nd/06_Programmation/1B_momie.pdf create mode 100644 2nd/06_Programmation/1B_momie.tex create mode 100644 2nd/06_Programmation/1E_tour_d_horizon.ipynb create mode 100644 2nd/06_Programmation/2B_variables.pdf create mode 100644 2nd/06_Programmation/2B_variables.tex create mode 100644 2nd/06_Programmation/2E_variables.ipynb create mode 100644 2nd/06_Programmation/3B_conditions.pdf create mode 100644 2nd/06_Programmation/3B_conditions.tex create mode 100644 2nd/06_Programmation/3E_conditions.ipynb create mode 100644 2nd/06_Programmation/4B_boucle_for.pdf create mode 100644 2nd/06_Programmation/4B_boucle_for.tex create mode 100644 2nd/06_Programmation/4E_boucles_for.ipynb create mode 100644 2nd/06_Programmation/5B_boucle_while.pdf create mode 100644 2nd/06_Programmation/5B_boucle_while.tex create mode 100644 2nd/06_Programmation/5E_boucles_while.ipynb create mode 100644 2nd/06_Programmation/6B_fonctions.pdf create mode 100644 2nd/06_Programmation/6B_fonctions.tex create mode 100644 2nd/06_Programmation/6E_fonctions.ipynb create mode 100644 2nd/06_Programmation/7E_simulation.ipynb create mode 100644 2nd/06_Programmation/code/momie.py create mode 100644 2nd/06_Programmation/index.rst diff --git a/2nd/06_Programmation/1B_momie.pdf b/2nd/06_Programmation/1B_momie.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d5ef3732befdeb837e69198d9e85ce8a5fe14185 GIT binary patch literal 25670 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
?S>>QkxrEK(N5MR-?*Zp|9fQ`|JTZ-)Wf+e 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 literal 0 HcmV?d00001 diff --git a/2nd/06_Programmation/1B_momie.tex b/2nd/06_Programmation/1B_momie.tex new file mode 100644 index 0000000..a32f4fd --- /dev/null +++ b/2nd/06_Programmation/1B_momie.tex @@ -0,0 +1,38 @@ +\documentclass[a4paper,10pt]{article} +\usepackage{myXsim} + +\author{Benjamin Bertrand} +\title{Programmation - Cours} +\date{Février 2022} + +\pagestyle{empty} + +\begin{document} + +\maketitle + +\section{Programme Python} + +\begin{center} + %\includegraphics[scale=0.6]{./fig/pgm_momie} + \begin{minipage}{0.8\linewidth} + \lstinputlisting[language=Python]{./momie.py} + \end{minipage} +\end{center} + +Contenu du programme + +\afaire{Relever les mots clés, les opérateurs, les variables et les fonctions dans le programme.} + +\begin{itemize} + \item Les mots clés (en vert gras) + \vspace{2cm} + \item Les opérateurs (en rose) + \vspace{2cm} + \item Les variables (en noir) + \vspace{2cm} + \item Les fonctions (en vert) + \vspace{2cm} +\end{itemize} + +\end{document} diff --git a/2nd/06_Programmation/1E_tour_d_horizon.ipynb b/2nd/06_Programmation/1E_tour_d_horizon.ipynb new file mode 100644 index 0000000..f3f8914 --- /dev/null +++ b/2nd/06_Programmation/1E_tour_d_horizon.ipynb @@ -0,0 +1 @@ +{"cells":[{"metadata":{},"cell_type":"markdown","source":"# Étape 1: Tour d'horizon\n\n"},{"metadata":{},"cell_type":"markdown","source":"## Decrire un programme\n\nCi-dessous, vous retrouverez des programmes. Vous devez les executer. Puis écrire une phrase par ligne de programme pour décrire ce qu'elle fait."},{"metadata":{},"cell_type":"markdown","source":"### Programme 1"},{"metadata":{"trusted":true},"cell_type":"code","source":"print(\"Hello les 2nd\")\na = 2\nprint(a + a)","execution_count":1,"outputs":[{"output_type":"stream","text":"Hello les 2nd\n4\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"Description"},{"metadata":{},"cell_type":"raw","source":""},{"metadata":{},"cell_type":"markdown","source":"### Programme 2"},{"metadata":{"trusted":true},"cell_type":"code","source":"age = int(input(\"Quel age as-tu?\"))\nif age >= 18:\n print(\"Tu es majeur, tu peux passer ton permis\")\nelse:\n print(\"Tu es mineur\")\n \n print(\"Il te reste \", 18 - age, \"ans avant de pouvoir passer le permis\")","execution_count":5,"outputs":[{"output_type":"stream","name":"stdout","text":"Quel age as-tu?1\nTu es mineur\nIl te reste 17 ans avant de pouvoir passer le permis\n"}]},{"metadata":{},"cell_type":"markdown","source":"Description"},{"metadata":{},"cell_type":"raw","source":""},{"metadata":{},"cell_type":"markdown","source":"### Programme 3\n"},{"metadata":{"trusted":false},"cell_type":"code","source":"def f(x):\n resultat = x**2 + 2\n return resultat\n\nprint(f(0))\nprint(f(10))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Description"},{"metadata":{},"cell_type":"raw","source":""},{"metadata":{},"cell_type":"markdown","source":"## Modifier le programme de la momie\n\n\nOuvrez le programme édupython \n\nCi-dessous, vous avez un programme qui code un jeu de hazard. \n\n**Copier puis coller tout le programme dans édupython** puis lancer quelques parties pour comprendre ce que faire ce jeux.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Programme de la momie - tiré du livre les maths ensembles et pour chacun\nfrom random import randint\n\ndef choisir_porte(nombre_portes):\n print(\"Il y a \" + str(nombre_portes) + \" portes devant toi.\")\n porte_choisie = int(input( \"Laquelle ouvres-tu?\"))\n return porte_choisie\n \n \nnombre_portes = 3\npoints_de_vie = 5\nscore = 0\ndegat_momie = 3\n\nwhile points_de_vie > 0:\n print(\"Tu arrives dans un long couloir et tu avances. Jusqu'à ce que...\")\n porte_momie = randint(0, nombre_portes)\n porte_choisie = choisir_porte(nombre_portes)\n if porte_choisie == porte_momie:\n print(\"Une momie attaque!\")\n for i in range(degat_momie):\n print(\"Elle te touche une fois\")\n points_de_vie = points_de_vie - 1\n else:\n print(\"Rien! Tu as survécu à une porte en plus.\")\n score = score + 1\n\nprint(\"T'es mort. Tu n'as plus de points de vie.\")\nprint(\"Le jeu est fini, ton score est de \", score)","execution_count":8,"outputs":[{"output_type":"stream","text":"Tu arrives dans un long couloir et tu avances. Jusqu'à ce que...\nIl y a 3 portes devant toi.\nLaquelle ouvres-tu?2\nUne momie attaque!\nElle te touche une fois\nElle te touche une fois\nElle te touche une fois\nTu arrives dans un long couloir et tu avances. Jusqu'à ce que...\nIl y a 3 portes devant toi.\nLaquelle ouvres-tu?2\nRien! Tu as survécu à une porte en plus.\nTu arrives dans un long couloir et tu avances. Jusqu'à ce que...\nIl y a 3 portes devant toi.\nLaquelle ouvres-tu?2\nRien! Tu as survécu à une porte en plus.\nTu arrives dans un long couloir et tu avances. Jusqu'à ce que...\nIl y a 3 portes devant toi.\nLaquelle ouvres-tu?2\nRien! Tu as survécu à une porte en plus.\nTu arrives dans un long couloir et tu avances. Jusqu'à ce que...\nIl y a 3 portes devant toi.\nLaquelle ouvres-tu?2\nUne momie attaque!\nElle te touche une fois\nElle te touche une fois\nElle te touche une fois\nT'es mort. Tu n'as plus de points de vie.\nLe jeu est fini, ton score est de 3\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"Maintenant que vous avez un peu joué à ce jeu. Vous allez créer des variantes de ce jeu. \n\nVous devez faire dans l'ordre les variantes 1, 2 et 3. Les autres peuvent être fait dans l'ordre que vous souhaitez en fonction de ce qui vous inspire.\n\n\n**Pour chaque variante, vous copirez puis collerez le programme précédent dans un nouveau fichier dans édupython avant de le modifier.**"},{"metadata":{},"cell_type":"markdown","source":"*Variante 1* Modifier le programme pour que chaque ouverture de porte sans momie rapporte 10 points"},{"metadata":{},"cell_type":"markdown","source":"*Variante 2* Modifier le programme pour que l'on commence avec 5 points de vie mais qu'il n'y ait que deux portes à chaque fois."},{"metadata":{},"cell_type":"markdown","source":"*Variante 3* Le programme comporte un gros bug. Il est possible de ne jamais être dévoré par la momie. Proposer une façon de corriger ce bug.\n"},{"metadata":{},"cell_type":"markdown","source":"*Variante 4* On part fixe le nombre de porte à 3. Quelle est la probabilité de tomber sur un momie? Transformer le programme pour la probabilité de tomber sur une momie soit de 3/2."},{"metadata":{},"cell_type":"markdown","source":"---\nLes variantes suivantes peuvent être faites dans l'ordre que vous souhaitez."},{"metadata":{},"cell_type":"markdown","source":"*Variante 5* Modifier le programme pour qu'à chaque fois que l'on tombe sur une momie, on ait une chance sur deux de perdre 1 point de vie et une chance sur 2 de ne perdre 2 points de vie."},{"metadata":{},"cell_type":"markdown","source":"*Variante 6* Ajouter d'autres monstres cachés derière d'autres portes qui enlèvent plus ou moins de points."},{"metadata":{},"cell_type":"markdown","source":"Variante 7 Étonnez nous avec une variante bien à vous!"},{"metadata":{},"cell_type":"markdown","source":"## Bilan\n\nNoter les mots écris en vert dans différents programmes manipulés et décrire l'action de chacun d'eux."},{"metadata":{},"cell_type":"raw","source":"\n"}],"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"}},"nbformat":4,"nbformat_minor":2} diff --git a/2nd/06_Programmation/2B_variables.pdf b/2nd/06_Programmation/2B_variables.pdf new file mode 100644 index 0000000000000000000000000000000000000000..aed5e57ad5ac7ff40419e1eb63bed466e48e0ac7 GIT binary patch literal 20730 zcmce;1#o3Mt|;1JX67BH4l^?|Q-^n$nbYBPk`6ONhncCv%*@Qp%=vxp{qN4Hdh_SM zdQ~&K7H!+hww7dDk|mKVii*=Q(X+vlkIi?_^)F5J4ZyMj7y))hmax3M00vbLdlLYI zrh<{BiLo<)LB++$`M*-c?Hp|Y41Zn!s{|8(L0H(%9ia2)RYm|4_ z(wY7{=fAFh(v?k|>|7j;O`HI1f0C5{RApi9Y~uLmZf)pnB5Go62mI5ntck6evpIl? z4ZzP2_+LL*Cuc_!LmOE4m06?-MXHG{&@WK$AXl&^w!r^4=g-q${pa{o^M4Kw&VL&m zT>nuxnEt}xzXu^qe-Xid4kJv=|2|0mv$VzZ?;|eeztH`k!wK_WB=GN{E@qbhEF^zT zlm8}2*#EPT{6)|mhQjWMA8%ds?z z2m&eCU`Zu+tdjp2KbMl8FFKbJMJj(^Sy)s6E6E`WSL@V4XP)Wwq}cDH+a>k6J(D-lsVXS%PcWq6@$ej7b8jM`N$7&2a((}hl}Rh)xRJDGFk zCSk4moit*`B;D)D!ZHSuEt8VNHX-|pPzs|u$CY~WkZ@0aIW`h2+%kY{I}(0R)I4ly zDd_bcnRemu%lL2M!Dx!UV(6asfl!g$=!orp3q#r8PVT8e8w7fyLG2_v+U_kveF)no zfh1@d8&*g@^zS-p-+tZra}S@9Eow!f1XK(lkL*k##u>IkvI+0=t_eG$%ZF{tk#J{7 zUXn~piTAeg%!aA*B)|B6#T;k1C*a(N3SSm>HG=N1mqWV=0KNfg(PTU}MqHOoeow8x z_bjl=$ghdJ_ebcItFASNCb}ZKl5XcF$-6P^hP?-N%6cq3*B`^w4wI9U3{wosqJ0G!@L*hMxL~(bXCoT8jGQd#Yf;Qu`fG z#c#T>uKKf!MW8m77ddD$r&sx8p2om*T&>J}^5DspeX&r9ueY>9PUS*BiEojO?;Wx- zPn;rGaFOa;1ywul^1)tCg*sH=oGPCjYN!u!2g=7B@iI>O<=Jd&P7{m*teQl@@kIwk#QmdaD3Wn?9nAHK^Vrd& z)%e)&Mz%&Mq*F|D9kLXew(XmKw_%mpi3zhcMWRZO#sx|wu}7?g=;{O*#C`6VcC05i zHQy61dO2^Fm)yXsh6hFXnot>zy$di1S|$6i%V zUnPf{D)RE8o5^sa6>5S5ZCfyI6X)Cp3~SMV!-%*gpYgpv6T!zfkE@?YUn@%H365=l zPp=Y0LDzB(y5=!;fz2MxtmUa4hR2Nr2bZvOyU9mDW?DZKC3LF-@!64+ZDIIc^C*gq z+_Hgk3dYgiDTt#UB-1MShheCYEk)k&dOl@J2rL?8l|UYqhm}L3MucIGN~GoYW`l|H z=u=7V-vOFj5f$!WTycFZg-;G&r}y`z$ztg`%w}QNVXTlRzc?78xR*+1^*A+n{u-tp zL+zfveP6;ug_WrvnuJr9p5Sp#$v7sU6|$LRp41tQ&RVUaYc>tS&67Le07`O_L~8FK zQ7>KP5579$A=Wy9eWGw0qiJ7*6;>NqnjXunZV^EIFrB4fd)zuP3sQ?}Bbmz|z`S#J_E#Kn$>-_>bV20Q^y1d?XzfOb< z0+GxUzz{CpqGzaPzbAJKk~?sr#7q{_&QIiBzhQ|l6Z9M=OenXkX!<}DZ4JfykEIs?_{ZXFY|w?M`Q;127l?mS`QN3){}BsCq(sH-Y@Pp-2^mHHwNS^* z`bQl2AF=KqjTUHb+Tm+pY`Da!x3WQK6EF~VA~nR3x_H80o~XMYqQqJD&q@L zbFR;HFUjkiidgDglR9(a3Mj~+uLXnM1rs#fx5-g`1l#ry2t9}y?sAd3BAOh7o+dJv zvt1QIMr#iT+Yh}DdH$Rim~fN|nBo09qa4Evq)_z8`kj8SM%@v zPQ5I_+sivwYdu$^lp*?@9#8%KXaf4Y&sCS%&tCUqaGjh^(iz-3RBd~{Nguv$$6M$9 zCao{CJ63mgR@bz_hgh)vJ)^-4bnmXmy#)gFe0ndpHT(=o^cBf!tUvbUIrb0VF*B85lY;;S%&;f&WY6V&4o{J7r1<9=Z=B=}t$nE@iY^^W|Do{S3DAkx(!hM{D z1s4V7eO z<;IqtXR6CAYpeIR@XjE!bi6W2U|hHx{ahK_z|zU* zM=$F~$o`e(y2W*xZevCv8$x!~&3)Bv=~C3I9`BUJdnbNvh*fI3h83ncinj!@Z6$Zw zC@JsFEwp_w+H1*<6ph!A0<5Dde*Gg*r@CQ0ImFq=8F%_gK`V4d#J2f&5Qrl zY~K{ci&DO#_nutmy|I4-4KQ!E8xEoWw!QI4O5cnkW?PXqt@M&w#-@K|xVFo%+@0G!c+*SgIKwqn3mRaY~c>cL67r$tM~P8y#Q4yN9vqg5}H){msX? zghU_qe2l6qS45usaKGY!Y-ob_q&stZ%u#P015j1*xsGwLYTSz$jC0G7_F1IBvpggZ zB`FG5IxGCrGCY*f;jtGiKN2<<)t&j`UW1C|2A2}m@o*HN{7Q>8)mCeCT-PmX_i14F&#~q@*1*qy+Uj`>Djv$Iu~iEHkCzn|u`0 z+N`CHZD0IS!@wL0c_K*C-QsPMIwZ1i9;%oW4SVYh-=~~(Lx$?BH=F8o;W8r|nJSQl z1OtEC2f(b=8#Ko8?3P?PcqZQWlZ`p@FVxzX*p;9`Zw*0Z*KNOjyJq^n=j1f!J@}My znnp+#TJB-9u2RB$#g0sE3orgYy%_>o;N#h)p&_9y^ZV23}sa%vNoWgc~2pU&0 zh!N>L4dwx&->=@*O7|Ko4=X`T#0f2FQ9U$6yP1>=@1z87&^r5{N!=?;0$6L*R>)#hh1kO3zkGx6CM zxa3Wmifx$Qd$KzSX5wHBf^x|TVx%D^W5LVdBtC=XpN1V`LZ`<&R`D!iBdkr1tc|U1 z@R*=1Q3&TNBRrsd5nhv%uv|QUY_rEu-dHeep{FmVRFwr7&V7ZZ2Q>w_HXY2sb$5{+dBZ;d-SZ3(JxQh;rvS33HNTqqEA5$wKbdUL@VW+`-mFS z8rerWrQlq0NU1~30wFN7iOVEBnC+!F2H~&+u8ke9YDO7YlE@D@kPaEN`{t#l*lO*8 zgp!e69L18L3AI!IvNvs=$nGwDjT1OM>*qgTju6;A>!&cQdZwPuquxzn)ixEFvw@?c zz`6W|O_i@p?vQgSi?kPe@^dbAqVnfd&gL_+{!g_Y{sXyb9u2A5H1I$I8p z-ipn7TJ>Otbh$MKytkzFm14UFPW9%(+1AKOs5NKX+tWrBrj&b3esi|;whKqEI;Fab z@NS!;Z>yzC6KuX1uNmAvTdVatj4P$56)n`OJsmV)NjH$T<7KYnw(IQf^R`^TI@n(n zb}6=_^mg;I$sCPq;sn`vaz&tZQRk|=BzNvJ1jxk!;s=|@N*X5aN3M)(-zAQ z`snFKNes{+&3oBKYrfT)UYYjNtU807STE8vv1;VtbuY3CXHcgtMAGqgaVPy2L}dSZ z4w@qOmQ=#p9JM4A1T0c>(=n!MIx94>pKVC@>ngP+u%`}Q5|Y{k4NhR79F(!hHIsk? zEi>mB1ufS!MSx5P-yK>(9qriIdS1j^&RkYs?Xgv{D+~nn{jkqd%>RT74mP^xxom6w zG=IAOMe@<{aMbrPy!|_yHLK%w?N`w!XS;y6z5V{xc8Q4Z)9Wmh1|p%U8xev4zt7e5 z2l4vbi`Ps4$1GHlp7(9-)Mcd;bofmsOeUav$HP$ytH7W&7Lrz^3ospYKQ;UKdwIkJ+6~L%zMf z9+w;M*=zdW-bUd%U*~(h9)0f&u30`IX=uFv8Bh0@F8+V%0{<1m$il|?57zB(45Lq+ zzEvP2djIAv^#vj9c_172gK~KFG6wK&(i+F7VR#;rH5QxbbA zg;?n@3#Bg1PiIS%LU@htZRXLz521fv$e0WmEUkhgP+W9EFKpcSv^HSFp6`l&5?Y5L z$3h;bE^ysexlv`iuqJ@H^hQSPD~S2FNxXd)BZUrzHMU0k35-M-W+ST1?52n>AQ>eO zay6UA@wx9~LA_v=paVk8DhZ!*-r4B<`UN5#2hN$~T0L&6!wQ|t<33P9Gv>nUZ#Ho;PSlsJ$3uje%@Bj7o;Ar*7Q$U@xN~n{7ba4 z{0(b=Lz}VWJD_hQZ^Yp9?K=n7Zy z&eGTqKUnnCkv$XTLQHdi859Tz8X;+-%N@T*;>kz+hwY0OAG`B-=N$XX!{2sa_&Iww ztlm%ct=_G&eW_AXu*Gu~oyW%~rD_iOc?OdAuON5Mg_Xiqw~OqQ$@NbBjSyy3e$MF< z<8Vug7u>nSA7hrSVdLGFg=F|huYXn{s=0-Pjd}-t_>_<8XGfgFXz+cj=`2D*?BgFd z=VpX0q`ehQ2Gg}{%{af2N~T4+UlQ1U?gLJ19Jpa%Kt1zA_&oQ0y#E>P4@8VheUwzRvvEjMi zK#`EvDnYyP{MyO&ina~|krk83Gn<~l?SKxRK>siz$|o@T=}{y}>=64!015r$%NP1G^w1PzeIZzL02;_RBN<9ZWfu-8Ak5i3;#&;RiI7Sp9*$(;a$ zE+>eXQ-DjF1cHD~?+-#&7Fa{aq70sNT$%NhMHfnr)-(~l20 z@ljxHyHO0%4_m5f=9einYFpzU4K^%O$o4D>Opxx4<>l`^MF zj>;PPkF8V^&P@AxM2M{u$`{fN5;mj*&~ZMj0<2Da9>7jOAnPGGQMbDgPhEhzv)2+Bu}fuBiKq|f_0z(koqUg!^g{|=;Hd6=($ znZ8tb(Y*qZg$!T#)D&fp?T7ov#bCkk!^uBDiFc;JUA6+iCH86K!pw&pUxldnh|muj znG};qsF9w60?g$kGH#=K3`8Sa0+ODQzw|m90WdAsA)|HmLVs(mtlWwuf&l}<38$Pp zZ$x%qMXLadihfo)?dQ+CI#0j&S<=!kiTPJuBB97awVgQkvtYw1+)ptB?2UKKzbD9o zAiyR~L3w+7*Qrmn#z2S%#ezidd(!=coCD>)39?e~599tyNYO{#2hl~M|H zg4j@i?4R%mMrLrA(e<5{;VSH=NCb}%`wS$8G#HpAL@UPg*Ar5~^5^wDa#5tBdT52k zx24~6oBkT`D%tzo6;2fjnd`2D9bI_JFT2G*Ydu*FG!Y`bYJUQzvyrc$rv_~9!VcBJ zpP-$=BICP1LY7bsr^yXM7CXcmSV9uG(8ZW?R~(O6kG0 z(hfnI%tw^kFTc-V;SlGPU%ZOqzEtk3^HYMawC-!K3yV#)EXYdcNB?^c$960Q!Rm&+=YJ}ggXcw=vE`mHGjK z#XF=2OkjgckB`2Qnx};J+96;R$Ylt^={9YkrN8EEy9VsbKY!JL$Ev3k6(Cm;-vZ0w z?~EWc<^6)n{mZ3A0=h>HISSqWhYRE$<1zoq7g<>l{%ruJ(#>mO6El}HI_B?FqJkqiUqO^!NfciTRWwo5IQ?|U5Y7yx!=oYxUVF=Qa6NJaggb*k6^MzHH z`5_xAHS#;-q))v;?&wOHxpQ$B?2xZ&TKioeXng#GSpAK^c(g3En5+aih6NEHrTZ#0 zBtn|}*x~C4C8!;`E9*)qw7c`(4T`Q+-9ra|J`~r{*3q#Lf3T>0Fkx(C^Oj4v?^Yyx z8d?;tP%^LhX!ApT?+gw^fP$@=L^o>{cEAb)YTj3|eWZnkoh`x;F6Ev_{|AW`GDlDI zY{E)5zOHdN6x)?!od|sY5_Jb=K5Ot)P6a7J(>$9|VZyB#@G!3{NfZE?H0|Te6)7#iAM~p&zO7IP&uF<7B9$iewM7zlOIw5CUZrx?jgLj`J~4}e*rH4jB|JRL=Ikhn?7 zJA@lJ%xu6XFX+spT|~_r8=;hXPg&y z>F~^aX?w{UsNl*cwkGx}*+nBLa(jz0ZYKOj(G;}0YN1*bSTnFxQ&ZKK)ZekXy!1?9 zb0Vlpw_c*&wb@yvo`+rXre~_s(%O0~a3`r978$%|hVzP6rpadd4XdNdw2 zd;>REuUtTGRXImnwUy{8dWIE7@JLZ}-TW$=5qhNFyvCbMIF)^xFh`tDrR*6;iW z=!Z;2yx+eG*p%5VUfAfkU7|M0rL(VdjOUQAq!GWcKohkz5u=sVSA9yoyk+bh$$38) z-cWr=D|o8K!MNkPYV3Hg;XOKUgObGbkn8|DIo8g?3Dh{MVXZzT(fedWVDizX)&8Bn<8s>m$RN#5hsv{fnR=cy~-aEO|7 z+h){i7g6%WHAzdVQMOfscFTA| z)hR>457?!N^7Ay6tULN0kUu$!`l+XGl(~3+^e-C zZ1(z6=p8uh~1+M**x(o^xD4njo+QBEbSJl{c?@|Fh3b= z{v3vT(hB-r=gxZUhbBplB4u`iD#gC0ojdqB=l8mkTz!v!Ec0`(=1__RM|?(n*Z;{O z(A7e$LT{tkTjND3`jG8?iR%4_zQCgDuZ7Ags&)=QzWd?E7e3$HMUX`lJy*Lg zswY8(+;NoiCG~Y!b6eA)_G=FPvEpqc<-9lXzI%fccpq&3;or-f=tJijK2j}2xDj`1fhLy5>U;BLw*SCOwr@$CBOEy7i z&QC(o=uknp-fyh#-4Q^}Jx-=jD1f$~von4~RhC(w1N-?c!bv#%g>mD%h*qbne&?37 z2cMBc=VT7qyk=$~&dg*=pmiPPs}`?SGsW6nFd@TT3~h5dMu;!+^FdCA}7vr z5+|+Zxr{;mamtQ+;0-6@(eN(>zALAY?_w@^rKd|7nKXuRPK6LP`6B!m$hMq!bWuzn zFz0CvRWTJCRUtj2Eh4{J0BhnLT=Z$M#|7_IACL zM^`*-iRHEnwOq6ZXT17Zz}cKiBtAFv$7j0O^&?SUZ&XFKUS8iWr_G-))_*K zkKCWTzsR^+IIG1Mac|&9Xl^(hmMZZW`qB})KnwT^E3M{~_p{vP-$GomOkEMk4RWzt zWuGLzg%yyZyz)?*(&JoDnma&vDg>*g8XA$jE5nFz_C_MzkJ77Wb_REd5COmbifq8Q z%-2C+&s1GQq@~TbeHoQo?@{JhQ);gb;SEV6P;jL^Dz8-+MUxg&A# ztuu0V@!d#p^M3j6ZngZvYM?QWw*miLJiTmlz23;`x$(v(2Q)G}uWEW?u`#&O_M2W! zJ!p;9bZf8`%By;$C1~2y%N|$x1u9EPPm?D;$=4GOkb6;M4)k{mnzGk$>NK8(P*|ny zEUw>XwY#8M$x4J}W$A7nnS|#$O{Y_>tKYk*>tYiLWLhW3S@s^k{~jp*J%%5{eZqjh z^nJGuEWXwz%YgwmE4}qGPDuxL?~W6PuG_6=v10c*X5A1hP{~p?PDF}sOp;$jQ7z?tV||riQk(mt!bG}3T$rERuOt4 z<=EQy{z|2wuTM5O`rqCg@)@)62FMqk-A)Q*+baz%mUlFia8~btn#$( z)FVuBb%t*xkQMsP4&7cv6;-~k*hZ5Y+_yjTFK|1GVH7xL7a3tqLdu0MFQm#SiPhcA zzK&$YYSfyK_cVZKCM?@G@jA7Sr6yeqCU9?J#|tXp1V<}) z_Pgzg#lxShPe7ypkw^cqkVuH^g_LIA$n$|d{0a;Z8v4Y-yNUfmm``wJ zHRts>AR%{gT?177`cHl0Vc zm4|ki!Lv=osd=Y&p3uQ_qZCV8p{+S z*x$>ieHvenidH9ov6-LevF)FEVX56>P3kifMT(LJNyTff>(yh}_&U*+owI#{cW4xF zDo0~2&^~6&XODk6i<7=UzSkqI2aqDPWWcSf-!HF_9-(t9x=!^Ha+i<1Pc^Rmgv{NP z6AMJa@nawo67_dfHa*Bw-CJTk2K*R+$41!9Qh!5Lzes33sfwdJG5n41hLC9fI5V<; zhF7HO&(SCFgu>&yQNt(RhC67v!7X<;Mb6ZVLc+w*Jq%n3U?E(=chImfJ4V#+S2%)N z0KS_y|B$!iZit^B7pzNaYqe(gl6wzD*vFfORG&ejbYpAn-7SjD=7X$h%mW+z`NUe^ zUFVog%`U~xCvR7)E9U+a2zI8x=0d@jKS4uBq@_6BfU;d=4|yTZjElmwt6}Ka8Un~8 zC6%P)HDc@$8DdR*$PRlizw?k}O8>cF=Yu8+W5~z7R{aWxi6u1)MQj8};f-c0pR|)! z4c4Qu!_%6WfR-a(bWLTR+wfsGml61|+wSOXn$9`~)My(EZarcRnfnUzCr}ab6BGC62k-!InZ`W@O(#VsQB_LHVbEu@=j5Y(x+hyGz)swQoHbTRxK=pdK6k7+I3_^Ue?mZfHAR$w0|V>wM|;pTC3$YFc>%cITT+={+#oLk{TD zpv-SR9N3-RF7JDy`GBxi$KMOwRXv#-HQb(DebPP-e=Ix9Bu7he+*MU1S<^a9+=RE+Vo*c)#`~$FcWe-p75vkDq zSLrNZPt&E-oI1LpHF3#j=uY?JPQce^vWe(p(N&{#Vsm8Io~A*;X3}dtTlV~OcaYBaqWp`5X2}h^ZLW@>Skzh zHXFLFdRZJNQ|`B1si~Q#m5W$KPu=P5mc%X#{(8?QKZgxn1yp&;IrZi@8e zo3F!TxSP;*+K9R#yI+jT#D^;BXiH>V5;oSr1+jn~?AgJTiBD#kc~;-Q zqy=2tWkku$Un>6=D!~!8c&fKg@K;tu)b?M<=}{6CvQpfl%F97U_ajk+)(&7+1Q{U+ z9#g^(9^ja0yUHlpf=T!fDcL?b~!-% z5g20-0B%f{0_esrMJtZlX7^vk_MjMwC!PfNVBQ;!r3{2ZM1m*eXUA>IS>OyjSt=uo1vPzu-`6JxwCdU)ipYj8)M70^u+S4}%9E9k!}psB`J(Z;XeM_H z?njr8i4NaQXK0%zvt+XQkHT?`?29e)=DmDnuhlFsVg|9o zY8Z9t<$m2^XBf+DcIDf#=G&0YxEjBteZAM<8p!0*YG)`r=K$Khq#Lxx8j2@>lM^7q zNu(be4lMg_Ioc9N&w8*nmLkCjNs-)Qt2$b2{7aAM{-OAhUW21%>!HVpX_*SfMF}Dj zVgFZ87}_PSKBvP>C#Rx=Dk@M+R@_4sAN>SXNH5O|R@jH*QGzUs;fLfiVx^E`-q7G^ zo9bk!Qb~$p3?=sA^q$2qHN=`dM*IaNMsPfSFFf|VNtisxhW@P!+A zg1vt+;57Q(NYnyanl~Ug1$hUJ8DEyXr!5HmYT%MyVuLJuiX-_H55G7q87L&1BLxu; z>ui`>rz$Hc3k%3kiVj0SM3)UZHe#fRpwc8lH|k!&j%F1JES}>cfJpReF3uynOl1^8 zloD2sg#!|+1EgKh+6wmZ2O~c>Kkd`r6X}s??ma<^*L2Tro^%7pC3cmzGm8_d5|xEY zlp>BlrHD0-ow#VjM|8iyMW2XX;f0|fjE>ri8h3Yli%x5ZlFhuuXfEhJWas1y_~ExqH-pFe~sCrXowPJCO;er_STV_224^&|;S zXkG{|(#=SOC9DlJ63(NCD1mDtW+GG|2N&Bi;j;uF=Pw2lAXBFqJ13%*V4=X&!j66O z3j(+N0h?P~s33lAKnhMctYlA9KFBX0+=Xx^3rS86vLq3lpH)htNi(c149Z`yA43tt zT6-Y)o&6-P8y7hv00K%d5f<)_ggzwrM~>BwAgMbEOapar7HFVxBo%ZCHO0x1KJrSj zeO1i-cSgU|~+IOswE z@&tbxw(5r=N_pW(z%Z~pHn1Jn*NCb>YWgO&G?}_yy7N45fIWb931lc7Rik8e7qPjW zP#~EjsPd*O1UetFAtXH3qe75G82;|jt7H)C-iby7(qXHh#_=Q3y68*DRzA1|8j>`e z`4h0XL@}X<*nD{WI1B`~KLLHmB^YrC3$Y`>ddG2t#|REj@g z*g}^JRvbMuvPJQ`Q;bkGCiYdZ^kYwL4D`TDu?;7G0+$~J)iH>yNGcJm05yd>T`17j z{sD0i>3&zjMg0zA6T=y?ER9nUF%c8qiml)WqC4&`Mze!`J->28mymQgea`jnYjeOs zus9=0J-p_^4O^T;@us;?Fdm|RAPu}&U>G+I`V9x+91B7cwakObmLg;E`L_T&LGL`h zm_G3S6z)@5Y9*!CH8C7q-U_Cy((PjmbQgjt;|x7oZ>m3*G~L*X02tQr96g3+GD#G+ z#jZqAft^%)gc_JRjaF|A+fE`_koAD@_N+KrCDj|{Z!ryekk2rV9`=a!l<3mZxMs7B zAlBaod0u`_6k}RpP#FpO!_6eEN1q|DujHcJJSRBe5v<5>>FS{s*XV@=YFSr=#t4Teg5S#Guqy-GiW_SQzIJgVpzd$^oAVqtX+idE0VWmP~SGe<@8< z!~WIEcE(8+}hqTEQuy=-w6NVCaW_0{9&`#I&Qj0kSkAb(ie^y%s7e`O%?NTD77{uNLd9ssWU! zfXFxuca7j-zDw+|w;xj_h%j9tT|k_3+yqRRP>@h&A;Il~w+)FTaBRZe3j%bq{#*X- zN>01TNerT+Vt4AXP`dD42_yXs>LHq;66l(FZm{8;B6vk4yJN3mXhnpuw=(Uafw_>d zwclFRE(?{(5z+&~Qn&7~DPM3XHr=sFo&r*DZ!ba+RCSBUpec6e{Vd84Tma=@qIOJR zL=g}nteYIp!H*aQ)a_X^H$KNzGSptujetK8p;G3~sSfKgdP48W%#^{_-~o5T1hjtC zJ)^z>-lwE&-=C@E3Y`qhr9=Zv>D7~qx4Gv0e=ytBG@I=&~b^->{=Eo z)S>4Wz4|xby?bIeF_V^6wH-lQ1qTncuvHcejBc*zlUm28pYL z(`5gVwte#I-$M`!JlkT*98l$pS57&oX2DLSqXK|r+gZLXNaP%-!d71T?7B7ox5P># zj`lA{Yy27xg1xX?kcXpeaE66fzY8_GLC_xb1Lb^$Wpex~@yB+{V#}+w0xZ!i8YzouYDr~XgR`5299@TUgOQxH?Ju1)UK(aZ zm+u?lv*|4yjANcNW$@nVU?0f@cCwd?LbzE;Pb z6P!F)kCGnFLQUXBp+udLXIx`H&y;dMl+6Q)W3?qQa1?AKV_Ga_Bj-!&=DqQ@E6GV0 zQJ`vKPZ!FJ)#|t%8@QF;6D@o97WZh4Yp_rLB9NlUY*?Nc~n@aK);$PQf+O z|MR6hwh9gq$2x9CcDNo|4wz`?$fJ#1@MUTnHLuAX@oYDTN==hiCgjL09oa1ne?H+D^-_V*!2hzpJeCKA>B?=m#bcS$_qScohqUE(sz7FTn8Oo%Zp27(?5jV5~2c~hqgE5qRL&X}fy;tW|eIt%odfZ)rRGuK{}sm1{8pAthN>i21` zY!Pc#udr_C9*5{Ujyn!V|FlaB9yHK*+B<)?zDSl`SMK~l z%IR2~yHDImqc*sUV|`I#lAKk$^S(?Z`wS|YP-RMW~ z>%nRs92(qN3l_&ihuOK5*C0@5&P=_rXp#e)+v{iMr)6dh$BX~D$J-3i16vJJr)5ux znv8Np)|!AY!bIFsAQ@a2zYwr$9@bkY_rBSvA#Ov7Y;+@b%F`-U2i)pY+;g z+UdRrcxFao6E*nGyx0Y`IPZ1j8Eqf5r62k%ThyH?Ush6*6U9!jgxvCh2iTm+YG`r{ zonjiLp7U*p9Hd6GH}c=$&due^12m#EX*xA7>jnJG=(2vBkB7|jELa<4tA782%TBbm z(YjBiI^W?HK3edd(5$LE)@9qLTG-2_%=_q zw&cXwAlkL{I| zw?u~_Otzk6ljF&uCE+tZy_B3?u0@#DLBg;*O4jCFa~Q!E0dwc}r@trmjHyq1)Ew%p zPmyeC85V+Z9_-F3BQjC_8{*Lu=1X>|eqq&Q%f5ID)y?r|R;zf?_g0GcD3{}Si%V0~ zrKL7noqHR`s?qJ0mPSf;+p*zeoaH*|Lo6$&ub&7_LH?uvL=p3U>I}}x`FBIre<)mB z;&tp+1d)R`-)S3>B=@?nU-U?TVfH2EG-Tlxa~it@#pG>`3lCtQ9lyQoN!X}Se?)V! zWYqCw`FK&UC7MU?g*;}oD{n@XlDNIAx=vU(T9nlgbDf2Ohn1`dRAbGnLm*gpOmMW6 zhw{)(n7H6T$dy)!MLSpShxWZ8r4t=By^?+=UT&^s>ne?G_*gUa>=$k;B4N?JRfQab zzJ4=ke2!GrZ@Te+e#~%s?^O?XSxu2_-(9z6vSaovEl}jJJ2TJV_U#hYMc}B-R{J$M zz>2l#n?sRYw4gQELG;^1aR;V<|jQ!JEAvvPvlpa{lcmc#gbDmMT_c$93 zNin-Q5Y{-|ei6Gudfr|^f&2Pet<@0lQdusUcq2QZEOCgVb8$!OBpLqw1YdU$O%blJ zN{BhJRG^?Xu+bCwu$zKq?=?vn5mv~*08on_oP(aA2|JDTi{YnGYynku!V_RjmXRfZ zxrG`{5&i{HT8MTEv>v2FXeb6CQV(WB*Nk&2o@)xz1@hRiWcax*hB|2ddAnHX7_8M$Z~nJ5_B`> zm;a@slQV#Y?N4}~f3+3B#L4(K572*%w{xvk+g))~pGS?mUy;Fm9r}I%KfWllpJV;B zlfc^PC;uc)Tq6@@K#9TIqgScaNZft|s+a$IpWob>jGBwaB3D0!1-4lh4sq(%lhk;z zWr9f$%P<>kcm8#Vp(G4-sYt)+9PTCWI$O z5%IU+Krz#wGhX$CR$wfQJ2lMan$!lWjAaF4fm+7Xieud6Lzbpsu;Zy{h`U)_{o6tY z@?O88R3^Hd%HcW$p#|U+2v!IudhD>8S6;WFk}|%_6nQWi+hkU___XN(?ExNY6Qd{I zvGUAG_-37l@z!@Q(DOGm<8bT;BCrV3^!c5D>)Nyho6i;KU2GmL%y?y79k+}go{ju7PQ@o$@S5=GRa7gvtZb{ueU6xQow z=Bt&wCk(@6Rpp_Gsnzd(ku@j^<{zPU8lUU2QKm6d6ujEL@dYZ{N*x=}e|a<93(G6m zNP2R(FkhBprmUn6oE-h8FZ(^OPevzTFAAKXGyqhdJ}fQn;bV%wgeUYW z)S^9@Rcjp!(J(t047Ta8m7T`VC`@jj)KMD6XboLrbK6>6LZ;^Dbs0pFl_MQSNc-Ac zRbo_2wU!HEJ=15H6i?a!Q-xlb>3BD{dTc5pvM${w8`bB;7s_jY?O>I;818v5`az!W(? z8?5Lf5ul&l4Ypa{aDF-Z$T;wO#r(PsWT#*mr8R96)a=(|L+(!F#ov12;r6OS9vmE4 z&mpi2&q;DtwL*c%NzwJ82`_hkM@pc!#WrXaaZ8NQ5ZZJOi{oj@CB|u7|MV+WJ>GAL%S{MPvfJQ!N%G@_TGXs+~llr{#>W|W^J#V@V(Yb z|NPK4*Y3BBxzcYN#b^+1dCBTB`gmmVSPtw*1aYj9%XCuYFDwN{ZZ4bL@@%uBlag(X z+=lFB3Yag7mK--LiIWgxKtZ1>xY*Y$#xx#N4edcev7dE3+WI#qno?ZEpa^J&RJjHC zLfA+Q4z26IB{>6KAl%rI*pj}z7+IgUN`>;V_P<6(#74zlQSrMr{DIIn?rg|~Es(RGiG0kJk=NK(N!^0j)-mk)^_s;3 zY1fjan%!VvZAj?*pp6D9n-cDc8beN+6zAnn0IYB}6&fX9;!2JM;?sMvtkUD3^te

Yl)to`2*id*9n=;OLyBI3>#5xHL3<`941n4>*t`UqIiR+4jcQlJTE`a&J4G?ckg7G|Lvl$Ii|iT?s#8f# zzxc!G`pNtp04>acd=a6UdJvP*zbv{Yb<~&<(lVU^JyX-f8UrM(tg+I0V?@U;QN~6C z=VShJZs<-Gn|mo?hx*XfuiB(rdnTC|b}JXvH0`3$j^6P{il}i@-c`w6(+)@||Hr)w zhf}Qw%QuEnZ;=BgFb@&@YXK_|I_r*UmZ2Sx~$5-#aNr! zD)wv?O1PJNp=@TQpP`UW!yje+CVSR{qLRePWxF*?>tJ-^&MREsPwdqBdyw!m|Yb3h~ZA}^URO!kFp^BAb$Xj)sxCmS^vH1RBz&B z;4B!!?o|h=q7ySFWeDy*RG?~UhIH%VtjK$IA3R0R=z2@m9=?s7c4EjqVKCW(Ka2V- zJ`^!KLC5ap#wXS$0t6}^|2Zsjr1$m6o5Car5@snB8g%+J{^}*r FKLMHgBlZ9Q literal 0 HcmV?d00001 diff --git a/2nd/06_Programmation/2B_variables.tex b/2nd/06_Programmation/2B_variables.tex new file mode 100644 index 0000000..685adf1 --- /dev/null +++ b/2nd/06_Programmation/2B_variables.tex @@ -0,0 +1,60 @@ +\documentclass[a4paper,10pt]{article} +\usepackage{myXsim} + +\author{Benjamin Bertrand} +\title{Programmation - Cours} +\date{Février 2022} + +\pagestyle{empty} + +\begin{document} + +\maketitle +\setcounter{section}{1} + +\section{Types de variables} + +Vous devez connaître trois types de variables + +\begin{multicols}{3} + Les entiers + + \begin{lstlisting} +a = 2\end{lstlisting} + + Les flottants + + \begin{lstlisting} +a = 2.2\end{lstlisting} + + Les chaines de caractères + + \begin{lstlisting} +a = "2"\end{lstlisting} +\end{multicols} + +\bigskip + +Le symbole \lstinline[ columns=fixed ]{=} affecte une valeur à une variable. + +\bigskip + +Quand c'est possible, des fonctions python permettent de transformer un type de variable en un autre. + +\begin{itemize} + \item Transformer en entier: \lstinline[columns=fixed]{int(...)} + \item Transformer en flottant \lstinline[columns=fixed]{float(...)} + \item Transformer en chaine de caractères \lstinline[columns=fixed]{str(...)} +\end{itemize} + +\bigskip + +Deux fonctions pour interagir avec l'utilisateur du programme: +\begin{itemize} + \item \lstinline[ columns=fixed ]{print(...)}: affiche à l'écran ce qui lui est transmis dans les parenthèses. + \item \lstinline[columns=fixed]{input(...)}: affiche à l'écran ce qui lui est transmis dans les parenthèses, attend un réponse de l'utilisateur et retourne la réponse sous forme d'une chaine de caractères. +\end{itemize} + + + +\end{document} diff --git a/2nd/06_Programmation/2E_variables.ipynb b/2nd/06_Programmation/2E_variables.ipynb new file mode 100644 index 0000000..5c6e1e4 --- /dev/null +++ b/2nd/06_Programmation/2E_variables.ipynb @@ -0,0 +1 @@ +{"cells":[{"metadata":{},"cell_type":"markdown","source":"# Étape 2: Variables, affectation et type"},{"metadata":{},"cell_type":"markdown","source":"## Interagir avec l'utilisateur: input\n\nPour demander une information à l'utilisateur du programme, on peut utiliser la commande `input`.\n\nDans l'exemple suivant, la réponse de l'utilisateur est stocké dans la variable `reponse` pour être réutilisé à la ligne suivante."},{"metadata":{"trusted":true},"cell_type":"code","source":"reponse = input(\"Dis moi quelque chose: \")\nprint(\"Oh! Quelle chance, tu m'as dis \", reponse)","execution_count":1,"outputs":[{"output_type":"stream","name":"stdout","text":"Dis moi quelque chose: 23 éé\nOh! Quelle chance, tu m'as dis 23 éé\n"}]},{"metadata":{},"cell_type":"markdown","source":"1. Ecrire un programme qui demande le nom du l'utilisateur ou l'utilisatrice puis qui le ou la salue en réutilisant la réponse donnée."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. On veut écrire un programme qui demande la ville de naissance puis le nom de famille et qui écrit une phrase du type \"M. ou Mme .... vous êtes né.e à ... \" "},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"3. Un vendeur vend des tomates à 2€ le kg. Ecrire un programme qui demande la quantité de tomates souhaitée (en kg) et qui revoie le prix. *(essayez mais dans l'état actuel de vos connaissances, vous devriez avoir un comportement bizarre.)*"},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Type de variables\n\nLe problème que vous avez obtenu est un problème de types. La quantité, pour vous, est un nombre (entier ou à virgule) tandis que pour l'ordinateur c'est une chaine de caractères.\n\nIl est possible de transformer un type en un autre."},{"metadata":{"trusted":false},"cell_type":"code","source":"entier = 23\nvirgule = 2.3\nchaine = \"23\"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Pour transformer en entier (integer en anglais) on utilise `int()`"},{"metadata":{"trusted":false},"cell_type":"code","source":"int(entier)","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"int(virgule)","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"int(chaine)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Pour transformer en un nombre à virgule ou flottant (float en anglais) on utilise `float()`.\n\nTester la fonction `float()` sur les variables (comme au dessus)."},{"metadata":{"trusted":false},"cell_type":"code","source":"float(entier)","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Pour transformer en une chaine de caractères (string en anglais) on utilise `str()`.\n\nTester la fonction `str()` sur les variables."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"3bis. Reprendre l'exercice du vendeur de tomates et corrigez le pour avoir le bon prix."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"

\n À partir de là vous pouvez continuer à explorer les types de variables ou alors allez à la fin faire les exercices.\n

"},{"metadata":{},"cell_type":"markdown","source":"### Identifier les types de variables\n\nPour nous (humain) les trois variables qui suivent sont itdentiques"},{"metadata":{"trusted":false},"cell_type":"code","source":"a = 1\na","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"b = 1.0\nb","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"c = \"1\"\nc","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Mais pour Python ce sont trois choses très différentes. Le premier est un **entier**, le deuxième est un **flottant** (nombre à virgule) et le dernier est une **chaine de caractères**."},{"metadata":{},"cell_type":"markdown","source":"4. Trier les variables suivantes en fonction de leur type"},{"metadata":{"trusted":false},"cell_type":"code","source":"a = 3\nb = 4.5\nc = \"coucou\"\nd = \"6\"\ne = 8\nf = 5.0\ng = \"09\"\nh = \"0.4\"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"raw","source":"Les entiers:\nLes flottants:\nLes chaines de caractères:"},{"metadata":{},"cell_type":"markdown","source":"## Exercices\n\nDans les éxercices suivants vous devrez coder un programme qui fait ce qu'il est décrit. Vous pouvez les faire dans l'ordre que vous souhaitez."},{"metadata":{"trusted":true},"cell_type":"markdown","source":"## Calculateur de TVA\n\nÉcrire un programme qui\n\n demande le prix HT d'un objet\n calcule le prix TTC avec une TVA de 20%\n affiche le prix TTC"},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Variation d'une grandeur\n\nÉcrire un programme qui\n\n demande la valeur initiale\n demande le taux d'évolution\n affiche la valeur finale"},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Taux d'évolution\n\nÉcrire un programme qui\n\n demande la valeur initiale\n demande la valeur finale\n affiche le taux d'évolution\n"},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.10.2"}},"nbformat":4,"nbformat_minor":2} diff --git a/2nd/06_Programmation/3B_conditions.pdf b/2nd/06_Programmation/3B_conditions.pdf new file mode 100644 index 0000000000000000000000000000000000000000..59f6f3004da60bb6ef78354ff5f899cbfb999418 GIT binary patch literal 19809 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 literal 0 HcmV?d00001 diff --git a/2nd/06_Programmation/3B_conditions.tex b/2nd/06_Programmation/3B_conditions.tex new file mode 100644 index 0000000..82a42cc --- /dev/null +++ b/2nd/06_Programmation/3B_conditions.tex @@ -0,0 +1,39 @@ +\documentclass[a4paper,10pt]{article} +\usepackage{myXsim} + +\author{Benjamin Bertrand} +\title{Programmation - Cours} +\date{Février 2022} + +\pagestyle{empty} + +\begin{document} + +\maketitle +\setcounter{section}{2} + +\section{Conditions \lstinline{if/elif/else}} + +Quand on veut gérer différent cas de figure, on utilise les mots clés \lstinline{if/elif/else}. + +\begin{center} + \begin{minipage}{0.8\linewidth} + \begin{lstlisting} +age = str(input{Quel age as tu?}) +if age < 2: # si + print("Tu es un bébé") # alors +elif age < 18: #sinon si + print("Tu n'es pas majeur") # alors + print("Tu peux passer le permis") +elif age < 50: #sinon si + print("Tu as moins de la moitier d'un siècle") #alors +else: #sinon + print("Plus d'un demi siècle!") +print("J'ai plus rien à dire")\end{lstlisting} + \end{minipage} +\end{center} + +\paragraph{Remarque:} Il faut faire attention à l'indentation. C'est elle qui détermine où s'arrête le alors. + + +\end{document} diff --git a/2nd/06_Programmation/3E_conditions.ipynb b/2nd/06_Programmation/3E_conditions.ipynb new file mode 100644 index 0000000..80c4779 --- /dev/null +++ b/2nd/06_Programmation/3E_conditions.ipynb @@ -0,0 +1 @@ +{"cells":[{"metadata":{},"cell_type":"markdown","source":"# Conditions\n\nQuand on veut gérer des situations différentes, on utiliser une structure `if`.\n\nTester le programme ci-dessous avec différentes valeurs de `a` et `b`. Que faut-il mettre pour avoir les messages suivant?\n\n- a est plus petit que 10\n- a est égal à b\n- J'ai rien à dire"},{"metadata":{"trusted":true},"cell_type":"code","source":"a = int(input(\"Choisir un nombre (a): \"))\nb = int(input(\"Choisir un autre nombre(b): \"))\n\nif a < 10: # Si\n print(\"a est plus petit que 10\")\nelif a == b: # Sinon si\n print(\"a est égal à b\")\nelse: # Sinon\n print(\"J'ai rien à dire\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Exercices"},{"metadata":{},"cell_type":"markdown","source":"1. Un musée accorde des tarifs réduits aux groupes contenant au minimum 6 personnes de plus de 18 ans. Un informaticien du musée veut écrire un programme Python pour les clients qui achètent des billets en ligne. Ce programme doit demander au client le nombre d’adultes de plus de 18 ans du groupe puis afficher, suivant la réponse du client, l’une des deux phrases suivantes :\n\n - \"Vous avez droit au tarif Groupe !\"\n - \"Vous n’avez pas droit au tarif Groupe !\""},{"metadata":{},"cell_type":"markdown","source":"L’informaticien a commencé à écrire le programme ci-dessous. Complétez-le :"},{"metadata":{"trusted":true},"cell_type":"code","source":"nombre_adulte = int(input(\"Combien ...\"))\n\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. À l'achat d'une voiture neuve, l'état applique un malus écologique. C'est une taxe qui dépend de la quantité de CO2 rejeté par le véhicule. Voici quelques montants de cette taxe\n\n| Emission de C02 (g/km) | Montant du malus 2022 |\n|------------------------|-----------------------|\n| Moins de 127 | 0 |\n| De 128 à 151 | 1074 |\n| De 152 à 200 | 18 188 |\n| De 201 à 224 | 36 447 |\n| Plus de 225 | 40 000 |\n\nÉcrire un programme qui demande l'emission du véhicule et qui affiche le montant du malus."},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"3. **Questions flashs et correction automatique**\n\nPréparer une série de 4 questions flashs simples où la réponse est un nombre ou un mot. Écrire un programme qui demande une réponse aux questions flashs et qui dit si oui ou non la réponse est juste."},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Comparaison et logique"},{"metadata":{},"cell_type":"markdown","source":"En anglais, `True` signifie `vrai` et `False` signifie `faux`.\n\nQuelques opérateurs pour faire des comparaison entre nombres"},{"metadata":{"trusted":true},"cell_type":"code","source":"print(2 == 2)\nprint(2 == 3)\nprint(2 != 2)\nprint(10 != 5)\nprint(4 < 5)\nprint(4 <= 4)\nprint(34 > 2)\nprint(34 > 50)\nprint(5 >= 10)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"4.Faire la liste des opérateurs et écrire une phrase pour décrire ce qu'ils signifie."},{"metadata":{},"cell_type":"raw","source":""},{"metadata":{},"cell_type":"markdown","source":"Pour combiner plusieur condition, on peut utiliser les mots clés `not` (pas), `and` (et) et `or` (ou)"},{"metadata":{"trusted":true},"cell_type":"code","source":"print(2 == 2 and 4 == 4)\nprint(2 == 2 and 3 == 4)\nprint(2 == 3 and 3 == 4)\nprint(\"---------------\")\nprint(2 == 2 or 4 == 4)\nprint(2 == 2 or 3 == 4)\nprint(2 == 3 or 3 == 4)\nprint(\"---------------\")\nprint(not 2 == 2)\nprint(not 2 == 2)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Exercices"},{"metadata":{},"cell_type":"markdown","source":"5. Programmer une IA au jeu Qui-est-ce?\n\nVoici 4 visages.\n\n![qui-est-ce.png](attachment:qui-est-ce.png)\n\nEcrire un programme qui demande de choisir un personnage, pose 2 questions et qui arrive à déterminer le personnage choisis.\n","attachments":{"qui-est-ce.png":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAAvwAAAEHCAIAAABdhwWfAAAgAElEQVR4nOyde1xTV7r3V+53SAj3ayIWbBWJtVoFKyCt1jtoa6tTFObMdERti1M99hTPGTynemprrZ5TKzPnfc+A+NqZzoziWNvqFAvWW7G2QbQFqjYCIqhIQsKdkPePpelmJ3tnJ9k7N9b3M5/5lGRn7yWsPOv3XNazWBaLBSAQCAQCgUAEOmxvDwCBQCAQCATCEyDRg0AgEAgEYkyARA8CgUAgEIgxARI9CAQCgUAgxgRI9CAQCAQCgRgTINGDQCAQCARiTIBEDwKBQCAQiDEBEj0IBAKBQCDGBEj0IBAIBAKBGBMg0YNAIBAIBGJsYHHE6dOnvT1GhKdhsVgOJwZ1eDyet/9BCE/z1ltv0TV/Xn75ZW//axCeRigU0jV/LBYLi8Xy9j8I4Wn0er3dyeA40tPT0+OB8SF8CgutJ7INDw/TeDeEX6DX6+m61f379+m6FcJfGBwcpPFu9Bo0hF8wNDRk93WU3kIgEAgEAjEmQKIHgUAgEAjEmACJHgQCgUAgEGMCrrcH4Cs8KhbD/wjl8cL4fADA3cHBe0NDAICb/f29IyPeHBwCgQhoxGx2glAI/9tqgm729/eazQCZIASCPlwUPc8+++yECRPoHYqHERuNsvv3Zffvy7q6uBQqbYe5XKNCYQwJMYaE9MpkHhihxzh69OhPP/3kySdGRka++OKLnnwigjmam5sPHz7s4Ye+8MILUVFRHn4ovUDjI7t/X2w0UjFBA0KhMSSkW6EwhYQMiEQeGKHHOHDggIfL1ZOTk+fPn+/JJyKY48qVK1988QXFi10UPXl5eatWrXLts96l59at+g8/vFFZ6ewHucPDirt3FXfvAgB4MlnEtGnJeXkR06czMEZPc+3aNQ+Lnvj4+Pfff9+TT0QwxxdffOF50VNUVDRjxgwPP5QWOmprfzp61AUTJOjvF7S1hba1AQAk0dER06enrFsniYlhYIye5uTJkx4WPVOmTEEmKGD4n//5H8ZFjz/SUVvbWFHReuqU+7caMhpbT51qPXUqfNq0lHXrAkP6IBAIRmk9darhwIE7Fy+6f6uetrYblZU3Kitj58wJGO8LgfAAY0L0DHZ3XygupkXu4Lhz8WJVQYFiwoQZ27cr/Dzfh0AgGKLn1q3Tr77a1dBA+52t3tfUN95AJgiBcEjg797qamj4bPlyJhQP7hGNFRXMPQKBQPgprVVVny5fzoTisXLn4sUv8vNvHDnC3CMQiMAgwEVPY0XFZ8uX97S1eeBZl95++/Qrrwx2d3vgWQgEwi+49Pbbp199dchoZPpBQ0bjha1bL739NtMPQiD8mkAWPfX79nnYBLSeOlVVUIB0DwKBAABcKC72cAAYunnIBCEQRASs6Llx5Ej9hx96/rldDQ1I9yAQiEv/+Z8ubNFyn66GhgvFxZ5/LgLhFwSm6Omorb2wdSvFiy0AWAAA2BPpLBYw+oA6/AWkIKODQIxxWquqGg8epHjxA/Pi0MJQNkGtp04hE4RA2CUwRc+3O3c6vghaGYuFBQALAMBi/fwWizXqR+sFFgvF43pbT51CRYUIxNhksLv7PAXNYXWlHpiX0TbHDvACKvIIgBuVlR21tY7HikCMMQJQ9DQcOOBgowQ0GdDKODQ0WFgswHr4AUd259LOnSjJhUCMQer37SOvXIa2A+9rUeSh1XIofFCwB4GwJQBFj4cqBx1ZqyGjEW1iRyDGGoPd3Q4SWxaL80rHDizgwPXqaWtD8WYEAkegiZ6uhgaSDeoPLIQL3hUJxHbHK2WMCATCi7RWVTm4gkb7A3PuJINhsj8ZAuGPBJroIfNsLBYW5UpAWuhpa2O0IxkCgfA1yHQGE/aHVEK1njqFkuwIBJZAEz1kIsPZCh6KkBsdh24fAoEIIByYIIYgllPI70IgsASa6BkymbzwVM8GkBAIhM9CmF5n1EoQyykkehAILIEmeoi+4cyqEmRxEAgEAD6YS/LACRgIhB8RaKKHCA9X81iRREd75bkIBMLz8IOCvD0EBAJBRqCJnvAnnvD2EEYhiYnx9hAQCITn4Eml3h7CKMKnTfP2EBAIHyLQRA+hp8VcCSEpigkTvPJcBALhFYi+8hYmTRBJHFuK/C4EAkOgiR7viAzi3BkSPQjEmIIouMuk5CHL3aNgMwKBJdBED0kNDYNFPcQ+HMrxIxBjCrLICmOVhUQGyNfS/QiE1wko0dPV0NDV2Ej0rsOu7a5BckeeTHb6lVcaKyrQHi4EYixw5+JFso7wHk+ydzU2XiguRiYIgbDC9fYA3KXn1q3WU6c6ams7Ll50vDmTAaNDcscho7H11Clrh9bwadMipk+PmDYNlRYiEAFDV0PDnYsXW6qq7ly8SH7lA7+LditEfMMho9F6GA5PJouYNi1i+vTwadNQ2h0xZvFX0QO1zo3KSqc8GAvcu06j0XHmbncuXrxz8WI9AACA2DlzkPVBIPyXroaGG5WVrVVVJKEdxrFYLCyqBgjrg1kFUOycOajoBzGm8D/R01FbW//hhw6dKruwAN3BHlfvZrU+kujo2OxsaH3oHBgCgWAGd0zQgyNC6bNCrt3IKoAuvf02NEHjcnKQA4YYC/iT6HHL1jyEtmCPMz4WCT1tbY0VFY0VFZLo6HG5uckvvYRqnxEI34QWE0QndIgnZIIQYwr/ED002hoagz30ZuZ72trq9+1rOHBgwurVyO4gED4FnXKH7mAPXUATdOPIkZT168fl5Hh7OAgEI/j67q3B7u4LxcVVBQW0eVd0beDC2iz6NoUNGY31+/Z9tny5tfwQgUB4kcHu7tOvvEKbCWJo1zp9t+1pa7tQXHz0mWeQCUIEJD4teroaGqoKCtz97uHMARMOFt0CyGp3Ompr3b8bAoFwja6Ghs+WL7duwHQRC8YoQFvB6AYu+kzQF/n5aK87IsDw3fTWjSNHLu3c6eIRwbDgBsaQPRxGho/DDsBVetraqgoKZrz11rjcXNqGh6AVnU538+ZNAIBer9dqtdYXdTod/G+NRiOXy63XZ2ZmAgBSU1OxLyJ8k8aKiktvv+3ih7E1f3QU/zkBTgC58fA7Fy9+kZ8/+7/+K2L6dBoGhmAArVZrMBjAaBOk1Wr1ej38b2hzICqVSqVSAQAyMjI8PE7fwUdFz6W3326sqHD2UxZrnQ20Ml7MmuMG4EbV84WtW3tu305Zt462sSHcoKamRqfTabVarVZbXV3t8Hqia+RyuUaj0Wg0KpVKo9EgGeRTwKy60wEeqDAe+lo+UbPjtg82ZDQi18unqKmp0Wq10Aq5Y4KgAMrMzIT/MXZkkM+JnsHu7qqCAudiqg/DuT5iZ+wAR2a1icA5QVa/b1/PrVsztm9naHQIEvR6/dGjR6urq6HQofG21dXVWHuk0WgyMzNzcnLGjvXxTboaGk6/8orT3XesksIHrRDWB3NJAF3YurWrsXHqG28wNEAECdAEVVZWQqFD121hQBpngnJycpYuXarRaOh6ig/iW6LHWcVjYaL1DnPY2EQL5S1gsA1j9h//iHZ1eQadTge1TqWTJWVsNovH5XJ5XB6XMzJiGRoaHhwaMptHHH4Qiqo9e/YAAHJycjIzMzMyMgLb+vggXQ0NX+TnU82qY6WD/1ghrM2kboIaKyqGjEbkenkMaILKysqcFTocNhvaHy6XOzJiHhwaHhocNo9QNUElJSVyuRyaoKVLlwZeBNqHRI8TiudhyMR3QzvUwMgfx45XV0PD6VdffbqsjNkxjW20Wm1NTQ11Q8PlcPh8nkDA4/N5PB6Xx+Ny2HY2B4yMWAYHh4aGh4eGhgcHhwaHhgcHh0huW1lZCcWWRqMpKioKSNPjgziheJyP1/omD7UPpcAP3FOCdA+jaLXa8vJyGNehcj2Py+HzeXw+TyDg83hcHpfDtm+CRgYGh4aGfjZBQ0PDRPfU6/VlZWVlZWUgEE2Qr4geqorHH10rilCwO3cuXrxQXIyMDhOUl5eXlZU5zJGz2SyhUCAU8EVCgUDAs2tfCD7FFwI+9sX+/oH+gaHBwaGBgcEBAg2k1Wrz8/MBAPn5+TDyTOVxCBeAW9MdKx6vbI9gGph+pxD1uVFZKU9OnrB6tQcGNaaAOaySkhKHWofDYYuEAqGALxDyBXw+m01pKrLZbJFQIBIKsC9aHbC+voG+/gG7H4QmCMZ+XnvttQCIPfuK6Pl2504nFE+AWRzgxL/oRmVl7Jw5sdnZjA5n7KDX6/fu3VtWVkZia9hstlgsgCaDz+fR9WihUCDE2KD+/sG+/oH+/oG+/oGREfyuY+h4qVSq/Pz8NWvWwC0YCBqpKijw5ilaPgC0QQ6lz7c7d0ZMn47OrKALnU4HTZB1v5UtHA5bIhaJhAKhkM/j0bZqwxARkIiAAoyMWPoHBvr6Bnr7BgYGBnFXWmM/ARD48Yk+PfX79jluxuOTPUwZwVGbjfPFxYPd3Z4ZSwCj1WoLCgoUCgWRdyUQ8BRyWWx0mDohKjJcGRwkpVHx2CIU8hVyWVRkqDohOjYmXBkSLBYJcQlcnU5XUlKiVqsLCgooRr8RVLhQXEy1lDDQrRALAId9fi4gE0QH1dXVubm5arV6z549dhWPUMhXhgTFxYSrE6LDwxQymZhGxYODzWaJRUJlSDB8XGR4SJBMzOHgFQIM/KjV6o0bN5KoNF/G+6Kntaqq/sMPya4IlPQ5Vaw7vAgYMhovFBd7bDiBR3V1dVZW1pQpU8rsFUgJBLzQkGBVfFRcTIQyJFgoFHi8zQpLKOAr5LLoqNBxquioCKVUIsKNoaysDEkfumg4cMCB08VQG2VfxeF072poqN+3zxNDCVDKy8vVanVWVpbdfRIioSAsVK5OiI6NDlfIgwQCvu01jMLhsKVScXhYiDohOj42QhkSjMuL6fX6PXv2qNXqbdu2+Z308bLo6bl16zz5+j12AjxYHP2TW0+daq2q8sxYAgmtVpuVlZWVlWVbu8PjcUMUQfFxkXExEXK5jMvleGOAeFgslkQiioxQqhOiIsJCRKJRpqesrGzKlCn+aHd8h66Ghm937iS7YmyaIOBA6jUePIiaNbsA9Ljy8/Nt3RWruxUTHRYcJLWNsngFPp+nkMtiosPGqaIjwkOkEpG1ikiv18PAs3+ZIC//Ws8XF7vYc3nMc+ntt1GEmTo6na6goGDKlCk4ucNms4KDpLHR4QlxkSGKID5j0WM3YbPZMpk4JipMnRAVqgwWPEy0+and8RFgE0KyK8as4gGOQ84o3uwUOp3OrsfF4bAVcll8bIRPuVu2sNlsmVQcGaFUJ0RHRijFYiF83WqCysvLvTtCinhT9NTv2+fgDL+xbHEAAKTJ9Z62NheaVo9B9Hr9tm3b1Go1LpklEgmiIpTjVDFhoXKh0NMBZJfhcDjyYFlcbERcTHhwkASmvax2Z+/evd4eoD/hYP/EmLc/5Lqnq6Gh4cABTw7HT4Eel1qtxskdiVgYHRWqTohWhgQzWi9ILywWSyoRRUeGqhOilCHBsMxIr9fDWh9nG5t5Hq+Jnp5btxyU8oCxVMdDAMtiITE69R9+2HPrlifH43dUVlaq1eqSkhLsi0IhPyY6LCYqTCIReWlcNCAQ8MNCFeqE6LBQhdXuFBUVZWVloZAPFTpqax2U8ox5+/MAUhOE4s3k7N2717Z8UCIWxsWER0WGikVCL42LBjgcDoxRRYaHwNizTqfLzc318Rpnr4keB6U8CIijjiCXUTkhAXq9Pjc3Nzc3F/v1Ewr50VGhsdHhuLo8/4XNZgUHSeJjIyLCQ6D0qa6u9gt/y+s4TmwhgAPlN2Q0ongzETCfVVRUhDVB4odyx/PlyQzBYrGkUnFcbER0ZCi0q3v27LEtJPAdvCN6bhw5QpbYIg1vjEFIfhc/HT3aUVvruaH4CTDAg134eTxuVIQyNjrcr10rIlgslkwqToiLjAgP4XG5dgUfAkv9vn0kXXksAIV5MJAmuRoqKlC82RYY4MEu/AIBPzY6LDqA5A4OsVgYEx0WFank8bhQ8PlmyMcLomewu/sS+XaJwGt46h4Ok1yeHIyPo9frCwoKsOs9h8MOD1PEx0b4dTKLIjKpOD4uIixUzuGwofKj8YTCgMFBbt1iQdYHD7FBHjIaUbwZi16vxwV4oMcVFxMuDJQAMwkSsSguJiJEEcRisfbs2ZOVleVrJsgLogceXEf4Norx2EKqAu9cvIiCPRCtVotLnwcHSRLiIoNkEn8/po06LBYrOEiaEBepkMsMBj1RO6KxjINFesxMFecgtsw/HT2Kgj0Q6GlgAzwhiqAx4nFZYbNZIYogaHhhlxCfyrZ7WvQ49LE8OBZ/AwV7SIFNa6zdL7gcTkxUWFioguLxWAEGm81WhgTHx0WKxcKCgoKCggJvj8hX6Kit/enoUcK3kQkigfiXg4I9AICNGzdiY8x8HjcuJhzGPLw7MK/A5XJgiL2/rzc3N3fbtm3eHtEDPL0eOPaxxuT8oAQK9hCDW9dlMnF8XASuld8YhMflRkeGhiqDoSL0wfy653HgdCH7QwSpcR7jwR5YRbdnzx7rKwq5LD4uMlDLd6jD5/NiY8IVcllJSYmPVBl6VPQgH8tdULDHBphBt2ZwWCxWRHhIRFjI2Azw2EUeLIuLCb96pR6V+DjYQoEUj0NQsMcGaIKsGRwOhx0dFaoMCfbuqHwKZUhwdFTosWN/94USH48uDCix5S4o2DMauEfAmkHn83nxsREyqdirg/JFBAJ+XGyEeXhwypQpPpVf9zDIBDHH2Az2aLVarC8hEgriYyMCcouom4hFwvjYiKbGH7yuezwnejpqax34WMjNogKxaR5rDTNg2TLW3MRGhzF3CrG/w2azI8JDwsMUBQUFXne2vMKNI0dItqkj+0MJ8u3rY6xBM6zStaZspBJRTHQYh+Oj50h4HQ6HEx0VxmaNeFf3eE70kDU/RT4WdYhNc+upU2PH07I1N9FRoSil5ZAgmUQk5M6Z4/0gs+dBYR6muXH06Nhp0IwzQfJgWUR4iHeH5BeEKIL4XFZubo636ns8tEj03LpFVs2DcIoxn1bHmRuZVBwRHjI2t0i4gEQsFAt5Xg8ye5iO2loU5qENAhM0dho040yQMiQ4VBmMTBBFgoIk/b3GzMxMr+geD4kessUY7Zigj5/GgKdlq3jCwxTI3DiFSCSQSvj5+Wt8YTOFZ0BhHtogLUVoGAOix1bxKOQy7w7J75BKxXc6bnlF93hC9KAwD82QptUD29OCGyVQjMd9hAJ+V2dHRkbGWNA9jgsKEU5B3CN+yGi8ceSIh4fjSXCKJ0QRhBSPa0jEwrt3bmVmZnr4uZ4QPSRhHp8+48Y//b+GiopADfbgFI9QwA8PU3h3SH4Nn8/r6mz3VpDZk4zZhg5MQRrsCeDfNuzHY/2+SMTCEEWQd4fk14hFwrsdt/Lz8z35UMZFz2B3d+upU0TvsrwlLCwUHmzzrbbYPfvTK/8E4mDPkNHYWlXl4eF4ho0bN1rLUDgcdmSkEsV43EQg4N9pb83NzfX2QBik59YtsjCPl7BvTCh8xGJrvbxigogf2tPWFpDtM6DTZe35zuNxUeWy+4jFwuOfVBYVFXnsiYyLntaqKsKTthiq5sF8Gy2A4Mvp0mrJAsDOp1isUQ/C/j+jEP8LGg8eZPzpHqeoqAh7hlRkuJKLtobSgUQiulz3bQA37yHZR830t9QC5Yk9a2DfmJDCsv4P9923a4KYhsUieUxAJtmxTheLBaIilGi7KC3Ig2V//N//gz2wjFEY/5uRLcA0Kh6LxWJ1fzC3ZdH7FGJ+ftDD/3fBk3MOYtPW1dAQYJ5WZWXl3r17rT8GB0nRERM0EqIIWvubXwdqkusGcUEhnZFmrAmy3h/KE6+YIEAtnu3mEwkIvPYZJSUlWKdLGRLM5/O8N5xAIyxU/uorGzzzLGZFT1dDQ1dDA+Hb7nwlcSaGxWL5WKrD1pN7EJemyxCRelpkXZH8Db1ejz1Xi8floBbvtCOVCIqKXvX2KOjnxpEjTEWacSLH90yQbTybZhMEyGx4IJkgrVaLPS9TKOAHB0m9OJ7Ag8VimYxdmza97oFnMSt6HASWXTAR1m+sD5oYRzyISz8cNSYJ56INIvnnB1JL+IKCAmwQIlQpZ7P96y/vB7BYrKovTngswuwxSMI8LioeTETZ3yzQKBNEmPqniUDau451ugAAqEcGE3A47P9XUWYtmWIOBkXPYHc3yU516lNm1PcygE6rwCThWMBlDyzQPa3q6mpsuQmfx5VIRF4cTwAjFPB/WZDv7VHQCV0lzDgTFBgGyDbvZnGhJIh0R0Vg7F0vKyvDtvGUiIUoscUQEolozZrVTD+FQdHj1rkTmMBxYJgYh/wcBKKpGjEwPC1sHh0AgDaIMkp3d1dJSYm3R0EbbpUwY5Pn9AzH12FZS4KcMkGBvqMCW00IkAliEhaLpf3uW5zNpx0GRY8TDQmt3y7rfwSKO+UKmGpExyHogN67rtPpysvLrT9yOGwU5mEUmVSMM/F+DVkJM+7nh3FWbJkgQ6PyA7AF0Q4FEOmOCrKaTn+guroaG+YRCHgCAd+L4wl4ZDLGTRBTR1L33LpFON1x9YPYHz1oaHTmYfgf7RZzv6OLVawHu6PlLJac7bmd0tgQtAVuNrH9FRH/0m5UVsZmZzM2OsbBSX6pRDSWxbAH4HK5/X29lZWVOTk53h6Lu5A0y7CMFj0WjJPlsenVb7G0j5gBAP0AtFvMDq/3lgnCCyDoZWG/hiyWhfj31nDgwMwdOxgfJGPgTJBMIvbSQMYKIqHg8uXLOp1OpVIx9AimRA9ZYJnFAhaLnQ2WDAAtC5Q17SPmPmCB/+H+nVVsDgBAAdhyNjuSxZGzWJEMWyJKAmg0cOOoJCaG0YExx9HRnrpUiiwO44jFwsAQPS3EYU7W6MWbUaGjHzHrLRasCdLRYX+EAECDE8niiFgsFYsjZN4EEQkg8r3rg93d/CB/TQnhTZAMmSDGkUpEe/bs2bNnD0P3Z0r0kHVhBkwJHavE6bJY2i3m9hHHIRyXgZZLB8xg5OcXFSx2MIsVyeJEstkKwFZxmPr14gQQIDbcNyorU9avZ2gYjKLT6bCBZS6HIxKi3jxOkJ4yfnnGE7/94E9OfUoiFpaXl+/Zs0culzM0MM9AYoKYc7egCdJZzPqRkdtghBb/yv6DsCYIAzRBajY3mMWKYnEYlEG2AsgeMMk+zj9bfmu1Wuy+UZFQgBqiOsXSWZrHEmL+8/8dd+pTErHw6NGjfiZ6uhoaetramLizLTrzcLvFrBsxt1tGuiwjjj/AJF2WkS4L0AHzA0M0BCLZHAVgRbI5KhYnks0RMmBnye/ov6IHt30aVfM4RdHzz6x6egYAYHnGE3+r+Yb6BwUCPpfDqays9PCBOPRC1p6HVvotFt2Iud1i/mlkmFEviyIPTBBGbEWyOVGAHclmR7I4TLlhpGat8eBBPxU9uDblErHQWyPxOwQ87tbVi+dNnwQA+FLbcOHqdeqfFYmEN3S66upqhs4iZeQ7wOhORf2I+SeL+abZzKgjRRftI+Z2AH4YeVA/pGCxVSxOJJutYnMZj0UDAADoaWtrraryx8oebJgHACCRIItDiXCFbFfhCxMSouCPryzLPlv/Y/t9A/U7iESC8vJyvxY9ZGEet2kfMd+2mG+azTqL2euOlkPaR8zt1oD00AMNlMDhMBsHwtDV0OCnSXbkd7lGXHjIrnUr1FFh8MeteYteKCnt6R+g+HE2myUU8svKyvxJ9NBucaA79dPIcOPIsO9bGRK6YDhqBAAwAABQsTlqNpe5IBDET8uZsaKHzWKh3BYVMjTJ/7ZmsUz8s3UWC/m/y19SuNuJ/gVCIb+6uprRWkJGIT/k2DXaR8y6kWFohbweznEHqIG+GxkCDwuDoAliLhcPAGg4cGDqv/wLc/dniLq6Out/8/k8Ho/BX1HAMOfxR3+Xv0SE2eMWrggqWvHM9gOfUL+JUCA4Sn33t5PQ/1fsqK2lJbdlFTo6i9n3IzquoRsxWwPRjwXLCmdquJ3G+z+2DvcP0vgUPy1nxlocsViI9m055I1fLFg2e6rt61OTVblPPX7kq28p3kcoFAAAtFqtn4oeujo16EfMDQEhdIjox5qgITArPHT1k5PN7fdpN0E3jh71O9Gj1+uxBT0ot0WFf141/7mMJ2xfX5o+5R+1V2sbfqJ4H6GQ397RqdVqNRoNrQMEgAnR42Yj4AbzcGALHbssz5i6YVm25GEwo/vWXWPr3Xs/tnZda+3roqE0oaWqasJqxjtd0ohOpxtVQihCFoeMpNiI7S8vT4hQEl3w2nPPnK5r6uw2UbmbgM9jsVhardZP93C5E+aBvlaDecgvUlc0UrBgVuHSLOuP3bfu3v+xtfNaKy0CCHZn9q/KHlx6HZ1wTM4kdfS/rlliTWnZUrx60XP/tn9oeJjK3YQCPgDAb0SPCxan32L5YWSo0TxsrX0ZO8SGK/69IHfSuFFhmKCYsKCYsJgnHwMA9N3vvv9j670fW69dahCPuNimubGiwu9ED/ZHsRhZHEJWz0vbsMxB+lIs5G9e+ewbv/8rxXvy+Tw/PYfLtdwWDOr8MDJMy35y/+LRhKiSgqW45QqaIFXmFPBQAN1rarl19SeXG/O1njrlX6IH63QBAFB6nQiRgLcuZ86KrGnkwfgopXztkoz/PkwpCsvlcthsNkPncNEseroaGqhvmhjLhgYAwOWwf/HMzF8vns3nkv0VRCFBMU8+FvPkY/Jnpq7dVhpv4SRwOGoWx6kGZT1tbR21tRHTp7s9ai/A43J4pL+iMUtUSPD2l5dPUlNKXM55/NEZj4278P0NKhfz+VyDwYnaZ9/BqdwWjCv7e6Wgywj5vMKcrBfnTCdfrqwCiNWo27bnkIrFUbO5KifLEP0uyY6N9IhEApRet8uTj47bumZxBLWjOVY9M+P4hcs32u5SuZjP5zLkd9G8llDZt9U+Yv7OPOQwgaxjYkQAACAASURBVLVl1QJ1dGjlV999/nU9fQP0FSYkRP1uzZLEmHDqH0mIUC5f8NQfjtXAIkS4EYy6ALpRWelHoger8V3LbSXFR7798nPV3zV8duHyj7fu0DYyn+H5rGmvLntawHfiK7x19eLl/7pvYMhxPJXP4+HC+/4ClTBPg3m4wTz0w8gQeaXOrvUv8Lmco199V/XtD3QNz3eYPkG9dc3iyJBg6h+Zmqx6fPrETy9cvmAeBADAThzUBZD/ts9wLcwzK2X8b1fM+7z2yqcXLrfe7aJ9VN4lWCL87Yvz50+fRP0jHDa7JH/p6h3/h8rFfB6PIb+LZtFDYnGccqoK5s9anjEVAPD4Iwn/vPLZz7+ur/zqu6bWDjrH6iVkIuH6ZXPsFpw65FeLZv/9rBZuP4YbwbACaAKHR2J9/Ks1Klb0CIVOx9RjwxQfvPaSXCp6ae7Ml+bO/On23aNntJ/X1t/v7qFzlF4iKT7yjZULcClRKoQrgn61KGPfEcexELhRRa/X+1eLQpLcFsyh3zSbHWodyL+tWTJ7chIAYMZjib39g19cunrsXF3dtRZax+sdwuSy366Ymz31MRc++9pzT3/53Q99A0Pg4UYw6gLIj0WP8wU9E1XR//ny8wI+91eLZv9q0WztteYTtVc+vXAZ/ur8neUZT6xdmhns/B7+CQlROU9NqfzqO4dX8nhchvwuOkWP3Z6E2t4eHZdN0dBAlmdMLcz5uaROKhI+lzntucxpP9xsO3z60smLV/103rBZrNzZj6/PnSN1oyy3aMUzb5TiKzOwAghan+jhkUfFEj7mLED/bY3qrJsVLpd9sPElufTnL6Q6Kqzo+Wc2LMuu0Tb86VSt/y5dyXERz2dNW5ymcTnYvurpJ/9ac7Hjfjf5ZVwuBwCg1WoZapXBELa5rV6z+XJ/n47HdqpecMuq+YvSUq0/ioX8JelTlqRPablz/6Oq2uPntX5qgnhc7ktzZ/zTgll8Hs+1OyhkkpcXZez92xe4120FUOSgeYpEgr3Gv5Ls2BVX6OQho4nRYf9d9AtsFFYzPl4zPn7j8898XnvlT1VfX7tFKcXjg0xURf/rmiXjogkLlh2yITf7ZO3V3gEH1fHQBDEBnaIHm9u6ZDR+0939jdEokksVcieiC0vSp2xZtcDuW48mRBfnRW98ft6nF+o+OXf5+5seavpMC6nj47asWjDemXyWXeZMeXRqUsKlpptEF0Dr09llCLaAbz/7rKO29s7Fix21tUMm042jR/1O9HA4bKfaY8ilot9vXhOttBOf4HLY2VMfy5762LVbdw59ceGTc3W21/gssWGKwqVZz0yb6OZ9eFzO5pXzN+37M/llftpu3xrm4UmlVa2tl4zGb4zGiPAQGceJI5PW585Zbm/bLQAgLjzkn1c+uz436+iZ7z4+dbGtU2/3Mt8kQ5P82xVzo+x9NZziF3NnHv7q25Y794kugCao/V7nVNX0P7/zDrQ/d775BvhVkt1ayCwU8J3yMVSRoaWb1tj1bPk8HlTP3zbe/Ev1Rf9Kmyqk4lefe3rhzFTHl5ISJBGtXZq1++MT5JdB0cNEX2Y6RU/rqVOxc+bEzpkTm539i+AHqWKFwAk3fWpSwtbVi8ivEQv5MPBz617XZxfqP/u6nuTr5wuoo8LWzEtbMHMyXTfc9OKzK//99+TXcDkcnU6nmDBBMWEC3LfV1dDQWlXlRxkuiLM+1u71K2NCFeTXjI8J/7c1S15Z9vTnX1/+x6Xvr9y45cYAGScqJPjXizOwgQc3mT05acr4+O+uNZNcw+GwATMWh1G6fvhBvXRpXHb2PaVyxZQp8EWRM+nR+dMnrXk2nfwaiVCw6ukZq56eceHq9S+++f6LS987dFu9yyR19G+WZj356Di6bvj6C/OK/vsj8ms4HI7BYIiYPj1i+nSY1eqore1qaKBrDB7DqfS6RMjfvf4Fh3mfx5MTHk9O6Ljf/dnXl09cvHrdt4sOpSLhi9nT8+bOFDlpjYl4MXv6X6svNpMu3Mz5XXSKnvl/+5vtgiqg/GsKV8jeXvs89cfFhCpguvSqru34+ctffHNFb+qj/nEPMGNi4qqnn5zxWCK9t02MCV+Srvn7WbJ8J1y0sEABRO9IPAD1+QMA+F3+EuqVLgqZeOXTM1Y+PeOuvvtE7dWT31xtuHnbpTEyhSoytGDhU/OmTWTTvXPk9ZXPvvQffyC5gMVicfwt2DPY3b30iwdpl2sP932wWSwu5a1/SXERxasXU3/ijImJMyYmbvnFgvNXr/3jm+9P1zX6VNqLw2ZlPf5o3tyZjyZE03vntEnjNY/Ea38k081cLhtXkwEFEL0j8QDUTRCLBd5ZuyI2PITi9REhQfnzZ+XPn9V65/6nX9f/4+LVmx2drg6TERIilC9kT188U+PUhgkqvPrc05s+/JjkAmh/mNi1Tue/xFbx8HhcNpuqvX5v/YsuFEYBACaqoieqov955bNfXf7xRG39yYtXXbgJjfC43CXpqS/Mma6KDGXoES8vziQXPWw2GzDW3MmTULc4i9M0roVew+RBsN659c79kxevfvZ1vddNz1MpjyyZpcnQMCVSk2Ijnn7isS+++Z7kGg7lb66PYDeESd1NFwv4u9e/yHf+qAEelzM7NXl2avLA4PDpusYTF6+ermt09ib0IhHyl2dMXZE1PZzaXmIXeHX50798+39JLoAmKAAQ8KnWP/1mcea0R9UuPCI2POTlxRkvL85ovHn75Dffn/zmisOqO6Z5YoLqF0/PTE8Zz9D9Z6cmP5YQTVKjApWDr4seW6hPlzXPpiXHRbr5uKcmP/LU5Efe+MWCqks/HD9fp/V4verkxNils6bMefxRCcOdrMIVshezp/+pqpboAhjpwfXX8kcEAkpTKCRI8tsVc918Vmx4yC8XPvXLhU81tXacrL1y6tsfPLzRNCk2Yv6MlAUzUhUyJ2pQXGNdzpyqb74naXbJ5rD9tD8hFuqiuej5uW5KBAGf+8y0ic9Mm9jTP3Dq2x/+cfEqxa5INDJ9gnphWmr24xNcLlWmyCR1zFMpj3xV/yPRBYEhelgsFp/aKjY+JuyXC59y83HJCVHJCVGvLM++fL3l5MWrX37XcFdPQ0d+6kSFBM+fMXlxeqrDIgH32bAse937ZGcC2uYraIFZ0UNxusilol8ucHe6WJGKhEtnTVk6a4qhp+/LbxvOXG668MONQQq9SVwmIiRoafqUhTMnu18kSJ2C+bNIRI+/Wxy43HI4bIqZ3XU5WRL6+sQnxUYkxUZsWJZ9/dads1eunb38I3kFjJtMVEVnTnk0e+qjsWGMGxorsWGKRWmaY+cI44X+PoUgFE3QIzHhOU9NoeuhEqFgcZpmcZqmb2Dw/NXrp+uavqprMvYxeH5XclzEvOkp859MUQZLmXsKjsLcOSSih8P2y7IwHNT99k0r59P43MmJcZMT4za9+OwPN9vO1l+rqWtsbG6n8f44RALeM1MnLkib/PgjCcw9BccTE1SPJyV8S7wph81mM+G3+4ToyV/wFF0VUliCJaKcp6ZAW9bU2vFjS/u1W3d+uHm7saW9p4/qMfdExIYrUsbFPv5IguaReJIzj5hDIZOseTat/PNzdt+F2w0YauPtMSh6q7HhiiXptK1YWBJjwhNjwlfPS+vu7fu28eZVXVvDzdsNzW2GHncXMGWQNH3S+OmPqadNUCtkEscfYIBfL55NJnoCogUtxXTVbzA9MmhEJODPefzROY8/CgC4cuNW/Y2Whpu3f2hu17Xfc//mqsjQJ5ISNEnxUx6JD3NmhyxdjI8JJ0mSBkYLYx61WpYnJqgYkguPJkQ/mhD9q0Wz73ebvm1qvqq79YPudkPzbfdr56UioWZ8rOaRBM34uMmJcbSM1lnW58z5p3f+SPQuPAGQ9ocyLHooWBy5VLT8KVc69TkF9N2tP97p6r52605TS3vrna62+/rbnd237pJVkiuDpAkRyrgIRVy4Uh0VNkkd7a2FCsuqp2ce+qLW7hFugSF6KFqcfEfbbdwnSCzKnDIhc8qDIpu2Tv2Ntrs/3b57s/1+6537uo57JG0PhXxekEQYJBaGBsuS4yMnqmKS4yM9GRQkIjIkmKQinsViYQ+691N4FHTz+Jgw2IeQUSaNi7FW2fcPDjU2t+va77Xc6dTd7rzZ0emwjCwiJCg+XJkQHhIbETIuKuwxdXSQ2JUKSHr59cLZgS16KPpdv1owm+mRhARJn37isaefeNBS8mZH583b96633bnZcb/5TmdLRye5JyYR8uMilPHhIarI0NhwRWJ0xCOx7vZPcZ+UxNgnJqi+adDZfZchv8v7kZ4VWdNprwx3SLgiKFwRlDZpVJVWT/9AT9+Asbff1DfAYbPFQp5YKBAL+b5gXOyikImfy5j6UdXXtm/5u8WBjYCpiGaFTMJQmIeEaKU8WimflfII9sXu3r7e/sG+/sHewaGh4eEgsTBYIvZkusEF8ufPIhE9/l4TxuVyqGykyJvHuGjGIeTzUsfHpY4f5V739g/2DQz2Dgz29g/2DgzyuByJgC8WCsRCnsxXTZA6OixDk1yjtVO4DS2Q3/W3xEHFBCXHRz6e7LmsECQhQpkQoZytSca+qDf19Q0M9PYP9g0MDY+YxUKBWMCXCPkSIZ/pGi+X+dWC2USih6FVjEG1QbGjIo2pdDeRCAUSoYC5/Q5M8NLcGX+t/mbIjD/FDNp6/120NBrN0aNHqZwzunSWr8yfILHIZ/UxEbFhimenT/q89ortW/6um8HDwzTIkYqE859M8cBgHCIW8sVCvhcy5e7xTwueIhA9/m2CIFwKU+j5TPutLD2PXCrCdqL3Cx5PTkgZF1t/o9X2LRYL1NTU0P5EBmsVqZSgzkp5JDRYxtwYAp4wedDidMJ92n56ZqQVDgXdnOszotlP+dWi2RaLnV1cUPP4dYaUiglaONMnFI//MiEhym4rMpa/tTywi8MpJOTznnnC3T7pY5x/ItjGxJDfxaDoobJi+U6Yx38haiDr1546XGsdWpypyQm+UBzj18RHKO2ejhIAZWFUtry6dvQvAkvBglm2L7KA388fQGEKzZs+kYldOGOKtJTxcnst+vxP9DhcscLlslnM1w8GPFFKudCevmSxgMFg8Px4aAHaSocW58U5/tfg1QdZmm6ng6Vfi2aIQxP0eFKCOsr1oxMRkCmPxLMBPlgYAKKZSoXGquwZHhhJwJNM7HfRnq9gRPTAPK7DEsIXs58MjG2xXidCbj9F6NfpLRaLRb7uhitkzPUsHlPEhin6CJo4+PWixXYkml9Aopkmghhux+oVHLaqmjI+Xu3GeeMIK8/OmDxE0EuP9rIwRkQPXGvJVywWAAvpO4NzjPNEsqqnl8HWZ17BoSBe8CSaP/QQH6Hs0uPb3sNCH78WPeQmSCoSPDX5EZILENThcziDg3bOHWOiENVjOAx2LkAFYTQRLBV1Gez3nvYP0QMhnzEzJo73hVY3AYPetlu5BQC/DvY4sjiL7SVlEC4QHxna2zcwYK/dmV/vviGfQM9Om8TcSc5jjac0yV14E0RyxokfcPPmTXILxOdxn3likqeGE+AES8RGY4959DZk6Hf5R3oLQj5jns/ylW1+AcCkxLi+/oH+0YsWNDn+u2iRz5/pE9RxlE8zRjgkSCLqMphsX/dj0QwczKEV2Si3RSdGU+/w8M+LlnVHoJ8GC3U6HYtUNi9OSxVTPs4WQU7K+DiLBejtmSDaYVD02NsG+4BopTx9ElPHt45BgqUiAIDB3ozxU4sDgANHcdXTqH6QTlIS40ymXrN5xNsDoQeH037GY4mqyFCPjGVMMCkxDgDQbbTTl9x/TZCF1Aa9NHemx0YyRjB0m2zbZ9B+7DEjogfOcrvNPyAvzZsZAHtDfIf4CCUAwIhftPy4JqOmpoZk/sSHh6SlINFMP4bun3Uz/PX76UkUDk3QShTmoRUSv8t/g80kfvvMieM9cA75mCJ9ctLIiMVo6rW+wlB+lJGOzNDijIzY9xoFPO6imYT99BAuEP/QZzV0m0IedpSG31g/FT0AADPB/AEAPJc5zeXb1l9rOXu56dNzWgCAwdRXf70FABAsFackxgIA4iOUC9I16ZOTgqVilx/hj8xKTTp7ucnQbVLIZQ8dEgvw2xWL3ATFhCpmTLTTT48KBlPvp+fqztY1Nnd0AgDO1DXB11MS44KlomCpOH1yUvrkpJTx3jnB0VsES8QAAPPIiNHUKxv93dFqtTk5OV4al4vA6ALR/AEAPJfpenuns3VNZy43na1rBAA0d3Q2t3cCjAlKSYxLT01akDZGCxb1BlPQ6GJf2v0uRkQPNJREofLF6VOE1E5fR1AnLkLZ0tE5etECwD9FjzWeaTaP2LbqEfC4S5wvYW5uv/dOxSfHz9UZMJ6EFYOp17p6HTp5HgAwKzVp5dy0ld6LYFNZXBekpcbTmqMxm0dMPX24Rau6utrvjk+C057IBK3IesKFSPNHJ8+XHq6CKtkW6+vHz2oBAPGRylmTk/45bxG9fyCnOFvX9Ok5LRyYdXGNj1TCwHBKYtyCNE16Kj2d0qwiT28wwfljzQ35owmCmG2O94FEK+VPOd9h7kxd4++PnDpT10Rugs7UNe0/XAUAWJiu+U3unFmpybYXe4bm9ntnL//46TktHLDVBM1KTQIAxEco01OT0yc/QtcMT0mMPXu5aXBwqL9/QAg7IFgY8bsYET2w+NHu6d8AgBWohJkB4iOULR2dtouWn6YnIEPDwxwOvlRwkZP1g1DuQClDnTN1TWfqmnZWHNuSt9iT0sdg6i09curTs1oqi+ub+z9OSYxbkK5ZmzvHzdBUemoSqAAAAMPDRcuKPwZ7YFtOu50/+DzuojTnIs0fnTy/s+IYFA0UaW7vPNR+/tDJ86vmzvSw9CFfXJvbH6gfuLgGS8WzUpNoWVyh3zUwMNg/MCgU8K2i0h9Fz8NIj8Wu3/Wck4dtnalrfKfiE6tooMjxs9rjZ7WzUpP+OW+RJ6UPNEEfnTxHNOFx/iFdJsj6cX13TyQUPQ89E3r9LkZED1xoBwftWJwZE1H9ICNAmQwAMHQ/WLRYLJbFYvHHFauyshL+x9DQsNCmxfuL2U9Sv9XOik92Hjjm8kia2zvXv1tWeriqomStB9atnRWflB6usrtWEVF/vaX+ekvp4aq1y7LdsTswPQEA6B8YHBgcEvB51liI36UndDod9LsG7YmexWmp1A8tr7/Wkrdtv1NyB8ehk+ePn6vbvvb5VfPSXL4JRVxYXA2mXroWV+h3AQAMBpMwPMTaMcAf/S7rpsXBoSERZ1TfRR6H7dTpSRveLXPW48Jypq7pTN3uWalJFSWFTOfcodzxlgmy+l0mU69ZGczhcKy6md5VjP5C5srKSjjEkZERW09r5RzXqzEQJFinWn//4MDoLmG0V78zjbWhWX8/vnPMJHVMQgSlg6gNpt68kv3uKB4r9ddbMgq3n6mzc5Q0XdRfa9HkvbnzwDGnzI0Vg6l354FjmrziQyfOuTYAbA0KrhzV7zx164QfGBi0rWV+6RmqcbtDJ84t2bzbHcUDMZh6N+wq3/BumZv3cfCId8uWbNrtbDjBypm6piWbdm94t8y1GQgAgCUp4MGOCrM1f6jX6/3O9bKaINvmVXMef1QqElK5SXP7vYy1b7mjeKycqWvKKHyr/pr96C8tHD+r1eQVu2+CXB6k1e8CABi6R20DpLdxBv2iB7vE4nrbS4T8mZNQC1RGwObm4aJlNTr+tWhZ3XQAQF8//myEl5dkULlJ/bWWjMK3YHUFLRhMvUs27Ya5dto5dOJcRuFbdC2uxfs/du3jcQ/VpNHUi60i9ztP3RopBDZTKCFCGRNGadPNhnfLNuwqd1kB2HLo5PmMtW/ReEMrze33lmzaTcvieujk+SWbdru2bmFd/G5jL7Y3pH91e7L67QCAXpvjWV5ekknlJvXXWjIKtxMlqV2gub0zo/Atl70acnZWfJJXst/9yWkw9WYUvlXqkp3E+l3d3T0A09/Yp0VPWVnZ3r17rT8aR/8S5z+JmnYzRTwm/mE09Y6MjFhnzLZt2woKCo4ePer7/pZer8/NzbX+ODg4hI1a8TmcGY853nRjMPW6mZIgonj/x7QbHbi40njD/Yerlmx6zwX7ZZ1CFovFaOyxHjyk1WqzsrL27t3rF+q5rKzs6NGj1h9xJiiPWnnWmx/+mRYNgaP+esuSTbvp1T1n6hrpXVzrr7cs2bzbBYdhlN/VbcKWim/cuBGaIHqGyCR6vb6goMD6Y29vP7YcPlQmodITtf5ay5LNNP+hIRt2ldPoy4EH7tx7tETErby5/2PX4pqTHgYLh81mU0+fdQrV1NTQaIJoEz06na6goAA7XQAAff0D/Q89rZERS9GKuXQ9DoEDW3FisVi6jb3WRUun05WVleXk5CgUioKCAp+VPuXl5VOmTMGJ+q6un8+EonJSEgzJMKF4IBt2ldOoe9zM9xNxpq4pr2S/s5+aNSpY2IM9MLi6urqoqEitVqvVap/Nlto1QUZjrzXJzgJgySzH1RiHTpwrPXKKkSECUH+9xYU/DeHdrrXklZTSvrjCkKGz8Z6UxJ899eFhMzbGptVqrSZo48aNvmmC9Ho9NEG44ekxZ0I9R2EXjsHUy5DigbjwpyG/m8spURIOnTzvgu7Buu6GbpPVBOn1eqsJysrKctME0SB6oDRWq9VlZWW2796592ACxSiD+VxG6qYRkPTJozJcdk+5LysrU6vV2GicL1BZWalWq/Pz822FvKmnr7evHwAwMjLy2xfnObxVXsl+il7vpMTY9MlJa3PnbMlbtCAtNZ3yHtTi0r/QYnR2HjjGhOKBnKlrctboTMIsWkPDw7YFVQAAnU6XlZWVm5vrU1EfGCAkMkF3Ox+YoCkUeuccP6ulGHgLkohg14AteYvW5s5Jn5wUR63a7Exd05sf/pnKleQwF04AD1dup+Z5sFQcJPm5QtxgMNqaIL1ev2fPHrVajU1B+gJ79+4lMkFdeiM8S3XEPPLLhbMd3op6MA+aoC15i7bkLYLtnah8Cv5pmtvvUbmYnA3vltEbN8Jy6OR5Z+c5Vjf39Q3YbTlRXV2dlZXljvfurgrRarXkFnBwcOjuva6wUMV//CqX6BoELVg3cAEAhoaHWWb7nUj0en1RUZFWq/3jH//owdHZR6/Xb9y40e5aZaXjTldsTNhkdWyYPIj8bodOnHPotcRFKLfkLZqVmmR3N9aZusaPTp7/iFSLGEy9xaUf/33X6+QPcjjUnRWfULkySCKCvXmgRTh08jzcI+P4ESfPB0lEO9a9QHFI1kJUiKmnj+jKysrK6urqL7/8UqPxfgu1yspKcgvY29vfpTcGB0t3Fq4gvxX8yzp84sq5M9fmZtttP9jcfu+jk+f3H67qJv7tAQBKj5xakK5xZ6sUDMZQX1yDJeKUxNhgqfhMXZOhp/fK9VYqj8jbtr9m/1bq+3FSEuOsJqi3b4CoGRIUqfn5+T5ignJzc8mDB+137sdEhy2Y7vh40Z0Hjjl0uqAJWpiuwf5itzz8j+NntaWHq6y/RrsYTL3FpX+pKCl0OB7yoVJ0uuIilPERStjhqf56C+zpSj7DIaVHTk1KjKO+b9G6gQtCYoLKysq0Wu2XX34pl8sp3tyKW6KnrKwMF0y2i6G758WnZ0weH+/OsxAOwXrqgLQHPwAA6gzvGh29Xp+VleWwSM1sNhu6uv99uwPRbDD1vnPQgYzYXriicFk2yQWzUpNnpSZvyVv0Usl+koXhTF3ToRPnXN6EDG2Ww8vsLq5bVi82mHrrr7d8elbrMAtTeuTU2mXZFDfb4y4jnz/wb+d13UPRBHXeN6ynsJm29HAVeWI0fXLSvs1rSH6f8ZGhW1YvXrssu/RwFbmoLd7/l5rSreTjIYHK4po+OWntsuxZqUm2iytshedwcW1u79x54Bh13Qz7elt/9AsTpFarHcYMBgeHzP2D//HycvLLmtvvkX8lgySiHYUryO3GwnTNwnTNmbrG9e+Wk7g3x89qz9Q1uqybm9vvOXS6giSiwmXZC9I0dvV9/bWW0iNV5P4hAKC49C84eUdCijNLGKw1dEH3uJ7e0mq1VMwNAGBSYuwbeYtcfhCCIrgZ45CysrKioiKGBuMQiooH8tZvnk9wtHKTr1hBElHN/q3kisdKfGTosV2vk/ckLC79i8uZBYf7QhekpWortu/bnG/X3ARLxbNSk3ese6Fm/9ZJo8MztjhVJU09xwce/gW9WJ9BUfEAACYlxha9+Cz5NQ5XrLW5c4699zoVBRksFW9ZvbiipBCb7sFRf73F5eIwKovrB5vWHHvvdaL1JlgqXpiuOfbe63/f9VuSQQIASo+cop5JmeS8CSopKXHqIzRCfQIHSUQVv1vr8LKdFZ+QfK8nJcYe2/U6RU9pVmry6dKt5N/H4v2OHSfCzzpyulbOnVl3cMeW1YuJDlRJGR+3b3O+tmL7AtJWn3ArO8VRBUvFFHPEEKh7nDVBLoqenp6erKwsKlfCv/RYO8nIK7hw3M/evXu9VZdaUlJCUfF8sGkNFUtBsgwESUTHdr3u1O8nWCretzmfRPfArm7Ub2jF4Yq1JW/RwW3rqCyuKePjTpf+6/bCFSTr1pm6JuodhlIcSSgcuK0unqSpqYm64jlGIRf50cnzJCvW2tw51AMekIXpGvLn/t7VcmlyITspMfZ06Vbqi2vdwR3k0pm6bnZ2/gAAtm3b5q36sNzcXIom6OC2QofWw2DqJQl7wEnorAk69t7rJH+a+ustrhUXnqlrJLddH2xas29zPpVVOz4y9OC2ddtJE8elR05RH6ezU0ir1Tqrm10UPRUVFVTkFaOKh8Xlc+VR/Kgk4bip/KgkrjyKiaf4F0556hCvLFrd3d1Uiqmhw0rFfJ+payRZsYjMDZxCwnFTheOmcuVRLC6++/O+zfkkv1J4aqmz1V000QAAIABJREFUkDex+GDTmi2rFzt1w8Jl2TvIjQ7lthnpzkfLKysrz5496+yn3IdiMX765CSKJujTc4TtiBakpRIpHq7igQnihSVwpHgnNWV83Aeb1hDdtv56iwvlqM3t90gK16DJdap7eLBUfGwX2eJ6pq6J4jjjI0PJ40Z28YoJam1tpeLvQRNEJYtEIiOCJKJ9m+xrCLZQCk2QIG6SXRN0bNfrJMGPj066Eix0aIKcTdwXLssmmecAgNIjVE2Qs/kKAMDevXsbG53oHOtiTc9XX31FfgGs1WKo8zpbKOVHJwvjU2ynyGBbY2/TecuwnY0nXoeriAIWMNJvHOk3Ob7aJWAK3/ojPGWQPG2v0+mCg4MZGg8Rt27dcnjNyrkzt1A+tOhTYouzcu5MW8XDC1OJk2eyhbKfXxo3FQAw0m/suVo93HXb+vKOwhUZhW/ZfyjxMkk21POEn1o5dybJV4YtlMIBD+tv495aNS/N0NNH1Jbw03N1BlMvlYU/JTF2y+hM9Jm6puaOTvLS6YqKCpJ3GeLbb78lvyAuQrlvM6XlCgDQ3H6PqEQmSCLatzkf9yKLy5dMzOSFqWyv77txaaC53mqCVs1L++jkeaLv4PFzdRRTrtiPEL0FI5okf2hogsymTpyFhLon9aU3iapTqY9zR+EK7Gxp7uisv95CXjddXV2dkJBA5eY08t133zm8ZkveorXLsik67SQuUOEyO2Xv/KgkcXKa7RJmNnb2XK02mx78DoOl4h2FK4jaHHx6vs7ZACQ8yZjo3e2kJUfQBFmGB63Ds7JqXtqV6y1EMWzyNQgLLrhuMPXWX291WDddVeVEO0T695DD6ifqc8VZiObKg3ejk3nh6p6r1UN3dUw83VlYXL4gPoUfpuLIflbrluFBs/Fe341L2MWVFmARHO5Fg6l3/btlJBP9p59+oncYDjEajSTvOiwXtYVESeCiICTLFQCALZTJpi7GSueU8XEr584kClw7W0tYf62FqPAIFjnavs5VRInGTeUqorEvmo2dg3d12MW1cFn2RyfPEa0ux89qqXggsA4X+wqsez104tyb+z8msjvXr193eGdP4oLHRaIkVs2diTNlgvgU0bipRCZING6qIDoJK523rF60ZNNuuxd/elbrrOj5E3EOZcvqxbZWl8Xli8ZN5YWrsBLfMjw43NXWd/0SbnElymT96eR5iuO0+2tvbr+3/t1ykpXP85VhPT09JO865XFBiAxskESE+06xhVLJxEzcN9oKR6YMmrF8oLm+78Yl+O1emK6ZlBhr96vd3N5Zf63FqawZSZgwLkJp96/MC1MJ4yfZmqCBtsaBlivWV7asXnzo5Hm7VoL6OG1NEGT/4SqSXvNOtWymWfQwXcHDC1NJJmaSX8Pi8qWpc3uuVg/epr/nklNwFVGSiZmjwgkAAJhVUUTLpkZ7Ji4VLBUf3LaOZNJ0d3fbfd0ruBBcBQAQKYlJibHY2cji8mVTF2MFqF340ckcWWj313+DPy5I0xCJnl/v+L+RSifiZO2dBqK3bFcsFpcvTprJj7YjqjgypUimxC+ueYsJPcJzlEQPEavmpaUkxr1Usp/ibnkvsnLuTNvAjEO6iXOjK+eO+r0J4lPESQ7aOkPpbLx0DP5pZqUmxz08jBPHpcafstZtpz5Os3nkyg37utbuigUNpq0+Y3H5vDAVL0yFjUutmpe2s+ITu+OEmTiXz9yNjww99t7rb374Z6JIgMFA+L3wMC7U/wEASHLrOC+UxeUHzXiOSDFbEcSnsEUyU91J+OPKuWlE1vuXb/1BKqZ0FhiEZLeHrdNFos84MqU4OU0QnWyNS8H6feJ4s9aFqlMrhcuyZ01OWrzpPSpb5cmhU/TERSgZVTzQR6d4sTg5zWzstI3CeQx+VJLD0fKjk7kh0d0X/uaBfFzhsuxPz2qphxm9gmuKh4SFaaMsjmjcVIeKB8KRKcVJM3ubzgMbs4Wl476h4z499nrh6E0QLC4/aMZyW8WMBS6uVn2/MF0TJBHZNQoGk7uWImV83Ja8RfSemEE76ZOTXFA8AACS7d9YS82RKh0qHivS1HmGM4ceOOtpqXbX+/6Bobofm50crH0W2myiEY2bKhw3lfxTonFT+WEqq74nGicAoLmj02XRA9mx7oXj5+p8XDe7oHgA6fxZMNoESVPnOVQ8EF6YShCfMtBcD0jLe6/fukN5mGQESUQ4Q8cWSh3qMxiXsur7hWmpRKLH/ZNSUsbHFS7LptjejAQ6z97akreI0V1attPFYDDUPATnKzilkGiHI1WKkykt3myhzGPj3LLapxsHxEUoXVM8JLuTsDWA0IjgLqirq4Pzx/ZYTUF8Clfhoer4SYmxuBXFbozQLuLkNGsJLVEZYMsdGlaaVfPSnNpQ6nlcnuFEohBXxi6ZlIm74ObNm1RMkAe2ry4YvWJxFVEOFQ8E6nu7N6GdLb7du2RBWqo70Qi7BEt/ruy2a1Ks88fWBInGTWULpQAAd/pYUsTWdEg1VPWZdWmOjwwlqoh33+8CAKxdlu1CpTwOOkUPQ2XLELZQipsu5eXlKpUq8yEqlaq8fJQbypEpbfdTeABo7OxOl5s3b9q+aHcxZoJZqcnuzxjmWEXtMEiniI/8eQIIokctYAaDISsrS6PRwPmj0WiysrJw65bgYWoJex8mCJbgq0bsVh3ZnT/Y+YYtY8dC12FkTPyN6CIuQsno2sBVROHsyd69e63zx64JIiodYxoWly9NtXNmi8FgsDuFrPMNNw+x1FNo4uwQRtcI98GlMqlD8fuFM0F1dXVqtdo6fzQaDW4jG4vLF9jLbjMBLpgkTpppd/UkMkHS1AcHaxJNIffTUgCAYKnYfRNEm+hhejXlyEb5wTdv3szPz8eWv+n1+vz8fJxYppjLoBeuIhr33KNHj6rVahaLpVKpWCzWtm3bcB8RxjtucE4LLmwI9BjpBAu2O2AtNW4K5efn4/aswjPtsK9Yv/bMnWBqF+FoEVxXV5eVlWWdP1lZWbbznKgukl6c7T7nSeIZjkLh5k9NTU1RURHOBBUVFeFWBY8FC7GCjx+djHO6tm3bplAo5HK5SqVSKBS2G/7hlCOJc5CUPTmFL/td2KiMU1B0inAywvaor7KyMtzq4LElzLZaH/sjzgTl5ubazPNo+K8j+h26n96yO04XoE30ML2ackf/7YlaLOBe53pF9Ix+aE1NTU5ODnZyl5SU4BQ9WyijGEh0E6YjFl6BxL+3WmoWlw8DxVbsTiHci9DiMHdgsl1sh4rTZ9XV1ZmZmXij45Ghurwq+DhE3wtsDRwVE6TX63HLGJRKzcwXsmCTvLihlpeXl5SUWPUZFGd2F1eSJnJBNGXofNnvYmJsVn/JVv7a3XNk1wRR7y/qMtgpihuqwWDIzMzEDqyysjIzMxMXF39oLe1HdBz2jqeI+34XbaKHlqIBEihqAtzWRxZPwMxwyMD53HbPEy4rK8MtWp5R9Ex7w76GdR+pa/MHfpC5g4itYGO/uJlQV1dnaxz1ej3ulFY464hyEHTV4nigtsArkHwvrDrAtSnE5vKBM31KXAa72OBMkN0DfXF9bFlcPkeqNPQQimYXui37HS5HI0jUEtGfnuIufRZXAGjKLZKDDWbjgppardZ2tDqdDm+CZEpAnMYiyZw6hft+F22ip7m9k1Evc9g4SlRlZGTYPWYsMzOT5FOegcUbZRyJmqzb9QiZxsNBC6c46+iAdBKIFnVr09uRfhNui1xOTo7t9bj5Az/lWudlp8A258XNBCLjiPMI4awj2s9Ml9h1oYOwxyD6t1OBStNbs40Jsnu9SqXC/jjU1XamrtED6dGzmGAALlJIBL7ymscnafI5FnC52DZYKiZK28HWoMBm/sjlcruH9eLmD/wUSXMmujh7ucm6OrC5lJYwnGniyEJJmnz6TpCYzi3rFBugucZwVxv2R5VK9f7772/cuBH7e8/Pz8dZIrPRCzZ6pM+Izd1mZmbaDfbgZrxnhuoBj8FlPj1X5+wJDFZIttoWl/6loqQQAGA2dmLDtu+//75Op8NKB7lc/rvf/Q77WbPx3pm6RqK2YxwOOz3FuTqk1rv3bxBsMf3o5Hn4z8fNBKjvbaUPTp+ZjZ3Hz2qJRC1daU1fnj8GU6+zjdqsEBWAA8xJ9UNdbULw836ozMzMP/7xj7g8dVFRUWrqqK3jZmPnO8SbbJPioyJDnOuHflrbYPd1bHPe4a7b2KmOW0et4Fqxm42dJE0+6Ur9MJ0TcIdPz2lJ+lOQszDdfjcvg6m39HDVltWLYSNj7NJw5MiRrKwsrKSA6xr248NdbYdOnCNSEgI+78nHEp0aZ2PzbaIuG9YVHBcswE1p7GhxQyU5fYyu+eOObwyhU/ScvdzEnOgZ6TeN9JuwHkx+fj7UE3A9gAXw2I9Yhgdpb3lMhaGu29hdG6+99lpZWRkuQ1FUVISzOJ4Zqi/36XGnAdrKuWlEouf4We3xs9qF6ZrBuzrsSiCXy7/88suysjJodORyeX5+Pi58eOfaFZKjjFdkP+lsV5j6ay1Eh1rAxTVYKradCe+//z5ucZXL5a+99hr2lWFjZ3EpYcdSXLMQl7lCUzUiQ3x08lzKeOe68kPgVluiftZQN5uNnZbhQWySC5oga5Df1gSZTZ0ffvwZSQ/cj7dvcHbCv/S7D+2q8Ob2zp0Hjll1M07fa7VanAnas2cP9seRftOHH39GscmnyxhMvR7eE+AUrh0sA0mfnES05O+s+GRBmiZlfNzw/Tas6FGpVD/99BPWBOE2UgAA7jY3vXOQUDQXLHzK2WMojp/VErUwfefgJ3AFx/ldGo0GhhiwL6pUqqVLl2Jfudd2k+QoZbpMkPvlcXSKHndmDBVM2hNBM5ZjX1GpVLazxErP1WpGx0PE8P023CvfffddWVkZ1GdyuTwnJyc/Px97gWeaKPpybgLiwlFEkJTxcURNbwEAG3aVx0coUwDgh6lwNXq4PwSW4a7bv9n8ryRpfheOdyUZp8HUu2FX+YOg1GiPMD8/X6PR7NmzBxpHjUZTVFSE02f/9eEfSJYTkkiGU5Cs376AC0cRWSFpenv8rHbDu2UfbM7vuVpt3ZoLUalUJIc8/3nfOyS9822bM1EhPTWZyNKWHjn1YHE1dmKLGeVy+Xfffbdnzx4YcoaLK06fXb+qJYlIubyXGwddW3gYwmDqhQ6SC59dmK4had25ZPPumv3FCdxLvHC17TYFok911J9d+KstJN9rF/4uJC1MrboZpvWx+r6oqEij0Vj1WWZmpq0J2rJjL1GkOS5CSVcDJPJz3KhAZ58eOGNovCEOs6mz/8YlihcPNNd76/gts6nT9gSM/Pz8ysrK6urqyspK21nec6XaAwPz5dwE5DM3qmdI+jcYTL1LNu8+flbbc/VLis2vu+7dyVmyiGQ+O2ylSPT9t+2ca+X4We3OA8eAvfkALU51dXV1dfWePXtwgeX/s+ftf9lbRnTbBWmpdDXHc6duxgM0t3e6vM9l1dyZJLupD508v+Hdsns/fU/9cJs/vL113VsfkFywJc9BMtfuFCKZP1A3G0y9g7ebbOOFRUVFcP7ArTfYt7ru3Vm+8iWysxSIH+oU7ucmmMblAr5gqXht7hyid6EJutxw3aQ9QfGG169+98yyVeROF+3J3J0Vnxw6cQ7YCxnAoCacQiUlJTjFs/W13xz67DTRbemaP4AO3Uyn6AEAkATYaaHvxiUqRmeguR4eIOAaBlNvXsn+9e+WuXyH3sZz1IM3vU3nPRPpOcv8vkeK8Pn2N8KcqWtyWTdvWb2YpBwV/k3/83/+1PLlnxyecn/q5GdTJqccP0N2jrfdw0Gt7D9clVH4lt3Q2lrSUNbOik+K939sNnVSn8C/K97y643/QnIB+ROp09x+z5cL4SEk4Qpy4MlBJBccOnl+yabdJ//8vw5NkF6vX/3ckt/8y3aSX1f65CSSiEJz+70lm94rPWzn7Oj4yNAFxEtI/fWWJZt2119rMdWdoKjvtVpt5qy0+h/tNJ2DLEhLdfMACuzwaLkPc3x08jzJvn1ytqxeTKKbm9s7Mwrf2nfgY1PdSYd/mv/9cO8TM5+qv0Z2RAm5Cdp54Jgm7027M5DcIGzYVV56uGrorg6egEGF19a9vP2//kByAV0miJaoCs2iB8bH6L0njp6r1aa6k0QVMGZTp/HSMXcUz/7DVZq84uNntR+dPO+y12gZHuy5Uu1wcQUADN5uoj633MFg6v3oHxc88CAqKBQKorfc0c37Nq8hv2DngWOTlxUWF+Z9/ckh23f1en15eXnGzCey5y24eZvsRBuSFQsuV8X7P25u7ywutVMPFB8ZSt6Mf//hqiWb3vux9kuHi2t1dfUUTeq/73iH5JoFaal07TN3/9QbD+CObi5clk2+t7/+esvijTuz5y/+0+6t99vtBL20Wu1r615Wx8dW/M2BGSRZsXYeOJZRuP1MXdPOik/s6mby1a7+esuSzbv3f/wZFd1TXl6elTH7cuN114bqFM3t94gSczwej5ZHUCcmJoboLZdNkEPdDAB4c//HE59dtXNjQVOtnfIXnU5X9r//VxUb/U/ri/RGB+fAE4V56q+1ZKx9a2fFJ83tnXZ186zU5JWkfY3f3P9xXsn+htPHHFaa6nS6zNmz/mv//5Bc4+x59ST8/oidf46zsCwWC/kVn3/++fz583EvTp069dIl+5mmYKlYW7HdA2fNcBVRPEU0WyRjC2Uj/cZhY6fZeM+dcmAYDMBWLaQkxtWUbnX5hiwuXzRuKtEREyP9pp6rX3qs1HrngWNEi5ZSqezsxIeaHE4M6rDZbNzdJkyY0NBgfxMKAGBL3iKXt3Gtf7eMZAcBlmCpePKE8SwuD3bC0N/vrPueksYlOYd5/+Gqdyo+wXpXf9/1W1vNYTD1pr70psO+7Kvmzlw8b86KdW/gigB0Ol1dXV1lZaXd/is4tBXbabE4BlOvOnej4+sesmnTpnfffdf95wIAnn/++b/+9a+4Fx955JEff/zR7vXxkcqa/VtdM0Eklea2PDU1hcXjs9hcwOZYzEOXrzbou41UPrg2d47d2qP6ay0bdpVjwyGzUpP+vut12ytJvs5W4iOVb+TnZOeuSpqOT7vodLqampqS3/2b7qaD407d+TLiIPluBgcH4/bPs9lss9lMy3MBACwWC/fKk08++fXXXxNd787Jx7PX/gfFupOEqPD42GgWh8PiCoBlRN/VRdEExUUoT5fan+G2E8OuBWhuvzd77VtUTFDeyhXzXlpn26Tq6NGjlUcOl5UfIL9DkERUd3AHLXrAqe8mAODu3buhoXZMn4uiZ8eOHW+++SbRRxama2A9ph9xpq4xr6TUNhi4vXCFa6W1VjhSJT9cxZEpObJQtlA63HXbbLxn7jcNtjV64HB1iMHUq8krJgq2P/bYY99//z3uRUZFz/Tp00UiUU1Njd3rg6Xiv7/7W5cL36gbHdeo2b/VdmywnMI2xhAfqdRW7LC9CckeCltmP/k4YHMUIUpDT7/dRmFEuD97rZCsshERER0dHbgXmRY9b7/99htvvEH0kVVzZ37g0nHrAIBDJ84xepj8yrkz7W76O3TiXHHpX2y/pBUlhbZhRYOpd/Gm96gurtHhCfFxLK5AERKiNxj19zu19VeofHBSYuyxXa/TsmI1t9/T5BUTvRsbG9vaOurfwrToefHFF8+fP2/3JCngnuvu1J/GBYicLlunHUKkm6nP82CpOHXSoyw2V65QGHr6Leahmq/OUhyt3dnrGiSiOSkpqakJ/w8nEj0uprcSEhLWrCFMJcDNDq7d2SvsPHBsyabddjUBznF3AbOps+/GJVPdScOZQ11f/AFm3waa6z2meAAAJB1cAABxcV5oDE+y5wUW/bn8az+263W6Wp7b8sGmNbbmpv5ay5JNu+1mVYgSvgvTNR9scpCMs3L6629Pn7949Pjn1dXV1BXPyrkz6VI8BlMvyWbUZcuW0fIUp8jIyCBqDwgAOHTyPKzHdIFV89K205TQsWVSYqxdxfPmh3+GNci2bxWXfmz7erBUfGzX6xTPsbrZduf0hUs1Z85V/v2T6poaioonSCI6WFJIV8zebp4FkpCQEBQURMtTnAK3aR+LwdRLtCI4JFgqPlhSyNARY0SK50xdoyav2O7mSqKE76p5aeRJLisGU+/pC5dqzn0NTRB1xfPBpjV0KZ7m9nskIfy0NCfCcq7X9JSUlOA6zWBxx+h4mPXvlpEEig2m3jeJN536BQZTL0mnhzVr1ng+oQ4AyMzMJNHNbhodhnSP3aD3mbrGJZt3k1Rolh45ZbcyY9W8NJLtHm5CFE5wjdLDVSR/C6csDo2Q6GYAwIZd5S6boMJl2eR1V66RPjnpmI3PbTD1Zqx9i0RTElVmOKV7nAUurnSVYjS33yMpKCTZs80oOTk5JLq5/noL9VgsjvjI0GO7Xqfr7BcrQRLRvs35torn0Ilz5NbSrm4GAOzbnE9R97jAyrkzaezbZ7c+EhIcHOwh0UPeIwe4Z3Q8g8HUu4FCCYg7Fc2+wIZd5SSdHrxlcYAj3Qz3obh2Z7ge0Ph9jotQ1uzfavsddmhuAAAGUy/RN3bHuheY0D0L0lLpKj4FAJypayTxCtasWRMZGUnXs5yCXDcDAIpL/+LOTpy/7/otjZJiS96iY+/hU0VQ3Dvc00RU0ZwyPo4J3UNSteYadisHrHjXBJG8e6auyeWURcr4uNOlW0n22TnLpMTY06VbbQMnVLJURLoZALBvcz6Ng7RCr9N16MQ5kt0J5DrEFrd2bxUVFSUkJJBcADe/ufMI5oDm5hCFote4CCVdh6V5nv2Hq0imS0ZGBq5jhydxqJvrr7dkrH3L5XjPvs35H2xa4/6SkD456XSpnToe6knxuPAQord2rHuBlkFa2ZK36OC2dXRlJQym3rySUpILyJcNpiHXzTBP6rLrNSs1+XTpVhdaUOIIkogqSgpty4EpKh4AwKTEWKJjoVLGx9Ud3EFjXBMurjQqng3vlpH8G9esWUN0SoYHcKibD508n1ey3/U817Z1tIQM1+bOsRt423+4yv36s4Pb1tGYzw2SiD7YtIZGxVN/rYU8zONR0SOXy+2eKoXlzf0f+2Z9z5v7P6ZibtbmzqHXBHiSM3WNJA1hAWlW2zOUlJQQHewCqb/eoskrdtlfX/X/2zv7sKiq7Y9vfElAdEZFIRVmFEUNccZulgIFimKlwmRd3wpneruJUkyJeROLQRFDUbBMKCsGKUwroBBLFBuNl14szjhagqAIppSijo7gS8Lvj51z+cHMPodzzszZA/vz3Oc+wZzZZzucWeu711p77ZkB+k+SVkbOZqcqAif4fp3yWscFOgCgRF/JxNx4eQz6OuU1dJvgRTMDeMnHwXvxtdcGgo5jCeuxAABSqRT9DMMCc9ab7b093Qs2Ld8aq2SXqujf12Vl5Gz9J0kWK5EZKp6VkbMPZ7yJMEEiN9fDGW/yEjJc8sS0wxlv8pXVAgDk7CtDLCxFIpHgJigtLQ1tggpLqfDYzazb2a9cPIfKXsc66gxNUNLS+R1NUM6+MrR5h4z3GX4ofTXaLETNDf065TXu+Tgvj0EFKct5zGoZTU2RCSjR2bExNC1c+/TI5fLMzEz0NTlF5azX6zYieUcBbVbL7K7ssP3eFtCu0ZVKpcVjfu2MTqdDGx2O63XYPANKH4bCon9fl8cDZFDuWGxyY6iuR3+2EKiYmbTJ8R/ldTjjTY7OleG9mLNq2y60VxY2zANRqVTtjontSPKOguiNWtYmCErnrbHKxwNkDNXzeJ/h66Lm6T9JWrl4jkUDwmTRxcRdmUlaOp+Lc10YNoXKXsf6EA+LoNfogJXH4h24dEfECwEMOUetY7308vZ0f2+Fispet+SJaQy/4F4egxaGTUGbINpFV/++Luui5qEVs5kg2Rj9J0nrouaxWx96eQzaGqvUf5LEb4AAXZvBIswDeDl7S6VS1dbWJiQkIK4x1NQHRyVujVXya5TZUVhK0a78FoZNSYqa56ByBzAoBMZhjQURi8VarTYkJKRdo462wPX68VNnWYdhofRZuXhOXcPFEn3VsZp6eCiH8XpTXUMjPAFY5Obi7+MFTy9Cj7YshcaDjvcZ/l6shZJDNItmBiyaGZCzr2xnUTnDo2HH+wxfGBawKGwK789qzr4yRHUtACA1NVXYMI8ZjUZTW1ublYXyATlF5YaasxY33zEE/nUAACX6ylJ9laGmHqacSo9WjfcZDjPgQTJfL49BswLl6D9Hem4x7aKLRYMc6FxXRs5Ozt5Toq+ydhRdW7w8BgXJfHlsH2fGfCaGtQskEgkLj2ULpFKpTqebOHEi4hqjqSk4KjEpah7r5sLenu5JS+cnLZ1f13CxsExf33ARmqC6PxuNpiZogrw9B4338QqiO18CrgPRtxvvM/wTTVRn/6xRc0MXhU3JKSrfWVTGcNd94ARffmuWzURv1KIbjWq1WhaimZ8DR5kYnbqGxkhNxum8VF7uyBqjqYm24SaXzlQ40LHFWUfYPS42Qi6X0xodAEB6brHfyOEc/zTenu6LuNn35B0FaHPAsbuJ2bkWllLHaurN21ChDIIlJgydK2vi0nenI6vxgoODMfFYEK1WS1GUXo8689hQUx+dksWl3SgkSDaGy+LNaGpCn5XRv69LUtQ81s85lD4AAEN1fcnRqmM19XCtDA1Cp5wrawzV9bRdJ/Lz87EyQZmZmc8++yz6slXpu8f7DOe4dPf2dOfYS2JVuuXdWGa4LNpFbq5Rc0Oj5oYaTU1wfQhNkPF607Gas+YStyCZ73gfryCZry1MkNHUFJe+G11xGxERoVAoWAzO2ynrTIyO0dRUoq8UNtiTkVuMCJdxNDc4UFhKoRdYgMPjYjsYGp29ZZSwf526hovo+AePMcJZgfJZgfKV3AfqDNZanLVFJBIxaQZtZ3Q6XUhICK3uqWvw+wf7AAAgAElEQVS4yHtUo1OgPRaPO6f8R3kJUozIpMA/Pj4eh9x6W1Qq1ZUrV159labt+N5SSlgXZqiuR4cJ+do5JXJzFcQE1TVcjNRkoBftEomEtQni8+wtiqLQlfAAgL22PIadCYj1KzQ3Dq14krP30O41kMlkGHosAIBKpfruu+/QyfW9ZXphi8PQHWuguXHcrChs9I5WPACAjse844BYLNbpdIjOK5BCK8c/2Qd0jzUYI3TQbROQ6I1aWsUjk8lwqAbriFqtpi1R3Vsu5PMDAMhAnj/F784p+1OirwyOWkdb7sYlU8HzgaNarTY1FZXAEvaJKSylEKeNWOz75CjABTrtaa9wjY5PVLkdISEhOp0O3QeBl4N2WYNwmYETfB3a3GTkFoev2IyIg0Li4+MFbKyCBuoe9NLrM2ZHs9kItORiUQeGD3UNF4OXJNI2AZHJZDqdzi4zYoNKpaqoqEAsveoaGllXNHPHaGpCiGYb1dbYjYzcYiY9aTMzM7l0WuFZ9AAA1Gp1Xl6etYdG2CdmZ5HVHUALw6bw1TDb/sBzbWjVgEgk0ul0uEWV2yGXyymKQuzn2lsmmOgxVNdbKw7t39eF9ox3nFm2UUtbKAAAUCqVeK7R26LVahHrdZjhsud82oIIda+MnO24iofhAh3zRReE1gQh/IitQRh5L49BPLYktT/BSxKZHH7AfdHFv+gBACgUCoRlFPCJsdbgC5by2HkyPFLILOmTlpaGueKBiMViiqKs6WYBM1wIm54UNU/YShEuoJePZpRKJZ6J0Y6oVKqYmBhrrwqY4bK2KW+8z3B+GyzZmZ1F5bTfSodYdEGkUimiBZ2A+QrEjjyH3m5sqK5n0rOKl0WXTUQPAABRJyvgE2PN4vj7eDnu4wIYROxFItF3332HbVbCIohHSKgMF8LieHvyfM6OPWHyeTqQ4oEgnnZhM1wW8eb7nCY7s5dORzqQ4oFIpVJrwR4B8xUIZRAk49o6XECYxO9jYmJ4MUG2Ej14PjHWELnZ5NA++0CrkaG5EfC4CXagdLNwGS5rwJ3ADgrt5+lwigcAIJfLrRWHCZXhQtzUoZ+fwlKKdvMERVEOpHggCN0sVL7CWrICAODQ6/ad+2nWIZmZmXw1lrOV6AFYPjHWumEeO8WoCxOeoD9MBzU3AACFQoFhhssawpZXc6Gu4SJimS4SiTIzMx1O8UBQwUIhMlyIBCjDXpR4ghbNwcHBOp0Ow+1+tGCYr/C33lPecU/FNlTXo9su5+Xl8ZimsKHoQTwxO/f/YLv7IrAWQ65raLS4ld1QXV+qryrVVyVn70nO3oPeriwUiK9ffHw8RVGOaG4guGW4xltfjm/4ZE/HZ6Ou4SJ8fjJyi+EjhKFhQrh/uNHGsbKibcEww2Wtx3+JvsriIw27P+8to+Dzw6T0ys6gC8JSU1N1Oh3mlcvWwDBfgQjnWOx42dEECVjFbw3EJvzg4GCKovjtKsdbc8KOwCfGYq8wo6mpsJSy/24pf5/h1lZUcem7v7m7Xqn7s9Ga8EzO3rNkbuiSJ6ZhEkss0Vdamyq2zTCYo1AorLX5FqRLISJrXtfQGByVCFW10dSMTr2/Hjkbh/NYIAj37yiV79aAGa4zZ850fEmoLoWzAuXWJEKkJn1WoBxKZ0PNWWvrq+TsgpWRc1ifscU7iOVHREQEVm27WaBSqay1K9xZVOY/is+jypjweIDc2hlKJfqq4CWJsFQDYYKSdxQsCpvyug0OHmENItKs1Wp5X7TbMNIDAEA88YKUZaCPTSnRV8H/IUJtRlNT8o4CfOI9iDWW4y7QzeCW4RK5uT4eYHUja11DI3x+0CVWJfoqfNbriIIwiUTicHVgHcEtw/V4AEpEFpZS8BFCPNt1DY1vbNuFjwn6zHo1Bm5t31mAW4bLf5QX4shSQ009ExOUU1SOjwlCFITJZDJbpClsK3qQtajC5NTNR4ewZmHYFIfQyF3A4gD8Mlxop8WQlZGzuQ/CC4iCsK7x/OCW4ZoVKGd4zjaCqLmhmESa4fG9Fl8SiURdYN2FYYZrEecgX/++LqyPTeUdhAmyUZjQtqJHLBZHRERYfAlmuGx6d4tw78eDj8fK2VdmTSNHREQ4bilPW3Dbw7VoZgBH3YyXaLa+Wu0CHgtguYeLownCymMhomVdQzQD/HbkrFw8h6Nuxkc0G01N9l+321b0APyclv8oryVPTGP9drw8lvUPsMtYHNwyXACA91YorZWjMgEf0VxYSiEKwhy6mqctqB0VAgV7EElSWvDxWAAZLesaohngl+ECAHBp/o6XaEYWhNmo/l1I0bOzqFyYldbS+azLAPHxWIJoZEFA/FsyrB8fazu8Pd0LUpaz0z2OIpq7jMcCyH9LRt5BO07kf7y3QjXe+t5jBFh5rC5fEAZBZ7hy9gkQ7AmSjdkay1L34CWarReE2c4E2Vz0IDJcQKCVFgDgvRUqFroHK4+F0MhKpdJB94haBCV68g4KEuzxH+XFTvfgI5pBNygIgyAyXEZTkyBOS+TmWpCynIXuwcpjdfmCMDMIB7zhE8t7qWzNopkBLHQPVqIZXRBmu0fI5qIHYOm0AADvrVBtje1cngIrj/W+9UVqF7M4iAyX0dREe6qzjfAf5XU4Y3Wn6nuwEs3doSDMDOIbIZTTErm5Hs54c2XkbOYmCCuPBZDJHUffqd4OxPNT19AoVGPSRTMDDqWv7pR0xko0C1UQZsM+PWYUCoVarTYajR1fMpqaMnKLhTppb9HMgFmB8mfi083Ne7w8BsFWK/4+w+HDEXi3NUtdQyM+HqtEX2ktsGxTjSwUarU6ISHB4kvv5xVHCeQJvD3dCzYtT88tjmtzODCUQSI3F3iwgJfHIHgsV11DI1aH43TtncbtUKvVW7ZssfgSzFDYv+cTZOXiOY8HyJelaI/V/NMUHmGCjKZmfDxWzr4yREFYFxPNUqlUqVRa6xn2fl6x/XvOQfxHeR3OeDN5R0Hb5j0IEyTUPC3yvvWehDYVzfYQPWKxGOG0MvIOCni8sMjNtWDTckN1vf8ourNv2Jce8o/F5puQrlSNYQbx/AjrtAAAUXNDZwXIRG6uNA4Jp+enRF9pLbAMuqLooXNaBwV8fmCqtK6hkd4E4QQiQtYlTZBGo7H2/JToq0r0lQK2G4XS2dtzkAOZIIRolkgkNt1FYY/0FgBArVajMhRCpNXb4ljmBu2xuqTFEYvFSqXVBLZQGQoz3p7u+CzBmYAQzV2sIMwMoju5oaZe2ONBRG6ujmWCEB4LdEXRDACQSqXBwcHWXkV8oeyD/ygvBzNB1o22rZ8fO4kesViMYS2Yg4L4gtlaIwsIwmkJmFZ3RLqhaAYASKVSxI4KwZ2WY4Gw2F2vIMwMwgSV6KswPNMKW9JzixGi2dYFYXYSPQD5LxFq458jgvZYjn7YFgKYobD2KiI9TGgHwsEHBwd3mZ3GHUGYIJihsOdkHBd0mKeLlTC3JSQkBBHssXYkFqEdRlMTOtJsa9FsP9FD57SEaZjhcKDDPF11mQ4hTos7OfvKuqdoBnROC5/TiDAHEebp2qIZIE2QUG3nHI6M3GLElm07mCD7iR6Ad1rdIei2YR6IXC5HOC1BGhU6HN3ZYwHkd4Q4LSagwzxd3gQpFAprPZ8AMUEMMJqaEB1B7RDmAXYWPSStzhHERySTybp2mAeCsKp7y/TEaaHp5h4LABASEoJwWiRDQQtCNCuVyi4vmgFaN+//Qai2c46C4GEeYGfRAwTKUFy5dt0Ww1okSfvVH39dssXI6DBPWlqaLW6KG+gMRVzG57a46aWrJlsMa5HvqUrb5Vm6eZgHIkiw5/JV+5mgtz74wkYWj4hmAIBKpUI0+E7eUWCLm9rThX158Cfdr7/bYmQcwjzA/qIH7bSiUyw3QmDNjVu3l2/59H7lahsJkXZsytmb8unewP+sscVmom5bf9oORECrsJTi/ZM/eOS3gBcSNud8w++wFvnjr0vKNRnLNmqfS/zA1HyD38GJx4IgnBawgQm6cu16pCZ9Zkzy1evN/I5skSVvf7z18/0BLyT8cKya98HRYZ6uummrI4ile0beQUO15baxrNlZVD7h6TfyD/3C77AWMVTXR6dkPfnfLavf//z233f4HRyHMA+wv+gBdHuPeVTKJ2rPBS9Zm7nn8JVrTU+teod3L9KO4iPHk7RfAwCuXm+O1KS/nJLVdOMWX4N382qetqCdVlzGbr4izLf/vhOX8fm/V73z1+Wr67RffWPjE5Wbb956atU7V641AQDyD/0S9J81P/9+isfxSZjHDHrvMY87SX84Vh3wQkJhKVV99s9ITfqdOy18jWyRD/IP7i7+EQDQcMk4e3lK4sf5f9/hzW8R0WxGpVJZazsHeNXNpuYbzyV+sGyj1tR8Myr5418ra/ka2SIXr1ybH/fuzdt/t7a2bvviQGh00sn6Br4GxyTMAwQRPbRpdV4izO/nHZy6dN3J+j/hj5VnzqvWfNDSYiuj89PxmsWa9NbWVvNvPt1X9vBLa45ZOSyiUxhNTYgvUnfzWMAuuvlkfUNodFL6lwfg37S1tfWFddt5X8OZab55a37cu5Vnzpt/U9fQ+Lh648ZPCnl5aNGNMbqVxwLI09wAAHEZn3PXzX/fuZP4cf7s5SkNl/45fud7qvKNbbs4Dosg97uf49L/l95taWndvPObsJeTeTGnRlMTInfcrcI84O4ZA9ZeNdTUp/NR0fzz76eC/rPGHOC5efvvBau3NjRaOM2JFxqNpvAVm82PKwDgWM3ZqUvX7dj7PS/jJ+8owCHMAwQRPYCuAIWjUm40mp7675Y3tu26efvvtr8/eOR4/PZcLiNbo0Rf+cTK1Oabt9v9/vS5C6HR69/dXdRWDLEgeUcB8VhtQQd7uEeYs/eWTF26znwcEqT55u35ce9evHKNy8gWab5564mVaR0jeXdaWtZnfT17+SaOyVlDdX3b08Ha0Q1FM9ppGU1Nq6x/XEyoa7gY9nLy5p3ftLT8vy/+h1/rsveWcBnZGrnf/fzi+o/udNDH1MkzD7+0dteBHziOH52ShYnHwgTEGQMAgA3clu4tLS0bPymc9erGdmYfRmKab/KWQDDTaDQ9/uqGE7Xn2v2+6cYtdeonkZp0jkVFJfpKTMI8QCjRo1AoENu4uESYK6pqA19MOPjLbxZffe+L/bx3QTxccWLeqnc7Kh7I7b/vxG//8siJ06zHRz8u3dBjQbRaLeJVLrpZteb9mNRsi6nJhkvG+XHv3rhl+W/NDlPzjbkr0346XmPtgh+OVa/5OI/LLdCfRjf0WAAAjUYjk1k9i2hnUTnrTRUHj/z28EtrqZNnLL4ak5rNe5Vozr6yF5I+tLayutZ047W0T/64cJn1+Om5xYhSue4W5oGIxWLEFwcdGEPTdOPWnNjN67O+/ttSMtRQU7/k7Y/ZjWyNC5evznp1ozkr0pHCUuq9Lw6wHh+dqQB2N0HCiB4AQFpami0izCOHDulzT2/EBerUbB67KaTnFv971TtoL/jW809MGjeS3fi4PS74EBISguh1ySXCPE46FPFqRdWZ8NjNfMV7TtY3hC5L+tG64gEAjBrusSnmada3SN5RYLCeY+22ohnYTDeP9vLo0QNlV59+6719PxxlN3g7/r5zJ377ly9v2oG+7MO4F4cNHsDuFnUNF9HNRLqtCVKr1YhNOaw3Vbg63+M1ZCDigoKSioVvvsdXvOfn309NW5ZUhazdecjP578cDgWPTslCZCpiYmLsLJoFEz1SqRStlNlFmEVurjlrlvbpbfX0+L/vtKxK3/38uu23/n/yq7Ncvd68YPXWuPTd6BL3iEf+pV7wKOu7oBNb3dljATrdzDrC/Hrk7Gn/ug9xwZHfTz3y0lru1Vr5h44EL0lELLAAAP1cnT9PesXNxZndLQzV9ejeM92k04FF5HJ5TEyMtVdZF4d5eQz6KO5FJycnaxc037y98M331mV+xTHr/cdfl8JeTqbNnr+68NHHprA/Xxud2LK/x8IKtG5mvaliy2uRY7zvRVyw74ejodHr6/+06hqY0NramvbZt7Ne3YiOAg4bPGDn2mU9e7KUCmjxJxKJ7C+aBRM9AAC1Wm2LCLPfyOFbXluMviZPd+TRmA3sisJaW1uzvyl58Nm3in40oK/09/HKWPksi1tACkspRGJLJBKhv3JdHrFYjPDZrCPMTk5OH61+0ctjEOKahkvGGS+/nac7wmJ8AEDN2T/nxb37XOJ2dIywRw+nTxKWSu51Z3cXQBeuiI+P76rH0zJEo9HYYlPFtAfuW77oMfQ1m3L2/nvVu9ebb7IY//bfd7bs+jbgxQRrSbQ2M/Fb/Sz7M6vTc4sRm0YlEkm3DfNApFJpfHy8tVdZ6+Y+9/T+dM1SN5c+iGtO1J57ZEliueEki/EBAFTVmdBl69d8lGcxiWbGpU/vz9e/Iu7Xl91daDMVWq1WLBazG5w1QooeYLMI87zpD708Lwx9DXXyzOTn45Oz93Sqf8aR308HRyXGbM7+6/JV9JVjpUNzk9XoXBsCJo9Ld15jQVQqlS0izCI31y/WvyJyc0Vcc/P238+v2/7vVe9UVNUyH/nq9eZV23YFvJhw4Kdj6Ct79ujxwX+ff1g+hvng7Vi1bRcisSWTybq5xwJ0uhlwMEFvKMNp4ysHjxyfpHrz/byDNztTJVZYSk1+Pj7hw7xrTTQ9OIJkvtmaJYiYExraxJYgHgs30LqZ9aaKkcOGfJKwtBcyvmI0Nc2J3fRi0oed2lje0Ghc8vbHodHraRWzS5/eu9a9PFaCSvejQYcJIyIiFAr2ipw1AoseG0WYAQAJLz45f/pk9DVXrzcn7yiQPbNqA530ab5564uDP82PezfslbfbbeqxiL+PV+Gm2EEit85Nug14Pi4YYqMI82gvz12J0bSXFf98PHTZ+gWrt9JKH6rqjGZ77v2L4zLyDjLp+rV91Qtzp05iONuOoOvfRSJRfn4+68G7ErSbKtgVhzk5OX26Zukj8rHoyxouGd/Ytuv+xatpT1y+cu169t6Sx9QbIjXpp89doJ3A1H+N27XuZZc+93Ri0v+fSE0GOrHVnXPrbbHR0v2RiWO3r3oBfU1LS+uX3/380HPx/1n/0ak//kJfXHa0KvadnH8p43YX/0ibWu3r3OeL9TFBMvaLLtrEllCZCqu1L3ZDo9Hk5+efOWNZdSZn7xnv4zUrkE0QPn3lsxeuXDt45Dj6MqOp6e0dBW/vKJCPltw/Vurv4zVhtNdYydBzFy7XNlysOfvnz7+d+qZcz7zT4ERfyZdvx7AOCQKMHxcMgRHmhIQEi6/WNTRGatK/TlnOYuQH/Xxy1ixd9NY22iuLfjQU/WgYOniAfLS33Fcy0VcycYy0paX19Lm/Tp27UHnm/FeHf2HiqMxka6LYPfMQJvXvJExoJi0tTafTGY2Wk90bsvcETfD1H+XFYuTshKg5y1OO0q31zzdeeWPbrjUf5Y738bp/jNTfx0s22ttnuEft+Qt1DY0n6xq+11fSJtPbEvaQ/2cMJDsCdP27TCbrztVg7YCbKrKyLH/jDDX10Ru1W1eoWIwc8ci/NkQvfH3rTtorvzj40xcHfxoxdLBstLd8tETuK5H7Sq7fuFl77kLNH3/9fvqPPN2Rtj140PRzdf5i/SuT7vNhMWdIXcNFDBNbEOFFD4wwP/HEE9YuiE7J8vYYxM7ofJoQ9fRb26ztYG8HdfIMbcSPlvvHSHOT1f37urAeAc88KM5oNBqtVmtNN5foq1Zt25W0dD6LkR+dItu5dtnihAwmsZlzFy6fu3B5bxmnxs19evfKWbtsKrKSmhba+ndEl5puCNxU8eqrr1p81WhqCl+xmcpeh053WqSfq3NusnruyjRa3QMAaL55++ffTv38G9c23LMDJ3785otcRqCtfyeLrnakpaXl5+db0805ReUBE3wXzQxgMfILESGtoPW/7+1iUvZ++tyF0+cucDywQtzP9asNr7FzuGZo698FzFQInN6CoCPMRlNTZEI6uyRFn3t6f7YumkuaoFM8Nyd4z+ZYjoonPHYz4h+rVCpJYqsjaCuckXeQdX+mmZMnfLE+pq8zqqiQL6T3uhe/t4qj4snZV0bq3zsLelMF7bcSwcD+boWbV3CpzWJOr5493lCGa9/6T6+ePVkPAu0t4gJS/94RJsVhrDs/vRgxdfsbz6Pre/hiwiivQ+mrOSqeVdt24Vz/joXoAXTbj+saGsNjN7MbuVfPntvfeP7FiKlsp8aIgf37fp70csori5zZVi5DolOyEFFliURCosoWQbftAfCDZdum+WH5mMLU2IH92ecrmfDMY4ElH8TfN2IYl0Fy9pWhw4RpaWkksWURtBY01KC6WqPp69Lni/Uxc4Imsns7Q7w8Bn27ZeWKZ2ahuwShgfIOESYk9e/WQG+qAABEajJYm6C5Uyd9lviySx9OzgVNjx5Ory187MDWN9AbV2lBL7oABpkKXEQPum0PuJsZZTe4k5NTcvSCba+r+rmy7HeCJnji2PIPNaGTxnMcJ3qjFr3bSPDHBWfQuhkAEL5iM+ve8BNGeR9KXz15/Ch2b0cDm0u989piV2f2ZacAHjeB3KUfERGBOKO+m4PeVAEAyCkqZ93xsnevntq3Xkp48cnevdjHYBDMC32odPtb94+RchwnUpOOWHSRMCEarVaLMEGwboH1sW7THriveOuq0V4ebGeHYqi7eO/mFaufU3CJEQIGiy4c6t9xET0AALVajV6sczE6AIAFM6Z8//6b8tFWtxeyYLSXR+ab/8nb8OrgAf05DrVq266conLEBTg8LjgjFot1Oh3iAqOpCb0hBc2wIQP3bFq+ShXOY5y5T+9eUXNDf81KfJRD+ziIobo+fAUqBUM8Fi1paWmIJBcAIC59N7smCAAAJyenl+eFFW99Y8TQwexGsMiEUV57U1dk/Pc51h0szURv1CKyEgAAjUZDElsIpFIpOhJvqKmP1KBSh2jGSoceynjzhfAQ1iN0pJ+r8xvK8J8y1z7ox75sGWKorkcrHkzChBiJHsDM6LDOjAIAvD3d97/73+ToBeJ+na5JbMewwQO2vBZZtl0T8ci/OA4FGIQEBc+DOgRyuTwzMxNxgaGG5muJpkePHrFPzzqc8eZDnA1Ezx49nnk08Jcdieui5g3gnDiDxbZoPUfChEzQ6XSItiuAW54UADDex6t0e/zKxXO4pyrGSO7dEb9Ex1MAMnqjFr3oIvXvTFCpVIh2heDuvgrW4zvf03vDywu/SV3h6+XJehDzUMuemkFlJ614ZhbHGDO4u+hCX4OJCcJL9MDFOjpJwSUzCgDo2bPHixFTf85c+8yjgezsTvjD9+9cu8yQ83bkY0Gsm3O3hTYkCLuq4PC44I9KpUInKQpLKdbNnyBjpUO/SXv9w1UvjBw2hMXbx/sM17wwV/9p0jvLFw91Z3kiUluYlNmS+neGiMXi/Px8dJKC9b4KiPM9vVdGzv7ho4Twh+9n8XY3lz6Lwqbkb3i1/EPNbJ7qhHL2laEVDwkTMkej0SD25QBu+yogD40f9cPHCSmvLBrqzsYpPOTnk6p+5rfPkte+9BT3FRcAoK7hIu2iKzMzE5MwofBb1tsBdU9ISIi17X8wM/p1ymssdpCaGSRye2f54g0vL9z/kyH/0C/f/fLblWs0Vix44th50yfPeXgi9zByW2hDggCA/Px8TB4XhyAtLY2iqEOHDlm7IDl7j5fHIHY7SM3MnTpp7tRJR6vrCr6v2PfjUdqWlUMHD3hy6qQF0yeP41aq3A6oeBB1GAAApVJJPBZz5HK5VqtFNNGA+yoOZazmchcvj0Hat166er352/KjubqfS/VV12/QHEnx6OQJ82dM5iW03BYmiy6dTkfq35mj1WpDQkL0eqvdK6JTsvx9vDhuknpuTvBzc4J/Ol7z1fe/HjxyvPLMefT1o708npz64Pzpk7mcbNMRJmUDSqUSn2pC7EQPAEAul6elpT37rNVTqww19eGxmznqHgCA8z295wTdPyfofgDAb6f/KDt6srbhwiWjqdFo6tmjx4hhQ7w9Bo0YOtjbY5DkXncuvU2twSQkmJmZSUp5Okt+fj6t0QEAcNQ9AIAJo7wnjPKOezbi6vXmH45V/3ri9F+XrzUar5mabwx1HyC5113i6S69193b091jICp+yZq49N1oxSOTyYji6SwKhSI1NdVa5x5wd1/Fuqh5HE1Q/74u86Y/NG/6QwAAqupMmeHk2T8bG6+aGo3X+zrfIx062NtjEPz/0ZzTGRYp0VfSLrp0Oh1ZdHUKGC+Uy+XWlu4AgPAVm7/eyLUdDgDgQT+fB/18APj3paum0qNVR0/W/3X56qWrpuabt4cPGTBi6GBvD3doiLicEGANR1x04Sh6AAAqlaq2ttZam13An+4xc9+IYRx3C3cWhiFBfASyAyEWi+FiC2F0+NI9kP59XcIe8g97yJ+X0RhCW4chk8nQxd0Ea6jVaoqirLXZBQDkFJUbas7yaIJgF11ehmKIobo+UpOBvgafrIRjIZVKdTrdxIlW84+wDm9rrJJL7/W2DOzvZl7D2w10jxUAQHBwMFaKB+BW09MWjUaD3sxlqKkPjkrkUt8jIIbq+uCodQ4UEnQ45HI57fFS0SlZHJPrAkKreCQSiU6nI6VgrNFqteh9FXDpxaW+R0BK9JVk0WVTaPdVGE1NkZp0BzVBRlNTeOwm9GZGmUyG4Rl/+IoewGAzV11DY/iKzQ6newpLKVpzg1tI0BEJCQlBGx0AQHRKFuumcwJCq3hI8Tsv0O6rcFDdk7OvjHbaMTExRPFwhHZfBXDMpRfMaqEbHMAwM4YmCGvRQ7uTAtwNEjqQ7snZVxapodn9gWFI0EFRqVToeCEAID23mHXfS/vzz+qQTvGQOgxeYLKf1FBTL4+McyATFJe+m7aOR6lUkubvvJCWlobezAUcTfcYquvlkXHorBTI88YAABIRSURBVBbc7oeh4gGYix5wNzOKvgbqHtZNw+xJ9EYtrbnBMyTouGi1WnR7eABATlG5Q+geQ3V9eCz9o56WlkYUD1/AfRXoaxxl6WU0NUVv1NK2eI2IiCCLLh6hzZMCAKJTshzCBDFJU2C+6MJd9AAGmVHgCMlRaG7QC3SAcUjQocnPz6c1OjlF5bQROGGB5ga9wAKkDsMGqFQqJiYIc90DUxJMTBBRPPwC44VMTBDmuodJmgJg32PFAUQPYGZ0AADRKVnJ2XvsMJ/OwtDc4BwSdGgYGp3CUio8lv35XDYlOXsPE3MTHx9PFI8tYK57MjgclWM7YIyQVjGTRZeNYK57sF16MUlTAEfoseIYogcw1j3JOwqClyRi5bcM1fXBUYm05gbzkKCjw9DoGGrqg6PWYeW3YBSTSRfp+Ph4claJ7WCoe1al78bNb8GNWkTxCAvzpZc8Mg6rag0mdYQQhwgzO4zoAQCoVKq8vDx0USHAzG8lZ+8Jjkqsa2hEXyaTySiKsqh4qqqq4uLinnrqKdtMsBvB0OhAvxUeuwkHvwUVMxMLmJmZSRSPrWG49MLHbxlNTXHpu5nsLyOKxw4wN0GRmvTojVocTFCJvpKJCRKJRNYUz6VLl7Zt2xYYGHj+PE3PaPvgSKIHAKBQKGg3UwA8/Jahuj54SSKTBTo0N+26vDc0NGzatGnixIljxoxJSkq6ceOGrSbanYBGh3YzBQCgRF8luN/KyC0OX7GZVjEjzA2Bd6DuYWKCBPdb0F3Rli0DACIiIojisQ8MdQ8AIKeoPDgqkcsB2xyBz3B4LCMTpNPp2pmgGzdu7Nq1a86cOZ6ensuWLSsvL/f0tElX8c7iYKIHACCXyxk+NEL5Lbi6YpLSAh0WWNeuXcvMzJw+ffqwYcNiY2Mp6p/JDxnC5mxLQkdgHwTafezg7ndekFRFib4yeEniqvTdtLe2aG4INkWlUjFZegHh/BZzdwUAUCqVpKWTPYG6h4kJgqe8CdJIbGdROUPv2a4wo6WlZf/+/SqVasiQIQsWLNizZ8/t27cBAAMHDnRycrLtpJnheKIH3NU9TNbr9vdbzFdXAAClUklRlFgsvn379ldffTVv3rwhQ4Y899xzxcXFLS0tba/08PCwzXy7KVqtlkmeAgBQWErZ02/BXX5Mak4BqQMTDuZLL/v7rU4l1+Lj48leLfsDz8mh7VsISc8tDl5iv7MH6houhsduWsYsSNm2MOOXX3557bXXhg8fHhYWlpWVde3atbZX4uPCHEb0REdHL1iwYO/evXfu3AF31+vx8fFM3gutQHL2HptKn06trgAAmZmZmZmZJSUlS5Ys8fT0VCgUn3/+ubU0Fon08A7DEjFw12+Fx26ytfTJyC2WR8YxKRgEAAQHB9fW1hLFIxTMdQ8AID23WB65ytYmCLorhms8kUiUl5dH6sDsxldffRUQEJCenn758mX4m7S0NIZLL3jmUvRGra336GTkFgdHrUO3WjajVCp1Op2Tk1NiYuK4ceMeeOCB1NRUa4U7+LgwTA8cbceNGzeysrJMJtOuXbs8PDyefvrpBQsWTJo0SaPRyOVylUqFOFcSYjQ1Je8oyMgtXhQ25aUnpnl7uvM4vbqGi+/nHcwpKmdo0UQiUVZW1o8//iiVSuvq6pi8BZNsaBcDloipVCrEeexmSvRVJfrNQTLf1yNnB8nG8DsTeNg1Q7kMAIiJiSENcwVHLBZTFKVWq7ds2UJ7cV1DIzRBS+aGLnliGl/HlN4d/OKG7D2FZXqGJgg24yGK2Z7s2LGjvLy8vLxcrVbPmjUrMjJy1qxZKpVKKpUqFApaFwYAyCkqzykqt4UJMpqa9pbpk7MLmJugxMTEAQMGzJo1q6yMUXs8Ino6R35+vslkgv/9559/bt68efPmzWPHjo2MjIyMjGTut4ympvTc4vTc4kVhU16PnM1d+pToK9/PO9ipsqF7773X3d1doVB06kbu7nyqNIIZuF5Xq9WI87TbAqWPv4/XkrmhC8OmcLw7tDUZucVMklkQ2Myps88PwXakpaWFhIQwWXqBNquvJXNDF86YzN0E7S2jMnKLGS7NIbDhMinisSdXrlwpKPhnU8utW7fy8vLy8vIGDBgwf/78yMjI2tpahUJx6NAhJkPxu/rq7IodAODi4iKXyxMSEmCxDkOI6OkcFh3SiRMn4uLi4uLiHnnkEaVSeeDAgb179zIcEEpm1tKHhS42c/78eRY79/BJiHY9YH49JCRErVYz8VsAAENN/bKN2uTsgpWRc9hJnxJ95WdF5QwzWWbgoWztNvoRBEehUFAUpVAomCy9wF3pk7yjgIsJ2llUnpFX3CkTJBKJNBqNWq3u7O0IHMnJyekoES5fvpyRkZGRkeHt7a1UKmUy2TvvvMNwQLP0WRgWwNoEdXbFDgDo0aNHc3NzeXnnDBfAyYU5gOj5888/v/32W8QFhw8fPnz4sLOz84MPPnjs2LGmJqaKFUoffx+vIJnv4wHyQJkv7VtK9VV7y6hO6WJewEcmd1VUKhVMlTL0WwCAuobGZRu1q9J3zwqQBcrGBE4YTeu92PkqQNwV9kilUoqiNBpNQkIC83eZTdDjgfLHp8j8R3mhrzeamo7VnN1ZVNZZuQzuHupHFLMg7NixA/FqXV3d2rVrAQB+fn7nz5+/dOkSw2FL9FUl+qrk7IKgCb6BsjGPB8ho06aG6vpjp86yW7EDANrtsGEOPhUamIqeGzdulJSUHDhw4MCBAxUVFQzf8tNPPwEAnJ2dO9XVxlBTb6ipT88tFrm5Bsl8Ayf4Ph4gM3uvuoaLpUdPHqupL9FXMc9B8IuTkxM+MrkLI5fLKYpKS0vTaDQMQz4AAKOpKeduzMaigC7VVxlq6kuPVhlq6tkZGhLgcRQ0Go1CoeiUdAZ3TVDyjgJogh4PkLcV0NBLleorDTVnWZsg0q3bzrS2th49evTAgQP79+///vvvGS7Fjx8/DgDo2bMn3K/DkLqGxpyG/5mgdgLaaGoqPVplqDlbqq/sVBqUXzCq0Gil45tvvun4rk8//ZT2jaxBx3Xsg7fnoCCZL7/Fhqxxd3e33afd2to6e/bsjjflcfyO7RkefPBBHsfnndOnT9MezE5LkMzX34dm4U6LSCRKTU0V+vOgYf/+/R1nHhsby9f4FtuRl5eX8zW+LUhNTWWyMRABFNBcRoAEBwdXVFQI/XnQcN9997Wbdo8ePXgcv+PHsmDBAh7H78jAgQO5/+24AAW0t+cgYadhpqyszHaf9gcffNDxjhcuXLB4MY5b1nHYU1DX0Fiir8KhCzgguS27I5VKdTpdXl6eRCJhPQj30CBs40RSWo6IWq2mKIpJAzprGGrqOa7LJRJJXl4e6eQkCN7e3sJOwGhqKtFXsQst2wJ8vBiOosfDw8PXl4clTpcBn8elW6FQKGprazMzM7lIH3YolcrTp0+TlJZDI5VKtVptRUUF96hhZxGJRPHx8XBPkJ1vTYBMnz5d6CngBT5eDEfRAwAIDQ0VegoYgc/j0g1RqVQURcXHx3PMVjCEyJ0uBuyJ8N1339lH+pjlDqngERbiwtrSu3fvfv36CT2LfyCixwEgVczCIhaLNRqNraM+RO50YUJCQqD04ZLwQiORSDIzM6HcIT14BGfq1Km9emG6T8j+DB06VOgp/A9MRc+0adOEngJGENGDA2KxWKVS1dbW8uu6ZDJZamoqkTvdgZCQEK1We/ny5fj4eB7Vc0RERF5eXm1trUqlInIHE/r06RMYGCj0LHABn/3qAFvRM2DAgPvvv1/oWeACET1YAV3X6dOnU1NTmZx6axGJRBITE1NRUQFLlYnc6T6YA4d5eXlKpZJ12lQmk2VmZl6+fDk/P5/U7mDI1KlThZ4CLgwePFjoKfwPfONv06dP//XXX4WeBRaQmh4MkUqlarVarVZfuXIlPz8/Pz9fp9Ohu/uIRCK5XB4SEqJQKMiGGoJCoYBihaIorVar0+lou/tIJBL4/ISEhJCgDubMmDGDVFZBsFq3Yy16NmzYIPQssICIHpyBaS+VSgUAoChKp9PB/z9z5oxEIpG3gYRzCBaRy+Xw+NgrV66Ynx94ElNwcLBUKpVKpSEhIfA/BJ4rgTEBAQF9+/a9fv260BMRHiJ6GDFjxgyhp4ALWMUGCQiguBF6FgRHRSwWm8M/hC5ASEhIYWGh0LMQHozaMWNb0wMJCQkRegpYgFUVGIFAIBCYQLr1QLByYViLHrJxHQDg6urat29foWdBIBAIhM5BXBgEqwoNInpwB6vHhUAgEAgM8ff3JwYcYFbTg7XomTRpEglykIIeAoFAcFBIkQYgNT3M6dWrF2l1gFU2lEAgEAjMITtyAGZeDGvRA0iGi0R6CAQCwWEhpwtgFeYBRPTgD1YamUAgEAjMGTlypO0O7HMIsCroAfiLHn9/f9x0op0hdXAEAoHguHTzDBduogff5oRmZsyYsXPnTlvfZdy4cWPHjh03bhwA4NixYxUVFfX19ba+KRNwe2IIBAKBwJzQ0NAPP/zQ1ncZNmyYn5+fn59f//79T506RVGUwWCw9U2ZgNu63QFEz7Rp0/gVPc7OzmPGjLnvLuPGjRs9enSvXu0/isuXL//6668Vd6mqqrpz5w6P02BINw90EQgEgkMzc+ZM3sf08vLy8/ODLgxqnX79+rW75ubNmwaDwezCjh492tTUxPtMaMGtLNUBRE9YWBiXt7u4uEBlAx8OKHGYvHHAgAGhoaHmoqLm5ma9Xg9lEEVRR44c4TIr5pBID4FAIDguAwYM8Pf35xJ38fb2hs4LCp3x48e7ubnRvqtPnz4PPPDAAw88YP7N8ePHKYqqqKjQ6/W//PLL5cuXWU+JObi5MAcQPd7e3iNHjjx16hSTi/v162cO4fj5+Y0dO3bEiBG8TMPFxWXy5MmTJ082/+bo0aMURVEU9euvv1IUhT5hmzW4xQYJBAKB0ClCQ0OZix6JRAKVDVyrjx8/nq9+dTAm9PTTT8Mfz5w5A9UPDAWdPXuWl7u0AzcX5gCiBwAQGhpqUfQMHDjwvv/PsGHD7DarCRMmTJgwYfHixfDH06dPV7Th3Llz3G/h5OSE2xNDIBAIhE4RGhqalpbW8fdOTk5SqRTGb8zpKldXV/vMSiKRSCSS8PBw+OOlS5fMFR0URVVWVra0tHC/C24uzDFEz4wZM7Zv3w4AkMlkY8aM8fPze/jhh8eNG4fVdu4RI0aMGDFi7ty58McLFy6YFXRFRUV1dTWLMQcPHuzk5MTrNAkEAoFgV6ZOndqrV6+WlpYRI0aY9Q3MWLm4uAg9u38YOHDg9OnTzYekNjU1HT161OzCDAbDzZs3WQxLRA8bHnvsscrKSl9fX6En0gkGDx786KOPPvroo/BHk8kEk6mQ48eP3759m8kgNp4mgUAgEGxL3759KYry8fFxdnYWei5McXV1bVfRodfr21Z0XL16lck4WMUmgKOIHjc3N8dSPB1xc3MLCgoKCgqCP966dev48eNmDaTX600mU8d34aaRCQQCgcACPz8/oafAFZlMJpPJlEol/PHUqVNtKzrOnz9v8V24Ld0dQ/R0Pe65556JEydOnDgR/tja2nry5Mm2D9CFCxcAET0EAoFAwJKRI0eOHDnyySefhD/+9ddfbZu81NTUtLa29u7dm8lGM3tCRA8WODk5+fr6+vr6zp8/H/7m7Nmzer2+d+/ewk6MQCAQCARahgwZ0rai49q1a6yLWW0KS9Gzdu3a999/n9+pECyybt06W9/i2LFjtr5FO37//ffg4GA735RgI+zT7aMdUVFR/fv3t/99CbagtrbWzncsLi4mJsg+ZGVl2foW1jJrFmEpek6cOHHixAl27yUQrl27dvjwYaFnQXBgKIoSegoEB+bChQuwhIDQ3cD9wFECgUAgEAgEXiCih0AgEAgEQreAiB4CgUAgEAjdAiJ6CAQCgUAgdAvoC5k9PT3JSQjdDX47o4vF4itXrvA4IAF/eOwm6u/v/+WXX/I1GsEhcHd353E0Z2dndkcoEBwXa0eYObW2ttp5KgQCgUAgEAj2h6S3CAQCgUAgdAuI6CEQCAQCgdAtIKKHQCAQCARCt4CIHgKBQCAQCN0CInoIBAKBQCB0C4joIRAIBAKB0C0goodAIBAIBEK3gIgeAoFAIBAI3QIieggEAoFAIHQL/g+lpBcJK8agyQAAAABJRU5ErkJggg=="}}},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"6. Programmer un pierre-feuille-ciseau. \n\nDéroulé du programme:\n\n- L'utilisateur choisit un nombre entre 0 (pierre), 1(feuille), 2(ciseau).\n- L'ordinateur choisit au hasard un nombre en 0 et 2 (vous pourrez utiliser `randint(0, 2)` pour faire cela.\n- L'ordinateur détermine qui a gagné la partie"},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"}},"nbformat":4,"nbformat_minor":2} diff --git a/2nd/06_Programmation/4B_boucle_for.pdf b/2nd/06_Programmation/4B_boucle_for.pdf new file mode 100644 index 0000000000000000000000000000000000000000..14979c5f1d269569ab8cb7f30ff62fb0ec5c581b GIT binary patch literal 17942 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 literal 0 HcmV?d00001 diff --git a/2nd/06_Programmation/4B_boucle_for.tex b/2nd/06_Programmation/4B_boucle_for.tex new file mode 100644 index 0000000..46b0420 --- /dev/null +++ b/2nd/06_Programmation/4B_boucle_for.tex @@ -0,0 +1,54 @@ +\documentclass[a4paper,10pt]{article} +\usepackage{myXsim} + +\author{Benjamin Bertrand} +\title{Programmation - Cours} +\date{Février 2022} + +\pagestyle{empty} + +\begin{document} + +\maketitle +\setcounter{section}{3} + +\section{Boucle \lstinline{for}} + +Quand on veut \textbf{faire} quelque chose un nombre de foi \textbf{connus}, on utilise une boucle \lstinline{for}. + +\begin{multicols}{2} + \begin{minipage}{0.8\linewidth} + \begin{lstlisting} +for i in range(3): + print("Coucou")\end{lstlisting} + Le programme va afficher + \vspace{2cm} + \end{minipage} + + \begin{minipage}{0.8\linewidth} + \begin{lstlisting} +somme = 0 +for i in range(4): + somme = somme + i +print(somme)\end{lstlisting} + Le programme va afficher + \vspace{1cm} + + Tableau des variables + + \begin{center} + \begin{tabular}{c|c} + i & somme \\ + \hline + & \\ + & \\ + & \\ + \end{tabular} + \end{center} + + \end{minipage} +\end{multicols} + +\afaire{Prévoir ce que vont afficher ces deux programmes et compléter le tableau des variables} + +\end{document} diff --git a/2nd/06_Programmation/4E_boucles_for.ipynb b/2nd/06_Programmation/4E_boucles_for.ipynb new file mode 100644 index 0000000..a5de344 --- /dev/null +++ b/2nd/06_Programmation/4E_boucles_for.ipynb @@ -0,0 +1 @@ +{"cells":[{"metadata":{},"cell_type":"markdown","source":"# Étape 4: boucle for\n\nCe TP commence par la partie 1. Ensuite les autres parties peuvent se faire dans l'ordre que vous voulez."},{"metadata":{},"cell_type":"markdown","source":"## 1- Faire la même chose plusieurs fois, une belle punition\n\nBob n'a pas été sage, il a encore essayer de scotcher son voisin de classe sur sa chaise. Son professeur a une idée très originale pour le punir : lui faire recopier 100 fois \"je ne dois pas scotcher mon voisin sur sa chaise\". Alors Bob commence"},{"metadata":{"trusted":false},"cell_type":"code","source":"print(\"je ne dois pas scotcher mon voisin sur sa chaise\")\nprint(\"je ne dois pas scotcher mon voisin sur sa chaise\")\nprint(\"je ne dois pas scotcher mon voisin sur sa chaise\")\nprint(\"je ne dois pas scotcher mon voisin sur sa chaise\")\nprint(\"je ne dois pas scotcher mon voisin sur sa chaise\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Mais il en marre. Alors il se rappelle qu'il peut sans effort utiliser une boucle `for` pour cela."},{"metadata":{"trusted":false},"cell_type":"code","source":"for i in range(10):\n print(\"je ne dois pas scotcher mon voisin sur sa chaise\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"1. Modifier le programme précédent pour qu'il réalise la punition de Bob."},{"metadata":{},"cell_type":"markdown","source":"Bien sûr l'enseignant est fou de rage. Il lui demande de réécrire 100 fois \"Moi Bob, je suis un gros malin et j'utiliser la programmation\" mais cette fois ci entre 2 lignes il doit y avoir une ligne de tirés (\"---------\").\n\n2. Réaliser la punition de Bob"},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Encore raté, l'enseignant ne sait plus comment construire une vraie bonne punition pour ce plaisantin. Mais il a une idée, il va lui demander de numéroter ses lignes de punition. Il veut des phrases du genre \"C'est la phrase numéro 10, il me reste encore 90 lignes à faire\".\n\nBob se rappelle alors qu'il peut utiliser la variable `i` pour compter le nombre de répétition. Il écrire alors"},{"metadata":{"trusted":false},"cell_type":"code","source":"for i in range(4):\n print(\"Je repète \", i, \" fois\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"3. Recopier et modifier le programme de Bob pour réaliser sa punition."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## 2- Dessins ASCII\n\nLe but de cette partie est de réaliser des dessins avec des chaines de caractères.\n\nQuand on multiplie une chaine de caractères (par exemple \"#\") par un entier (par exemple 4), python va répéter la chaine de caractères.\n\nQuelques exemples:"},{"metadata":{"trusted":false},"cell_type":"code","source":"print(\"#\"*4)\nprint(\"-\"*10)\nprint(\"_\"*3, \" \"*2, \"-\"*5)","execution_count":1,"outputs":[{"name":"stdout","output_type":"stream","text":"####\n----------\n___ -----\n"}]},{"metadata":{},"cell_type":"markdown","source":"On peut utiliser des boucles pour faire ensuite des motifs"},{"metadata":{"trusted":false},"cell_type":"code","source":"for i in range(5):\n print(\"-\", \"#\"*i)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"1. Réaliser le motif suivant:\n\n\n -\n --\n ---\n ----\n -----\n ------\n -------\n --------\n --------- "},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. Réaliser le motif suivant\n\n \n ##\n ####\n ######\n ########"},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"3. Réaliser le motif suivant\n\n ######\n #####\n ####\n ###\n ##\n #"},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"4. Réaliser le motif suivant\n\n\n #\n ##\n ###\n ####\n #####\n ######\n #####\n ####\n ###\n ##\n #"},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"5. Réaliser le motif suivant\n\n # \n ### \n ##### \n ####### "},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## 3- Calculer des images à pelle\n\nOn définit la fonction \n$$ f(x) = 2x - 1$$\nOn veut calculer les valeurs de $f(0)$, $f(1)$ jusqu'à $f(10)$. C'est une tache répétitive,on va pouvoir utiliser une boucle `for`"},{"metadata":{"trusted":false},"cell_type":"code","source":"for x in range(11):\n print(\"f(\", x, \")=\", 2*x-1)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"1. Calculer les images pour $x$ allant de 0 à 20 par la fonctin $g(x) = 4x^2 - 5x - 1$ (en python la puissance s'écrit avec `**`)."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. Calculer les images pour $x$ allant de -10 à 0 par la fonctin $h(x) = -x^2 + x - 1$ "},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"3. Pour x allant de -100 à 100, quelles sont les valeurs de $x$ qui ont une image positive par la fonction $i(x) = -x^2 + 600$."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## 4- Accumulateurs\n\nDans le programme suivant, on veut ajouter tous les nombres de 0 à 100."},{"metadata":{"trusted":false},"cell_type":"code","source":"somme = 0\nfor i in range(101):\n somme = somme + i\nprint(somme)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"1. Adapter le programme pour qu'il fasse la somme des nombres de 50 à 100."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. Adapter le programme pour qu'il fasse le produit des tous les nombres de 0 à 100."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"3. On veut ajouter tous les nombres de 0 à 100 qui sont paires. Écrire le programme qui correspond."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"4. Écrire un programme qui fait la somme de tous les multiples de 5 de 0 à 1000."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## 5- Plusieurs boucles\n\nOn veut énumérer les points du plan qui ont des coordonnées entières comprises entre -5 et 5. Pour cela il va falloir faire une boucles pour les abscisses (x), une boucle pour les ordonnées (y) et les imbriquer."},{"metadata":{"trusted":false},"cell_type":"code","source":"for x in range(-5, 6):\n for y in range(-5, 6):\n print(\"(\", x, \",\", y,\")\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"1. Lister tous les points à coordonnées entières qui ont une ordonnée égal à 2 (on note $y = 2$)."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. Lister tous les points à coordonnées entières qui sont sur $x = -2$."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"3. Lister tous les points à coordonnées entières qui sont sur $x = 2y$."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"4. En informatique, on peut coder une couleur en RGB (rouge, vert, bleu). Ce sont 3 nombres compris entre 0 et 255 mis sous forme de coordonnée.\n\nÉcrire un programme qui liste toutes les couleurs RGB possibles."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.10.2"}},"nbformat":4,"nbformat_minor":2} diff --git a/2nd/06_Programmation/5B_boucle_while.pdf b/2nd/06_Programmation/5B_boucle_while.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c40d9b508ee75845e517e8a137bd9d0e68ab80d5 GIT binary patch literal 18247 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 ZOA?DpDu8WDE<+1*Q)4bwRabvEE&y{75=j66 literal 0 HcmV?d00001 diff --git a/2nd/06_Programmation/6B_fonctions.tex b/2nd/06_Programmation/6B_fonctions.tex new file mode 100644 index 0000000..4fc7e51 --- /dev/null +++ b/2nd/06_Programmation/6B_fonctions.tex @@ -0,0 +1,62 @@ +\documentclass[a4paper,10pt]{article} +\usepackage{myXsim} + +\author{Benjamin Bertrand} +\title{Programmation - Cours} +\date{Février 2022} + +\pagestyle{empty} + +\begin{document} + +\maketitle +\setcounter{section}{5} + +\section{Fonction - \lstinline{def/return}} + +Une \textbf{fonction} en informatique est un sous programme à qui on va donner des paramètres (entre parenthèses) et qui retournera une valeur. + +\bigskip + +Fonction similaire aux fonctions en maths: +\smallskip + +\begin{minipage}{0.4\linewidth} + \begin{lstlisting} +def f(x): + return x^2 + 2 + +print(f(3)) +print(f(-1))\end{lstlisting} +\end{minipage} +\hfill +\begin{minipage}{0.5\linewidth} + + Le programme va afficher + \vspace{2cm} +\end{minipage} + +Fonctions qui décorent du texte + +\begin{minipage}{0.55\linewidth} + \begin{lstlisting} +def decore(texte): + return "*"*4 + texte + "*"*4 + +def belledeco(texte, decoration): + return decoration*5 + texte + decoration*5 + +print(decore("Coucou c'est moi")) +print(decore("Je suis trop beau!")) + +print(belledeco("Coucou c'est moi", "=")) +print(belledeco("Je suis trop beau!", "a"))\end{lstlisting} +\end{minipage} +\hfill +\begin{minipage}{0.4\linewidth} + + Le programme va afficher + \vspace{3cm} +\end{minipage} + +\end{document} diff --git a/2nd/06_Programmation/6E_fonctions.ipynb b/2nd/06_Programmation/6E_fonctions.ipynb new file mode 100644 index 0000000..d2ad85c --- /dev/null +++ b/2nd/06_Programmation/6E_fonctions.ipynb @@ -0,0 +1,42 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b4d60a66", + "metadata": {}, + "source": [ + "# Étape 6: fonctions\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1d71067c", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/2nd/06_Programmation/7E_simulation.ipynb b/2nd/06_Programmation/7E_simulation.ipynb new file mode 100644 index 0000000..e985713 --- /dev/null +++ b/2nd/06_Programmation/7E_simulation.ipynb @@ -0,0 +1,259 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0078371d", + "metadata": {}, + "source": [ + "# Simulation\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "208f5bbc", + "metadata": {}, + "source": [ + "## Simulation d'une marche aléatoire\n", + "\n", + "On se pose la question suivante:\n", + "\n", + " Une puce est sur une règle et fait 10 sauts de 1cm à droite ou à gauche aléatoirement. On veut savoir la chance a-t-elle de revenir à son point de départ.\n", + " \n", + "Comme nous n'avons pas de puces sous la main, nous n'avons d'autre choix que de simuler la situation avec un ordinateur." + ] + }, + { + "cell_type": "markdown", + "id": "6f6f1e1f", + "metadata": {}, + "source": [ + "### Algorithme\n", + "\n", + "Avant de se lancer dans la programmation, vous allez écrire l'algorithme pour faire cette simulation. C'est à dire la \"recette\" pour simuler les 10 sauts de la puce.\n", + "\n", + "Pour cela, mettez vous à deux. Tracez un axe gradué. Une personne simule la puce pendant que l'autre va devoir lui dire ce qu'elle doit faire. La personne qui simule doit être la plus bête possible et ne faire que ce que l'autre lui dit de faire.\n", + "\n", + "Une fois que les indications sont assez explicite, vous les écrirez avec une phrase par ligne et en utilisant les mots ou expressions suivantes\n", + "\n", + "- Affecter ... à la variable ...\n", + "- Afficher/dire\n", + "- Si ... Alors ...\n", + "- Pour ... allant de ... à ... faire ...\n", + "- Tant que ... faire ...\n", + "\n", + "Vous aurez écrit votre algorithme." + ] + }, + { + "cell_type": "markdown", + "id": "cdcc41de", + "metadata": {}, + "source": [ + "### Simulation\n", + "\n", + "A vous de traduire votre algorithme en language Python. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "173d77ec", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "0da2a635", + "metadata": {}, + "source": [ + "### Droite ou gauche?\n", + "\n", + "Ici, nous allons voir comment simuler le choix de la puce d'aller à droite ou à gauche.\n", + "\n", + "En python, nous avons la fonction `random()` qui permet d'avoir un nombre aléatoire entre 0 et 1." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "27f496f9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.2629111349482097" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from random import random\n", + "random()" + ] + }, + { + "cell_type": "markdown", + "id": "a59f232c", + "metadata": {}, + "source": [ + "On veut que la puce ait autant de chance de faire un saut à gauche qu'un saut à droite.\n", + "\n", + "1. En utilisant `random()`, écrire un programme qui affiche la direction choisi de façon aléatoire." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4bfbd25a", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "e1fba5c0", + "metadata": {}, + "source": [ + "2. Pour pouvoir réutiliser votre programme facilement, vous allez pouvoir le mettre dans une **fonction**. Pour cela réécrire votre programme à la place des ... dans la cellule en dessous et remplacer les `print` par `return`." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "638becc3", + "metadata": {}, + "outputs": [], + "source": [ + "def droite_ou_gauche():\n", + " ..." + ] + }, + { + "cell_type": "markdown", + "id": "3d2d67c2", + "metadata": {}, + "source": [ + "Vous pouvez maintenant utiliser cette fonction à n'importe quel endroit dans vos programmes." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "a570e33e", + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'droite_ou_gauche' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Input \u001b[0;32mIn [3]\u001b[0m, in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mdroite_ou_gauche\u001b[49m()\n", + "\u001b[0;31mNameError\u001b[0m: name 'droite_ou_gauche' is not defined" + ] + } + ], + "source": [ + "droite_ou_gauche()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "a0ebbe56", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Où pourrais-je bien aller?\n" + ] + }, + { + "ename": "NameError", + "evalue": "name 'droite_ou_gauche' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Input \u001b[0;32mIn [4]\u001b[0m, in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mOù pourrais-je bien aller?\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m----> 2\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[43mdroite_ou_gauche\u001b[49m())\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mC\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mest une super idée!\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "\u001b[0;31mNameError\u001b[0m: name 'droite_ou_gauche' is not defined" + ] + } + ], + "source": [ + "print(\"Où pourrais-je bien aller?\")\n", + "print(droite_ou_gauche())\n", + "print(\"C'est une super idée!\")" + ] + }, + { + "cell_type": "markdown", + "id": "a7e6c362", + "metadata": {}, + "source": [ + "## Simulation de 10 000 marches aléatoires de puces\n", + "\n", + "Ici, vous allez devoir simuler 10 000 marches aléatoires vu dans la partie précédente et compter le nombre de fois que la puce termine à son point de départ.\n", + "\n", + "1. Mettre le programme qui simule la marche aléatoire dans la fonction ci-dessous à la place des ... . Vous remplacerez le `print` qui affiche où la puce termine par un `return` " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "9992a1aa", + "metadata": {}, + "outputs": [], + "source": [ + "def saut_de_puce():\n", + " ..." + ] + }, + { + "cell_type": "markdown", + "id": "a0a40d9d", + "metadata": {}, + "source": [ + "2. Simuler 10 000 saut_de_puce et compter le nombre de fois que la puce revient au point de départ." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cdfde180", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/2nd/06_Programmation/code/momie.py b/2nd/06_Programmation/code/momie.py new file mode 100644 index 0000000..b0e2ef7 --- /dev/null +++ b/2nd/06_Programmation/code/momie.py @@ -0,0 +1,29 @@ +# Programme de la momie - tiré du livre les maths ensembles et pour chacun +from random import randint + +def choisir_porte(nombre_portes): + print("Il y a " + str(nombre_portes) + " portes devant toi.") + porte_choisie = int(input( "Laquelle ouvres-tu?")) + return porte_choisie + + +nombre_portes = 3 +points_de_vie = 5 +score = 0 +degat_momie = 3 + +while points_de_vie > 0: + print("Tu arrives dans un long couloir et tu avances. Jusqu'à ce que...") + porte_momie = randint(0, nombre_portes) + porte_choisie = choisir_porte(nombre_portes) + if porte_choisie == porte_momie: + print("Une momie attaque!") + for i in range(degat_momie): + print("Elle te touche une fois") + points_de_vie = points_de_vie - 1 + else: + print("Rien! Tu as survécu à une porte en plus.") + score = score + 1 + +print("T'es mort. Tu n'as plus de points de vie.") +print("Le jeu est fini, ton score est de ", score) diff --git a/2nd/06_Programmation/index.rst b/2nd/06_Programmation/index.rst new file mode 100644 index 0000000..e69de29 diff --git a/2nd/index.rst b/2nd/index.rst index 5ca0017..c3a10e9 100644 --- a/2nd/index.rst +++ b/2nd/index.rst @@ -37,12 +37,6 @@ Période 1 Variation absolue et relative -.. big_button:: - :title: Vecteurs hors repères - :link: ./05_Vecteurs_hors_repere/ - - Découverte des vecteurs comment représentation d'une translation ou d'une force. - .. big_button:: :title: Calcul littéral :link: ./03_Calcul_littéral/ @@ -52,5 +46,14 @@ Période 1 Période 2 ========= -- Programmation -- Vecteurs hors repères +.. big_button:: + :title: Vecteurs hors repères + :link: ./05_Vecteurs_hors_repere/ + + Découverte des vecteurs comment représentation d'une translation ou d'une force. + +.. big_button:: + :title: Programmation + :link: ./06_Programmation + + Découverte de la programmation python