
    =wgC                     2    d dl mZ ddlmZ  G d de      Zy)   )_StandardStemmer    )uc                   $   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZi ddddddddddddddddddddd d!ddd"d"d#d#d$d$d%d%d&d&i d'd'd(d(d)d(d*d*d+d*d,d,d-d,d.d.d/d.d0d0d1d0d2d2d3d2d4d2d5d2d6d6d7d6d6d6d8d8d8d8d9Zd: Zy;)<EnglishStemmera  
    The English Snowball stemmer.

    :cvar __vowels: The English vowels.
    :type __vowels: unicode
    :cvar __double_consonants: The English double consonants.
    :type __double_consonants: tuple
    :cvar __li_ending: Letters that may directly appear before a word final 'li'.
    :type __li_ending: unicode
    :cvar __step0_suffixes: Suffixes to be deleted in step 0 of the algorithm.
    :type __step0_suffixes: tuple
    :cvar __step1a_suffixes: Suffixes to be deleted in step 1a of the algorithm.
    :type __step1a_suffixes: tuple
    :cvar __step1b_suffixes: Suffixes to be deleted in step 1b of the algorithm.
    :type __step1b_suffixes: tuple
    :cvar __step2_suffixes: Suffixes to be deleted in step 2 of the algorithm.
    :type __step2_suffixes: tuple
    :cvar __step3_suffixes: Suffixes to be deleted in step 3 of the algorithm.
    :type __step3_suffixes: tuple
    :cvar __step4_suffixes: Suffixes to be deleted in step 4 of the algorithm.
    :type __step4_suffixes: tuple
    :cvar __step5_suffixes: Suffixes to be deleted in step 5 of the algorithm.
    :type __step5_suffixes: tuple
    :cvar __special_words: A dictionary containing words
                           which have to be stemmed specially.
    :type __special_words: dict
    :note: A detailed description of the English
           stemming algorithm can be found under
           http://snowball.tartarus.org/algorithms/english/stemmer.html
    aeiouy)	bbddffggmmnnpprrtt
cdeghkmnrt)z's'z's')ssesiediesussss)eedlyinglyedlyeedinged)izationationalfulnessousnessivenesstionalbilitilesslientliationalismalitiousliivitifulliencianciabliizeratorallibliogili)	r!   r%   alizeicateicitiativeicalnessful)ementanceenceableiblementantentismateitiousiveizeionaleric)elskisskiskiesskydyingdielyinglietyingtieidlyidlgentlygentluglyugliearlyearlionlyonlisinglysinglnewshoweatlascosmosbiasandesinninginningsoutingoutingscanningcanningsherringherringsearringearringsproceedproceeds	proceeded
proceedingexceedexceedssucceed)exceeded	exceedingr   succeeds	succeeded
succeedingc                    |j                         }|| j                  v r| j                  |   S |j                  t        d      t        d            j                  t        d      t        d            j                  t        d      t        d            }|j	                  t        d            r|dd }|j	                  d      rdj                  d	|dd f      }t        dt        |            D ]=  }||dz
     | j                  v s||   dk(  s!dj                  |d| d	||dz   d f      }? d
}d
}d}d}|j	                  d      rg|j	                  d      r|dd }n|dd }t        dt        |            D ]2  }||   | j                  vs||dz
     | j                  v s*||dz   d } n! n| j                  || j                        \  }}| j                  D ]B  }|j                  |      s|dt        |        }|dt        |        }|dt        |        } n | j                  D ]  }|j                  |      s|dk(  r|dd }|dd }|dd }nq|dv r;t        |dt        |              dkD  r|dd }|dd }|dd }nB|dd }|dd }|dd }n2|dk(  r-|dd D ]  }|| j                  v sd} n |r|dd }|dd }|dd } n | j                  D ]  }|j                  |      s|dv r|j                  |      rXdj                  |dt        |        df      }t        |      t        |      k\  r!dj                  |dt        |        df      }nd}t        |      t        |      k\  r"dj                  |dt        |        df      }nd}n|dt        |        D ]  }|| j                  v sd} n |r|dt        |        }|dt        |        }|dt        |        }|j                  d      rXdj                  |df      }dj                  |df      }t        |      dkD  st        |      dk\  rdj                  |df      }n|j                  | j                        r|dd }|dd }|dd }n|dk(  rHt        |      dk\  r:|d   | j                  vr)|d   dvr"|d   | j                  v r|d   | j                  vs5|dk(  rt        |      dk(  rw|d   | j                  v rf|d   | j                  vrUdj                  |df      }t        |      dkD  rdj                  |df      }t        |      dkD  rdj                  |df      } n t        |      dkD  r||d   dv ru|d   | j                  vrddj                  |dd df      }t        |      dk\  rdj                  |dd df      }nd}t        |      dk\  rdj                  |dd df      }nd}| j                  D ]  }|j                  |      s|j                  |      r|d k(  r|dd }|dd }|dd }n|d!v rgdj                  |dd df      }t        |      dk\  rdj                  |dd df      }nd}t        |      dk\  rdj                  |dd df      }n$d}n |d"k(  r|dd }|dd }|dd }n
