ó
    ¼)Òj  ã                   óš   • S r SSKrSSKJr  SSKJr   SSKJr  1 Skr	SSS	S	S	S	S
SSSS.
r
/ SQrS rS rS rS rS rg! \ a    0 r N/f = f)a'  French -> English hover translations for every French string in the curriculum.

Order of lookup: hand-written sentences (en_sentences.SENT) -> templates for generated instructions ->
article + word from the lexicon -> lexicon. build() returns {normalised French: English}; missing() lists gaps.é    Né   )ÚLEX)ÚSENT)ÚMACHINE>#   ÚBobÚLucÚTomÚAnnaÚJillÚKiraÚAnnieÚBrunoÚCarlaÚDavidÚFridaÚMarieÚOscarÚRobinÚSamiaÚWendyÚGalinaÚMistouÚNicoleÚPamelaÚSimoneÚUrsulaÚVictorÚXavierÚYaseenÚQuentinÚYasminaõ   ZoÃ©õ   RenÃ©õ   HervÃ©õ   IrÃ¨neõ   Ã‰milieõ   Madame Ã‰milieúMadame RoseúMadame SimoneÚaÚtheÚsomeÚtwoÚheÚshe)
ÚunÚuneÚleÚlazl'ÚlesÚdesÚdeuxÚilÚelle))u"   J'observe, j'Ã©coute et je retienszI look, I listen and I remember)zJ'entoure les (\w) \((\w)\)zI circle the letters \1 (\2))z+Je touche toutes les lettres (\w) et (\w)\.z I tap all the letters \1 and \2.)z0Je colorie les (\w) en rouge et les (\w) en vertz$I colour the \1 red and the \2 green)z7Les (\w) \((\w)\) en rouge, les (\w) \((\w)\) en vert\.z)The \1 (\2) in red, the \3 (\4) in green.)z0J'entoure les images qui contiennent le son (\w)z/I circle the pictures that contain the sound \1)z2Je touche les images qui contiennent le son (\w)\.z-I tap the pictures that contain the sound \1.)u0   Je complÃ¨te avec (\w) \((\w)\) ou (\w) \((\w)\)z"I complete with \1 (\2) or \3 (\4))z+Je choisis la bonne lettre : (\w) ou (\w)\.z$I choose the right letter: \1 or \2.)z3Je m'amuse : j'entoure la lettre (\w) dans les motsz-Fun time: I circle the letter \1 in the words)z&J'entoure la lettre (\w) dans les motsz#I circle the letter \1 in the words)u4   Je touche la lettre (\w) dans chaque mot illustrÃ©\.z)I tap the letter \1 in each picture word.)z*Je touche la lettre (\w) dans chaque mot\.z!I tap the letter \1 in each word.)z-Je trace (\w) (\w) (\w) (\w) avec mon doigt\.z#I trace \1 \2 \3 \4 with my finger.)zLes lettres (\w) et (\w)zThe letters \1 and \2)u    Bilan : L'alphabet (\w) â€“ (\w)u   Review: the alphabet \1 â€“ \2)u   L'alphabet (\w) â€“ (\w)u   The alphabet \1 â€“ \2)z([A-Za-z]) ([A-Za-z])zthe letter \1 \2)zJe chante : (.+)z
I sing: \1)u   Â« (.+) Â» veut dire :u   Â« \1 Â» means:c                 óÂ   • U R                  SS5      R                  SS5      n [        R                  " SSU 5      n [        R                  " SSU 5      R                  5       $ )Nu   â€™Ú'u   ðŸ”ŠÚ z0[\U0001F000-\U0001FFFF\u2600-\u27BF\uFE0F\u200D]z\s+Ú )ÚreplaceÚreÚsubÚstrip)Úss    Ú%F:\Yaseen\AI\French2\curriculum\en.pyÚnormrC   ,   sN   € Ø	�	‰	�%˜Ó×%Ñ% f¨bÓ1€AÜ
�ŠÐBÀBÈÓJ€AÜ�6Š6�&˜#˜qÓ!×'Ñ'Ó)Ð)ó    c                 ó°  • [        U 5      nU(       d  g U[        ;   a	  [        U   $ UR                  S5      [        ;   a  UR                  S5      S-   $ [        R
                  " SU5      (       a  U$ [         H9  u  p#[        R
                  " X!5      (       d  M"  [        R                  " X#U5      s  $    UR                  5       R                  S5      nU[        ;   a	  [        U   $ [        R                  " SU5      =(       d    [        R                  " SU5      nU(       aM  UR                  S5      [        ;   a4  [        UR                  S5         S	-   [        UR                  S5         -   $ [        R                  " S
U5      nU(       a4  UR                  S5      [        ;   a  S[        UR                  S5         -   $ [        R                  " U5      $ )NÚ.z	 (a name)z[\d\s]+z !?.z*^(une|un|les|le|la|des|deux|il|elle) (.+)$z
^(l')(.+)$é   r   r<   z
^___ (.+)$z___ )rC   r   ÚrstripÚNAMESr>   Ú	fullmatchÚTr?   Úlowerr   ÚmatchÚgroupÚARTr   Úget)rA   ÚkÚrxÚenÚlowÚms         rB   ÚlookuprV   2   sR  € ÜˆQ‹€AÞØØŒDƒyÜ�A‰wˆØ‡x�x�ƒ}œÓØ�x‰x˜‹}˜{Ñ*Ð*Ü	‡|‚|�J ×"Ñ"Øˆß‰ˆÜ�<Š<˜×ÓÜ—6’6˜" !Ó$Ò$ñ ð �'‰'‹)×
Ñ
˜6Ó
"€CØ
ŒcƒzÜ�3‰xˆÜ
�ŠÐ>ÀÓD×dÌÏÊÐQ^Ð`cÓHd€AÞˆQ�W‰W�Q‹Zœ3ÓÜ�1—7‘7˜1“:‰ Ñ$¤s¨1¯7©7°1«:¡Ñ6Ð6Ü
�Š� Ó$€AÞˆQ�W‰W�Q‹Zœ3ÓØœ˜AŸG™G A›J™Ñ'Ð'Ü�;Š;�q‹>ÐrD   c                 óL   ^^^• 1 Skm[        5       mSUUU4S jjmT" U 5        T$ )N>   ÚqÚfrÚbankÚruleÚtextÚwordÚinstrÚlabelÚrtextÚtitleÚwordsÚanswerÚpromptÚchoicesÚdesc_frc                 ó¸  >• [        U [        5      (       a"  U R                  5        H  u  p#T" X25        M     g [        U [        5      (       a  U  H  nT" X15        M     g [        U [        5      (       af  UT;   a_  U R                  S5      (       dH  [        R                  " SU 5      (       d+  [        U 5      S:”  a  TR                  [        U 5      5        g g g g g g )NÚ_cz[\u0600-\u06FF]r   )Ú
isinstanceÚdictÚitemsÚlistÚstrÚendswithr>   ÚsearchÚlenÚaddrC   )ÚorQ   ÚkkÚvÚkeysÚoutÚwalks       €€€rB   rw   Ústrings.<locals>.walkO   s«   ø€ Ü�aœ×ÑØŸ™ž‘�Ù�Q–ò #ä˜œ4× Ñ Û�Ù�Q–
ò ä˜œ3×Ñ A¨£I°a·j±jÀ×6FÑ6FÌrÏyÊyÐYkÐmn×OoÑOoÔtwÐxyÓtzÐ}~Ót~Ø�G‰G”D˜“GÕð uÐOoÐ6F IÐrD   ©N)Úset)Úunitsru   rv   rw   s    @@@rB   Ústringsr|   K   s*   ú€ ò N€DÜ
‹%€C÷ñ ñ 	ˆ„KØ€JrD   c                 ó^   • 0 n[        U 5       H  n[        U5      nU(       d  M  X1U'   M     U$ ry   )r|   rV   )r{   rS   rA   Úts       rB   Úbuildr   \   s1   € Ø	€BÜ�UŽ^ˆÜ�1‹Iˆßˆ1Øˆq‹Eñ ð €IrD   c                 ó8   • [        S [        U 5       5       5      $ )Nc              3   óJ   #   • U  H  n[        U5      (       a  M  Uv •  M     g 7fry   )rV   )Ú.0rA   s     rB   Ú	<genexpr>Úmissing.<locals>.<genexpr>f   s   é € Ð=š^˜´6¸!·9—!‘!š^ùs   ‚#š	#)Úsortedr|   )r{   s    rB   Úmissingr†   e   s   € ÜÑ=œW Uœ^Ó=Ó=Ð=rD   )Ú__doc__r>   Ú
en_lexiconr   Úen_sentencesr   Ú
en_machiner   ÚImportErrorrI   rO   rK   rC   rV   r|   r   r†   © rD   rB   Ú<module>r�      s„   ðñsó 
Ý Ý ðÝ#ò	Z€ð ˜ E°¸eÈEÐZ`ÐjoÐw{ð  FKñ  L€ò€ò0*òò2ò"ó>øðu ó Ø‚Gðús   ”? ¿A
Á	A