|d#v rdj                  |dt        |        d$f      }t        |      t        |      k\  r!dj                  |dt        |        d$f      }nd}t        |      t        |      k\  r"dj                  |dt        |        d$f      }nsd}no|d%v rdj                  |dt        |        d&f      }t        |      t        |      k\  r!dj                  |dt        |        d&f      }nd}t        |      t        |      k\  r"dj                  |dt        |        d&f      }nd}n|d'v rdj                  |dt        |        d(f      }t        |      t        |      k\  r!dj                  |dt        |        d(f      }nd}t        |      t        |      k\  r"dj                  |dt        |        d(f      }n=d}n9|d)k(  r|dd* }|dd* }|dd* }n#|d+v rdj                  |dt        |        d,f      }t        |      t        |      k\  r!dj                  |dt        |        d,f      }nd}t        |      t        |      k\  r"dj                  |dt        |        d,f      }nd}n|d-v rdj                  |dt        |        d.f      }t        |      t        |      k\  r!dj                  |dt        |        d.f      }nd}t        |      t        |      k\  r!dj                  |dt        |        d.f      }nd}n|d/v rdj                  |dt        |        d0f      }t        |      t        |      k\  r!dj                  |dt        |        d0f      }nd}t        |      t        |      k\  r!dj                  |dt        |        d0f      }nYd}nV|d1k(  r|d*   d2k(  r|dd }|dd }|dd }n9|d3v r|dd }|dd }|dd }n%|d4k(  r |d   | j                   v r|dd }|dd }|dd } n | j"                  D ]  }|j                  |      s|j                  |      r|d k(  r|dd }|dd }|dd }n|d5k(  rdj                  |dt        |        d&f      }t        |      t        |      k\  r!dj                  |dt        |        d&f      }nd}t        |      t        |      k\  r"dj                  |dt        |        d&f      }n	d}n|d6k(  r|dd }|dd }|dd }n|d7v rdj                  |dt        |        d8f      }t        |      t        |      k\  r!dj                  |dt        |        d8f      }nd}t        |      t        |      k\  r!dj                  |dt        |        d8f      }nZd}nW|d9v r.|dt        |        }|dt        |        }|dt        |        }n%|d:k(  r |j                  |      r|dd; }|dd; }|dd; } n | j$                  D ]o  }|j                  |      s|j                  |      rI|d<k(  r|d*   d=v r=|dd }|dd }|dd }n-|dt        |        }|dt        |        }|dt        |        } n |j                  d2      r|d   d2k(  r|dd }nu|j                  d      r|dd }n^|j                  d      rMt        |      d>k\  r?|d   | j                  v s)|d   dv s"|d   | j                  vs|d*   | j                  v r|dd }|j                  d	d      }|S )?z
        Stem an English word and return the stemmed form.

        :param word: The word that is stemmed.
        :type word: str or unicode
        :return: The stemmed form.
        :rtype: unicode

        u   ’r   u   ‘u   ‛r   Ny YF)genercommunarsen)r   r         r   )r   r   r   T)r   r   ee)atblizrQ      wxY   r   yYir%   )r/   r0   r1   r(   )r2   r    rL   )r!   r)   r3   rH   )r*   r+   r4   rN   r"   )r,   r#   rJ   )r$   r-   rK   )r&   r5   bler6   rR   )r.   r'   r7   r!   r8   )r9   r:   r<   rP   )r>   r=   r;   rM   st   )lower_EnglishStemmer__special_wordsreplacer   
startswithjoinrangelen_EnglishStemmer__vowels_r1r2_standard_EnglishStemmer__step0_suffixesendswith _EnglishStemmer__step1a_suffixes _EnglishStemmer__step1b_suffixes"_EnglishStemmer__double_consonants_EnglishStemmer__step2_suffixes_EnglishStemmer__li_ending_EnglishStemmer__step3_suffixes_EnglishStemmer__step4_suffixes)	selfwordr   step1a_vowel_foundstep1b_vowel_foundr1r2suffixletters	            S/var/www/horilla/myenv/lib/python3.12/site-packages/whoosh/lang/snowball/english.pystemzEnglishStemmer.stema   s    zz|4'''''-- Qx[!F)4WQx[!F)4WQx[!F)4 	 ??1V9%8D??377Cab?+Dq#d)$ 	>AAE{dmm+Q3wwRa#tAEF|<=	> #"??7812!"X!"X1c"g& a5-"QU)t}}2LAEFB
 ((t}}=FB ++ 	F}}V$Mc&k\*#f+&#f+&	 ,, 	F}}V$V#9DCRBCRB~-4#f+./!3#CRyWW#CRyWWs]"&s) "!T]]215.!"
 *#CRyWW9	> ,, 8	F}}V$--{{6*!ww]s6{l(;T'BCr7c&k1!#"]s6{l*;T)B!CB!#Br7c&k1!#"]s6{l*;T)B!CB!#B"&}V"5 "!T]]215.!"
 *#Mc&k\2#f+.#f+.==);<#%77D#;#7D!#"c!3B"4y1}B1%'WWb#Y%7!]]4+C+CD#'9D!#CRB!#CRB!RxCIN#Bxt}}<#Bxu4#Bx4==8#Bxt}}<!RxCIN#Aw$--7#Awdmm;#%77D#;#7D"2w{%'WWb#Y%7"2w{%'WWb#Y%7q8	v IMRD R-77D"Is+,D2w!|WWb"gs^,2w!|WWb"gs^, ++ {	F}}V$;;v&)#CRyWW#;;!wwSb	3'78r7a<!#"Sb'3!8B!#Br7a<!#"Sb'3!8B!#B7*#CRyWW#66!ww]s6{l(;U'CDr7c&k1!#"]s6{l*;U)C!DB!#Br7c&k1!#"]s6{l*;U)C!DB!#B#??!ww]s6{l(;U'CDr7c&k1!#"]s6{l*;U)C!DB!#Br7c&k1!#"]s6{l*;U)C!DB!$B#==!ww]s6{l(;T'BCr7c&k1!#"]s6{l*;T)B!CB!#Br7c&k1!#"]s6{l*;T)B!CB!#B9,#CRyWW#77!ww]s6{l(;U'CDr7c&k1!#"]s6{l*;U)C!DB!#Br7c&k1!#"]s6{l*;U)C!DB!#B#77!ww]s6{l(;U'CDr7c&k1!#"]s6{l*;U)C!DB!#Br7c&k1!#"]s6{l*;U)C!DB!$B#44!ww]s6{l(;U'CDr7c&k1!#"]s6{l*;U)C!DB!#Br7c&k1!#"]s6{l*;U)C!DB!#B5T"X_#CRyWW#66#CRyWW4DH8H8H,H#CRyWWw{	| ++ 0	F}}V$;;v&)#CRyWW9,!ww]s6{l(;U'CDr7c&k1!#"]s6{l*;U)C!DB!#Br7c&k1!#"]s6{l*;U)C!DB!#B7*#CRyWW#==!ww]s6{l(;T'BCr7c&k1!#"]s6{l*;T)B!CB!#Br7c&k1!#"]s6{l*;T)B!CB!#B?2#Mc&k\2#f+.#f+.7*r{{6/B#CRyWWa0	f ++ 	F}}V$;;v&8t+#'9D!#CRB!#CRB#Mc&k\2#f+.#f+.	 ;;sRC9D[[9D[[4yA~48t}}#<#'8u#4#'84==#@#'8t}}#<CRy||C%    N)__name__
__module____qualname____doc__r   r   r   r   r   r   r   r   r   _EnglishStemmer__step5_suffixesr   r    r   r   r   r      s   > H-K)?FD
8? "'0vu '0'0'0 '0 	'0
 u'0  '0 v'0 '0 v'0  '0 e'0 v'0 v'0 '0  '0  v!'0" #'0$  %'0& !(''0(  )'0* !(+'0, !)-'0. "9/'00 !)1'02 "93'04 !)5'06 "97'08 !)9'0: "9;'0< #I='0> $Y?'0@  A'0B !(C'0D $,$,"+#,$-%.O'0ORpr   r   N)basesr   whoosh.compatr   r   r   r   r   <module>r      s    # K% Kr   