Ë
    _›¾jç¡ ã            	       ó  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZmZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d dl'Z'd dl(Z(d d	l)m*Z* d d
l+m,Z,m-Z-m.Z.m/Z/ d dl0m1Z1 ddl2m3Z3m4Z4m5Z5 ddl6m7Z7 ddl8m9Z9m:Z: ddl;m<Z< ddl=m>Z>m?Z?m@Z@ ddlAmBZBmCZC ddlDmEZE ddlFmGZGmHZHmIZI ddlJmKZKmLZLmMZMmNZNmOZO ddlPmQZQ ddlRmSZS ddlTmUZU ddlVmWZW ddlXmYZYmZZZ ddl[m\Z\m]Z] ddl5m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZf ddlgmhZh ddlimjZjmkZk eeUgeUf   Zl eem«      jÜ                  dz  Zo e5jà                  eo«      Zq eem«      jÜ                  d z  Zr e#d!«      Zs G d"„ d#«      Ztd$ed%geSf   fd&„Zud'„ Zv G d(„ d%«      Zwd)exd$exfd*„Zye G d+„ d,«      «       Zz G d-„ d.e{«      Z|d/eeY   d$eeY   fd0„Z}d1ee$e~eUef   esgeUf   d2eed3eeU   f      d4e"exexexf   d$dfd5„Z€ G d6„ d7«      Z� G d8„ d9«      Z‚ e‚«       Zƒy):é    N)Ú	ExitStackÚcontextmanager)Údeepcopy)Ú	dataclass)ÚchainÚcycle)ÚPath)Údefault_timer)ÚAnyÚCallableÚDictÚIterableÚIteratorÚListÚNoReturnÚOptionalÚPatternÚSequenceÚSetÚTupleÚTypeVarÚUnionÚcastÚoverload)ÚPool)ÚConfigÚCupyOpsÚ	OptimizerÚget_current_ops)Úconvert_recursiveé   )ÚaboutÚtyÚutil)ÚLiteral)ÚErrorsÚWarnings)ÚGIT_VERSION)ÚTOKENIZER_INFIXESÚTOKENIZER_PREFIXESÚTOKENIZER_SUFFIXES)ÚBASE_EXCEPTIONSÚ	URL_MATCH)Úload_lookups)Úanalyze_pipesÚprint_pipe_analysisÚvalidate_attrs)ÚConfigSchemaÚConfigSchemaInitÚConfigSchemaNlpÚConfigSchemaPretrainÚvalidate_init_settings)ÚScorer©Ú	Tokenizer)ÚDoc)Ú
Underscore)ÚExampleÚvalidate_examples)Úinit_tok2vecÚ
init_vocab)	Ú_DEFAULT_EMPTY_PIPESÚCONFIG_SECTION_ORDERÚSimpleFrozenDictÚSimpleFrozenListÚ_pipeÚcombine_score_weightsÚraise_errorÚregistryÚwarn_if_jupyter_cupy)ÚBaseVectors)ÚVocabÚcreate_vocabzdefault_config.cfgzdefault_config_pretraining.cfgÚ_AnyContextc                   óF  — e Zd ZU dZ ee¬«      Zeed<   eZ	e
eee   f   ed<   eZeeeeef         ed<   eZeeeeef         ed<   eZeeeeef         ed<   dZee   ed	<   eZee   ed
<   i Ze
eef   ed<   i Ze
eeegef   f   ed<    e «       Z!e"e   ed<   ddddœZ#y)ÚBaseDefaultsz¦Language data defaults, available via Language.Defaults. Can be
    overwritten by language subclasses by defining their own subclasses of
    Language.Defaults.
    ©Úsection_orderÚconfigÚtokenizer_exceptionsÚprefixesÚsuffixesÚinfixesNÚtoken_matchÚ	url_matchÚsyntax_iteratorsÚlex_attr_gettersÚ
stop_wordsÚltrT)Ú	directionÚhas_caseÚhas_letters)$Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   rA   rQ   Ú__annotations__r,   rR   r   Ústrr   Údictr*   rS   r   r   r   r   r+   rT   r)   rU   rV   r   r-   rW   rX   rY   Úintr   ÚsetrZ   r   Úwriting_system© ó    úX/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/spacy/language.pyrN   rN   X   sö   … ññ
 Ð*>Ô?€FˆFÓ?Ø2AÐ˜$˜s D¨¡J˜Ñ/ÓAØ8J€Hˆh�x  c¨7 lÑ 3Ñ4Ñ5ÓJØ8J€Hˆh�x  c¨7 lÑ 3Ñ4Ñ5ÓJØ7H€GˆX�h˜u S¨' \Ñ2Ñ3Ñ4ÓHØ&*€K�˜(Ñ#Ó*Ø$-€Iˆx˜Ñ!Ó-Ø,.Ð�d˜3 ˜=Ñ)Ó.Ø8:Ð�d˜3 ¨#¨°¨Ñ 4Ð4Ñ5Ó:Ù›5€J��C‘Ó Ø#(°dÈ4ÑP�Nrj   rN   ÚreturnÚLanguagec                  ó   — dddt         fd„} | S )z�Registered function to create a tokenizer. Returns a factory that takes
    the nlp object and returns a Tokenizer instance using the language detaults.
    Únlprm   rl   c           	      ó  — | j                   j                  }| j                   j                  }| j                   j                  }|rt	        j
                  |«      j                  nd }|rt	        j                  |«      j                  nd }|rt	        j                  |«      j                  nd }t        | j                  | j                   j                  |||| j                   j                  | j                   j                  ¬«      S )N)ÚrulesÚprefix_searchÚsuffix_searchÚinfix_finditerrV   rW   )ÚDefaultsrS   rT   rU   r$   Úcompile_prefix_regexÚsearchÚcompile_suffix_regexÚcompile_infix_regexÚfinditerr9   ÚvocabrR   rV   rW   )ro   rS   rT   rU   rr   rs   rt   s          rk   Útokenizer_factoryz+create_tokenizer.<locals>.tokenizer_factoryp   sÄ   € Ø—<‘<×(Ñ(ˆØ—<‘<×(Ñ(ˆØ—,‘,×&Ñ&ˆÙFNœ×1Ñ1°(Ó;×BÒBÐTXˆÙFNœ×1Ñ1°(Ó;×BÒBÐTXˆÙGNœ×1Ñ1°'Ó:×CÒCÐTXˆÜØ�I‰IØ—,‘,×3Ñ3Ø'Ø'Ø)ØŸ™×0Ñ0Ø—l‘l×,Ñ,ô
ð 	
rj   r8   )r|   s    rk   Úcreate_tokenizerr}   k   s   € ð

˜zð 
¬ió 
ð" Ðrj   c                 ó`   — t         j                  j                  d|«       t        | |¬«      }|S )Nz+Loading lookups from spacy-lookups-data: %s)ÚlangÚtables)r$   ÚloggerÚdebugr.   )r   r€   Úlookupss      rk   Úload_lookups_datar„   „   s(   € Ü‡K�K×ÑÐCÀVÔLÜ ¨VÔ4€GØ€Nrj   c                   óü  ‡ — e Zd ZU dZeZdZee   e	d<   e
Z eej                  ¬«      Zi Zeedf   e	d<   	 dŸdi ddd	d
œdeeef   dedeeef   deed geegef   f      deedgef      deddfd„Zˆ fd„Zed„ «       Zedeeef   fd„«       Zej>                  deeef   ddfd„«       Zede fd„«       Z!e!j>                  de ddfd„«       Z!ede"e   fd„«       Z#ede"e   fd„«       Z$ede"e%ee&f      fd„«       Z'ede"e   fd„«       Z(ede"e%ee&f      fd„«       Z)ede"e   fd „«       Z*edeeef   fd!„«       Z+edeee"e   f   fd"„«       Z,e-d#edefd$„«       Z.e-d#edefd%„«       Z/e-d#eddfd&„«       Z0e-d#eddddfd'„«       Z1d#eddfd(„Z2d#ede fd)„Z3e- e«        e4«        e4«       d* e«       dd+œd#ed,eeef   d-e5e   d.e5e   d/ed0eeee6   f   d1ee   defd2„«       Z7e- e4«        e4«       d*dd3œd#ed-e5e   d.e5e   d/ed1ee&   ded4ef   fd5„«       Z8g d6¢d*d7œd8e"e   d9edeeeef      fd:„Z9d#ede&fd;„Z:	 d  e«       ddd<œd=ed#ee   d>eeef   d?ee    d@ede&fdA„Z;dBedCd d#ede%e&ef   fdD„Z<	 d ddddd e«       dddEœd=ed#ee   dFeeeef      dGeeeef      dHee   dIee   dCed    d>eeef   d?ee    d@ede&fdJ„Z=	 	 	 	 d¡dFeeeef      dGeeeef      dHee   dIee   def
dK„Z>d#edefdL„Z? e«       ddMœd#ed=ed>eeef   d@ede&f
dN„Z@dOedPeddfdQ„ZAd#ede%ee&f   fdR„ZBd#eddfdS„ZCd#eddfdT„ZD e4«       ddUœdVeeef   dWe5e   dXeeeeeef   f      defdY„ZEd¢d[„ZFddd\œdWeeee5e   f      d]eeee5e   f      ddZfd^„ZGdVedefd_„ZHd`eeeeIf   defda„ZJd`eeeeIf   dbeKdefdc„ZL	 d ddddd e4«        e4«       deœdfe5eM   dgee   dhe6dieeN   djeeee6f      dXeeeeeef   f      dke5e   dle5e   fdm„ZOddd e4«       dnœdfe5eM   dieeN   djeeee6f      dXeeeeeef   f      dke5e   deee6f   fdo„ZP	 d ddpœdqeeg e5eM   f      dieeN   deNfdr„ZQ	 d ddpœdqeeg e5eM   f      dieeN   deNfds„ZRddpœdieeN   deNfdt„ZSdueee&e"e   eTgeUf   fdv„ZVddddd*dwœdfe5eM   dee   dxeeW   dXeeeeeef   f      dyeeeef      dzedeeef   fd{„ZXd|„ ZYeZd}ee[   fd~„«       Z\e]d4d4d4d4d4dœd€e5eeef      d�e^d*   dee   dWe5e   dXeeeeeef   f      d‚ede_e   fdƒ„«       Z`e]d4d4d4d4d4dœd€e5e%eeef   eKf      d�e^d   dee   dWe5e   dXeeeeeef   f      d‚ede_e%eeKf      fd„„«       Z`d*d e4«       dd…dœd€ee5eeef      e5e%eeef   eKf      f   d�edee   dWe5e   dXeeeeeef   f      d‚edee_e   e_e%eeKf      f   fd†„Z`dWe5e   fd‡„Zad€e5eeef      dˆe5ed4e_e   f      d‚edede_e   f
d‰„Zbd£dŠ„Zce-i fdededed e«       ddd‹œd>eeeef   e f   deeef   dWeee5e   f   d]eee5e   f   dkeee5e   f   deeef   dŒed@edd fd�„«       ZedŽed�ed�e5e   ddfd‘„ZfeZd d’eeg   de_eg   fd“„«       Zh e4«       d”œd•eeeif   dke5e   ddfd–„ZjekdWeee5e   f   d]eee5e   f   d—e5e   de%ed4f   fd˜„«       Zl e4«        e«       d™œd•eeeif   dke5e   dšeeef   dd fd›„Zm e4«       d”œdke5e   deIfdœ„Zn e4«       d”œd�eIdke5e   dd fdž„Zoˆ xZpS )¤rm   a‡  A text-processing pipeline. Usually you'll load this once per process,
    and pass the instance around your application.

    Defaults (class): Settings, data and factory methods for creating the `nlp`
        object and processing pipeline.
    lang (str): Two-letter ISO 639-1 or three-letter ISO 639-3 language codes, such as 'en' and 'eng'.

    DOCS: https://spacy.io/api/language
    Nr   ©ÚerrorÚFactoryMetaÚ_factory_metaTi@B iè  )Ú
max_lengthÚmetar}   Úcreate_vectorsÚ
batch_sizer{   rŠ   r‹   r}   rŒ   rJ   r�   rl   c                ó¸  — ddl m}  |«        t        j                  j                  j                  «        t        j                  | j                  «      | _	        t        |«      | _        d| _        d| _        i | _        i | _        t!        |t"        «      s;|dur7t%        t&        j(                  j+                  |t-        t"        «      ¬«      «      ‚|du r|j/                  di «      j/                  d«      }	t1        | j2                  | j4                  |	¬«      }|s,d| j                  d	   d   i}
t        j6                  |
«      d   } ||«      |_        no| j2                  rc|j2                  rW| j2                  |j2                  k7  r>t%        t&        j:                  j+                  | j2                  |j2                  ¬
«      «      ‚|| _        | j2                  €| j<                  j2                  | _        g | _        tA        «       | _!        || _"        |s,d| j                  d	   d   i}t        j6                  |«      d   } || «      | _#        || _$        tJ        | _&        y)a  Initialise a Language object.

        vocab (Vocab): A `Vocab` object. If `True`, a vocab is created.
        meta (dict): Custom meta data for the Language class. Is written to by
            models to add model meta data.
        max_length (int): Maximum number of characters in a single text. The
            current models may run out memory on extremely long texts, due to
            large internal allocations. You should segment these texts into
            meaningful units, e.g. paragraphs, subsections etc, before passing
            them to spaCy. Default maximum length is 1,000,000 charas (1mb). As
            a rule of thumb, if all pipeline components are enabled, spaCy's
            default models currently requires roughly 1GB of temporary memory per
            100,000 characters in one text.
        create_tokenizer (Callable): Function that takes the nlp object and
            returns a tokenizer.
        batch_size (int): Default batch size for pipe and evaluate.

        DOCS: https://spacy.io/api/language#init
        r!   )Úregister_factoriesNT)r{   Ú
vocab_typeÚvectorsÚname)Úvectors_namero   )ro   r{   Ú	tokenizer)'Úpipeline.factoriesr�   r$   rG   Ú_entry_point_factoriesÚget_allÚDEFAULT_CONFIGÚmergeÚdefault_configÚ_configre   Ú_metaÚ_pathÚ
_optimizerÚ
_pipe_metaÚ_pipe_configsÚ
isinstancerJ   Ú
ValueErrorr&   ÚE918ÚformatÚtypeÚgetrK   r   ru   Úresolver‘   ÚE150r{   Ú_componentsrg   Ú	_disabledrŠ   r”   r�   rF   Údefault_error_handler)Úselfr{   rŠ   r‹   r}   rŒ   r�   Úkwargsr�   r“   Úvectors_cfgÚtokenizer_cfgs               rk   Ú__init__zLanguage.__init__œ   sÔ  € õ< 	;áÔô 	�‰×,Ñ,×4Ñ4Ô6ä%×+Ñ+¨D×,?Ñ,?Ó@ˆŒÜ˜$“ZˆŒ
ØˆŒ
Ø/3ˆŒà46ˆŒØ02ˆÔä˜%¤Ô'¨E¸Ñ,=ÜœVŸ[™[×/Ñ/°eÌÌUËÐ/ÓTÓUÐUØ�D‰=ØŸ8™8 I¨rÓ2×6Ñ6°vÓ>ˆLÜ  §¡¨D¯M©MÈÔUˆEÙ!Ø(¨$¯,©,°uÑ*=¸iÑ*HÐI�Ü!)×!1Ñ!1°+Ó!>¸yÑ!I�Ù*¨5Ó1ˆE�Mà—	’	˜eŸjšj¨t¯y©y¸E¿J¹JÒ/FÜ ¤§¡×!3Ñ!3¸¿	¹	ÈÏÉÐ!3Ó!TÓUÐUØ!ˆŒ
Ø�9‰9ÐØŸ
™
Ÿ™ˆDŒIØ;=ˆÔÜ#&£5ˆŒØ$ˆŒáØ(¨$¯,©,°uÑ*=¸kÑ*JÐKˆMÜ'×/Ñ/°Ó>¸{ÑKÐÙ)¨$Ó/ˆŒØ$ˆŒÜ%0ˆÕ"rj   c                 ó¸   •— t        ‰| �  di |¤Ž t        j                  | j                  j
                  «      | _        | j                  | j                  d   d<   y )Nro   r   ri   )ÚsuperÚ__init_subclass__r˜   r™   ru   rQ   rš   r   )Úclsr­   Ú	__class__s     €rk   r³   zLanguage.__init_subclass__ä   sI   ø€ Ü‰Ñ!Ñ+ FÒ+Ü+×1Ñ1°#·,±,×2EÑ2EÓFˆÔØ,/¯H©Hˆ×Ñ˜5Ñ! &Ò)rj   c                 ó   — | j                   S ©N)r�   ©r¬   s    rk   ÚpathzLanguage.pathé   s   € à�z‰zÐrj   c                 óŠ  — t        j                  t        j                  «      }| j                  j
                  r1| j                  j                  d| j                  j
                  «       n&| j                  j                  d| j
                  «       | j                  j                  dd«       | j                  j                  dd«       | j                  j                  d|«       | j                  j                  dd«       | j                  j                  d	d«       | j                  j                  d
d«       | j                  j                  dd«       | j                  j                  dd«       | j                  j                  dt        «       | j                  j                  t        | j                  j                  «      | j                  j                  j                  | j                  j                  j                  | j                  j                  j                  dœ| j                  d<   t        | j                   «      | j                  d<   t#        | j$                  «      | j                  d<   t#        | j&                  «      | j                  d<   t#        | j(                  «      | j                  d<   | j                  S )zßCustom meta data of the language class. If a model is loaded, this
        includes details from the model's meta.json.

        RETURNS (Dict[str, Any]): The meta.

        DOCS: https://spacy.io/api/language#meta
        r   r’   ÚpipelineÚversionz0.0.0Úspacy_versionÚdescriptionÚ ÚauthorÚemailÚurlÚlicenseÚspacy_git_version)Úwidthr‘   Úkeysr’   Úmoder‘   ÚlabelsÚ
componentsÚdisabled)r$   Úget_minor_version_ranger"   Ú__version__r{   r   rœ   Ú
setdefaultr(   Úvectors_lengthÚlenr‘   Ún_keysr’   rÇ   re   Úpipe_labelsÚlistÚ
pipe_namesÚcomponent_namesrÊ   )r¬   r½   s     rk   r‹   zLanguage.metaí   sä  € ô ×4Ñ4´U×5FÑ5FÓGˆØ�:‰:�?Š?Ø�J‰J×!Ñ! &¨$¯*©*¯/©/Õ:à�J‰J×!Ñ! &¨$¯)©)Ô4Ø�
‰
×Ñ˜f jÔ1Ø�
‰
×Ñ˜i¨Ô1Ø�
‰
×Ñ˜o¨}Ô=Ø�
‰
×Ñ˜m¨RÔ0Ø�
‰
×Ñ˜h¨Ô+Ø�
‰
×Ñ˜g rÔ*Ø�
‰
×Ñ˜e RÔ(Ø�
‰
×Ñ˜i¨Ô,Ø�
‰
×ÑÐ1´;Ô?à—Z‘Z×.Ñ.Ü˜4Ÿ:™:×-Ñ-Ó.Ø—J‘J×&Ñ&×-Ñ-Ø—J‘J×&Ñ&×+Ñ+Ø—J‘J×&Ñ&×+Ñ+ñ!
ˆ�
‰
�9Ñô  $ D×$4Ñ$4Ó5ˆ�
‰
�8Ñô "& d§o¡oÓ!6ˆ�
‰
�:ÑÜ#'¨×(<Ñ(<Ó#=ˆ�
‰
�<Ñ Ü!% d§m¡mÓ!4ˆ�
‰
�:ÑØ�z‰zÐrj   Úvaluec                 ó   — || _         y r·   )rœ   ©r¬   rÕ   s     rk   r‹   zLanguage.meta  s	   € àˆ�
rj   c                 óv  — | j                   j                  di «       | j                   j                  di «       | j                  | j                   d   d<   i }g }| j                  D ]_  }| j	                  |«      }| j                  |«      }d|j                  i|¥||<   |j                  sŒE|j                  |j                  «       Œa t        | j                  «      | j                   d   d<   t        | j                  «      | j                   d   d<   || j                   d<   | j                   d   j                  di «      }t        ||«      }|| j                   d   d<   t        j                  | j                   «      s3t        t         j"                  j%                  | j                   ¬	«      «      ‚| j                   S )
z÷Trainable config for the current language instance. Includes the
        current pipeline components, as well as default training config.

        RETURNS (thinc.api.Config): The config.

        DOCS: https://spacy.io/api/language#config
        ro   Útrainingr   Úfactoryr»   rÊ   rÉ   Úscore_weights©rQ   )r›   rÍ   r   rÔ   Úget_pipe_metaÚget_pipe_configrÚ   Údefault_score_weightsÚappendrÒ   rÊ   r¦   rE   ÚsrslyÚis_json_serializabler¢   r&   ÚE961r¤   )r¬   r»   rÛ   Ú	pipe_nameÚ	pipe_metaÚpipe_configÚprev_weightsÚcombined_score_weightss           rk   rQ   zLanguage.config  s�  € ð 	�‰×Ñ  rÔ*Ø�‰×Ñ 
¨BÔ/Ø&*§i¡iˆ�‰�UÑ˜FÑ#ð ˆØˆØ×-Ñ-ò 	FˆIØ×*Ñ*¨9Ó5ˆIØ×.Ñ.¨yÓ9ˆKØ#,¨i×.?Ñ.?Ð"OÀ;Ð"OˆH�YÑØ×.Ó.Ø×$Ñ$ Y×%DÑ%DÕEð	Fô +/¨t×/CÑ/CÓ*Dˆ�‰�UÑ˜JÑ'Ü*.¨t¯}©}Ó*=ˆ�‰�UÑ˜JÑ'Ø%-ˆ�‰�\Ñ"ð —|‘| JÑ/×3Ñ3°OÀRÓHˆÜ!6°}ÀlÓ!SÐØ4Jˆ�‰�ZÑ  Ñ1Ü×)Ñ)¨$¯,©,Ô7ÜœVŸ[™[×/Ñ/°t·|±|Ð/ÓDÓEÐEØ�|‰|Ðrj   c                 ó   — || _         y r·   )r›   r×   s     rk   rQ   zLanguage.config:  s	   € àˆ�rj   c                 ó¾   — | j                   D ��cg c]  \  }}|| j                  v sŒ|‘Œ }}}t        |t        j                  j                  d¬«      ¬«      S c c}}w )ziGet the names of all disabled components.

        RETURNS (List[str]): The disabled components.
        rÊ   ©Úattrr†   ©r©   rª   rC   r&   ÚE926r¤   )r¬   r’   Ú_Únamess       rk   rÊ   zLanguage.disabled>  sQ   € ð &*×%5Ñ%5×P™'˜$ ¸ÀÇÁÒ9O’ÐPˆÑPÜ ¬V¯[©[×-?Ñ-?ÀZÐ-?Ó-PÔQÐQùó Qs
   �A§Ac                 ó^   — t        | j                  j                  «       «      }t        |«      S )z_Get names of all available factories.

        RETURNS (List[str]): The factory names.
        )rÒ   Ú	factoriesrÆ   rC   ©r¬   rð   s     rk   Úfactory_nameszLanguage.factory_namesI  s&   € ô �T—^‘^×(Ñ(Ó*Ó+ˆÜ Ó&Ð&rj   c                 ól   — t        | j                  t        j                  j	                  d¬«      ¬«      S )zoGet all (name, component) tuples in the pipeline, including the
        currently disabled components.
        rÉ   rë   r†   )rC   r©   r&   rî   r¤   r¸   s    rk   rÉ   zLanguage.componentsR  s.   € ô
  Ø×Ñ¤F§K¡K×$6Ñ$6¸LÐ$6Ó$Iô
ð 	
rj   c                 ó    — | j                   D ��cg c]  \  }}|‘Œ	 }}}t        |t        j                  j	                  d¬«      ¬«      S c c}}w )zÂGet the names of the available pipeline components. Includes all
        active and inactive pipeline components.

        RETURNS (List[str]): List of component name strings, in order.
        rÔ   rë   r†   )r©   rC   r&   rî   r¤   ©r¬   rä   rï   rð   s       rk   rÔ   zLanguage.component_names[  sG   € ð 04×/?Ñ/?×@™|˜y¨!’Ð@ˆÑ@Ü ¬V¯[©[×-?Ñ-?ÐEVÐ-?Ó-WÔXÐXùó Aó   �A
c                 óÂ   — | j                   D ��cg c]  \  }}|| j                  vsŒ||f‘Œ }}}t        |t        j                  j                  d¬«      ¬«      S c c}}w )zòThe processing pipeline consisting of (name, component) tuples. The
        components are called on the Doc in order as it passes through the
        pipeline.

        RETURNS (List[Tuple[str, Callable[[Doc], Doc]]]): The pipeline.
        r»   rë   r†   rí   )r¬   ÚnÚpÚpipess       rk   r»   zLanguage.pipelinee  sU   € ð %)×$4Ñ$4×P™D˜A˜q¸ÀÇÁÒ8O�!�Q’ÐPˆÑPÜ ¬V¯[©[×-?Ñ-?ÀZÐ-?Ó-PÔQÐQùó Qs
   �A§Ac                 ó    — | j                   D ��cg c]  \  }}|‘Œ	 }}}t        |t        j                  j	                  d¬«      ¬«      S c c}}w )zƒGet names of available active pipeline components.

        RETURNS (List[str]): List of component name strings, in order.
        rÓ   rë   r†   )r»   rC   r&   rî   r¤   r÷   s       rk   rÓ   zLanguage.pipe_namesp  sC   € ð 04¯}©}×=™|˜y¨!’Ð=ˆÑ=Ü ¬V¯[©[×-?Ñ-?À\Ð-?Ó-RÔSÐSùó >rø   c                 ó€   — i }| j                   D ]#  \  }}| j                  |«      j                  ||<   Œ% t        |«      S )z—Get the component factories for the available pipeline components.

        RETURNS (Dict[str, str]): Factory names, keyed by component names.
        )r©   rÝ   rÚ   rB   )r¬   rò   rä   Úpipes       rk   Úpipe_factorieszLanguage.pipe_factoriesy  sJ   € ð ˆ	Ø#×/Ñ/ò 	I‰OˆI�tØ#'×#5Ñ#5°iÓ#@×#HÑ#HˆI�iÒ ð	Iä 	Ó*Ð*rj   c                 óÄ   — i }| j                   D ]E  \  }}t        |d«      r|j                  du rŒ!t        |d«      sŒ.t        |j                  «      ||<   ŒG t        |«      S )zéGet the labels set by the pipeline components, if available (if
        the component exposes a labels property and the labels are not
        hidden).

        RETURNS (Dict[str, List[str]]): Labels keyed by component name.
        Úhide_labelsTrÈ   )r©   Úhasattrr  rÒ   rÈ   rB   )r¬   rÈ   r’   rÿ   s       rk   rÑ   zLanguage.pipe_labels„  se   € ð ˆØ×*Ñ*ò 	1‰JˆD�$Ü�t˜]Ô+°×0@Ñ0@ÀDÑ0HØÜ�t˜XÕ&Ü# D§K¡KÓ0��t’ð		1ô
   Ó'Ð'rj   r’   c                 óp   — | j                  |«      }|t        j                  v xs |t        j                  v S )z=RETURNS (bool): Whether a factory of that name is registered.)Úget_factory_namerG   rò   ©r´   r’   Úinternal_names      rk   Úhas_factoryzLanguage.has_factory”  s5   € ð ×,Ñ,¨TÓ2ˆØ”x×)Ñ)Ð)ÒP¨]¼h×>PÑ>PÐ-PÐPrj   c                 ó@   — | j                   €|S | j                   › d|› �S )zŸGet the internal factory name based on the language subclass.

        name (str): The factory name.
        RETURNS (str): The internal factory name.
        ú.)r   )r´   r’   s     rk   r  zLanguage.get_factory_nameš  s(   € ð �8‰8ÐØˆKØ—(‘(�˜1˜T˜FÐ#Ð#rj   c                 óì   — | j                  |«      }|| j                  v r| j                  |   S || j                  v r| j                  |   S t        t        j                  j                  d|¬«      «      ‚)z°Get the meta information for a given factory name.

        name (str): The component factory name.
        RETURNS (FactoryMeta): The meta for the given factory name.
        rÚ   ©r‹   r’   )r  r‰   r¢   r&   ÚE967r¤   r  s      rk   Úget_factory_metazLanguage.get_factory_meta¥  sq   € ð ×,Ñ,¨TÓ2ˆØ˜C×-Ñ-Ñ-Ø×$Ñ$ ]Ñ3Ð3Ø�3×$Ñ$Ñ$Ø×$Ñ$ TÑ*Ð*ÜœŸ™×+Ñ+°ÀÐ+ÓFÓGÐGrj   c                 ó@   — || j                   | j                  |«      <   y)zšSet the meta information for a given factory name.

        name (str): The component factory name.
        value (FactoryMeta): The meta to set.
        N)r‰   r  )r´   r’   rÕ   s      rk   Úset_factory_metazLanguage.set_factory_meta³  s   € ð 9>ˆ×Ñ˜#×.Ñ.¨tÓ4Ò5rj   c                 ó�   — || j                   vr*t        t        j                  j	                  d|¬«      «      ‚| j                   |   S )z¬Get the meta information for a given component name.

        name (str): The component name.
        RETURNS (FactoryMeta): The meta for the given component name.
        Ú	componentr  )rŸ   r¢   r&   r  r¤   ©r¬   r’   s     rk   rÝ   zLanguage.get_pipe_meta¼  s>   € ð �t—‘Ñ&ÜœVŸ[™[×/Ñ/°[ÀtÐ/ÓLÓMÐMØ�‰˜tÑ$Ð$rj   c                 ó’   — || j                   vr)t        t        j                  j	                  |¬«      «      ‚| j                   |   }|S )z±Get the config used to create a pipeline component.

        name (str): The component name.
        RETURNS (Config): The config used to create the pipeline component.
        ©r’   )r    r¢   r&   ÚE960r¤   )r¬   r’   ræ   s      rk   rÞ   zLanguage.get_pipe_configÆ  sE   € ð �t×)Ñ)Ñ)ÜœVŸ[™[×/Ñ/°TÐ/Ó:Ó;Ð;Ø×(Ñ(¨Ñ.ˆØÐrj   F)rš   ÚassignsÚrequiresÚretokenizesrß   Úfuncrš   r  r  r  rß   r  c                ó°  ‡ ‡‡‡‡‡‡— t        ‰t        «      s)t        t        j                  j                  d¬«      «      ‚d‰v r)t        t        j                  j                  ‰¬«      «      ‚t        ‰t        «      s6t        j                  j                  d‰t        ‰«      ¬«      }t        |«      ‚dt        dt        fˆˆ ˆˆˆˆˆfd	„}	|� |	|«      S |	S )
a~  Register a new pipeline component factory. Can be used as a decorator
        on a function or classmethod, or called as a function with the factory
        provided as the func keyword argument. To create a component and add
        it to the pipeline, you can use nlp.add_pipe(name).

        name (str): The name of the component factory.
        default_config (Dict[str, Any]): Default configuration, describing the
            default values of the factory arguments.
        assigns (Iterable[str]): Doc/Token attributes assigned by this component,
            e.g. "token.ent_id". Used for pipeline analysis.
        requires (Iterable[str]): Doc/Token attributes required by this component,
            e.g. "token.ent_id". Used for pipeline analysis.
        retokenizes (bool): Whether the component changes the tokenization.
            Used for pipeline analysis.
        default_score_weights (Dict[str, Optional[float]]): The scores to report during
            training, and their default weight towards the final score used to
            select the best model. Weights should sum to 1.0 per component and
            will be combined and normalized for the whole pipeline. If None,
            the score won't be shown in the logs or be weighted.
        func (Optional[Callable]): Factory function if not used as a decorator.

        DOCS: https://spacy.io/api/language#factory
        rÚ   ©Ú	decoratorr
  r  zdefault config©Ústyler’   Úcfg_typeÚfactory_funcrl   c           
      óò  •— ‰j                  ‰
«      }|t        j                  v rbt        j                  j                  |«      }t	        j
                  | |«      s-t        j                  j                  ‰
|| ¬«      }t        |«      ‚t	        j                  | «      }d|vsd|vr)t        t        j                  j                  ‰
¬«      «      ‚t        j                  j                  || ¬«       t        ‰
‰t        ‰«      t        ‰«      t        ‰	j!                  «       «      ‰	‰¬«      }‰j#                  ‰
|«       t%        t        j                  j'                  «       t        j(                  ¬«      ‰_        | S )N)r’   r  Únew_funcro   r’   r  )r  )rÚ   rš   r  r  Úscoresrß   r  r†   )r  rG   rò   r¦   r$   Úis_same_funcr&   ÚE004r¤   r¢   Úget_arg_namesÚE964Úregisterrˆ   r1   rÒ   rÆ   r  rB   r—   ÚE957)r!  r  Úexisting_funcÚerrÚ	arg_namesÚfactory_metar  r´   rš   rß   r’   r  r  s         €€€€€€€rk   Úadd_factoryz%Language.factory.<locals>.add_factoryþ  sD  ø€ Ø×0Ñ0°Ó6ˆMØ¤× 2Ñ 2Ñ2ô
 !)× 2Ñ 2× 6Ñ 6°}Ó E�Ü×(Ñ(¨°}ÔEÜ Ÿ+™+×,Ñ,Ø!¨Àð -ó �Cô % S›/Ð)ä×*Ñ*¨<Ó8ˆIØ˜IÑ%¨°yÑ)@Ü ¤§¡×!3Ñ!3¸Ð!3Ó!>Ó?Ð?ô
 ×Ñ×'Ñ'¨¸LÐ'ÔIÜ&ØØ-Ü& wÓ/Ü'¨Ó1ÜÐ1×6Ñ6Ó8Ó9Ø&;Ø'ôˆLð × Ñ   |Ô4ô
 -Ü×"Ñ"×*Ñ*Ó,´F·K±KôˆCŒMð  Ðrj   )r¡   rd   r¢   r&   ÚE963r¤   ÚE853re   ÚE962r¥   r   )
r´   r’   rš   r  r  r  rß   r  r,  r/  s
   ```````   rk   rÚ   zLanguage.factoryÑ  s¾   þ€ ôF ˜$¤Ô$ÜœVŸ[™[×/Ñ/¸)Ð/ÓDÓEÐEØ�$‰;ÜœVŸ[™[×/Ñ/°TÐ/Ó:Ó;Ð;Ü˜.¬$Ô/Ü—+‘+×$Ñ$Ø&¨T¼DÀÓ<Pð %ó ˆCô ˜S“/Ð!ð'	 ¤hð '	 ´8÷ '	 ó '	 ðR ÐÙ˜tÓ$Ð$ØÐrj   ©r  r  r  r  .c                óZ  ‡ ‡‡‡‡‡‡— ‰�ft        ‰t        «      s)t        t        j                  j                  d¬«      «      ‚d‰v r)t        t        j                  j                  ‰¬«      «      ‚‰�‰nt        j                  ‰«      Šdt        dt        fˆˆ ˆˆˆˆˆfd„}‰� |‰«      S |S )aØ  Register a new pipeline component. Can be used for stateless function
        components that don't require a separate factory. Can be used as a
        decorator on a function or classmethod, or called as a function with the
        factory provided as the func keyword argument. To create a component and
        add it to the pipeline, you can use nlp.add_pipe(name).

        name (str): The name of the component factory.
        assigns (Iterable[str]): Doc/Token attributes assigned by this component,
            e.g. "token.ent_id". Used for pipeline analysis.
        requires (Iterable[str]): Doc/Token attributes required by this component,
            e.g. "token.ent_id". Used for pipeline analysis.
        retokenizes (bool): Whether the component changes the tokenization.
            Used for pipeline analysis.
        func (Optional[Callable[[Doc], Doc]): Factory function if not used as a decorator.

        DOCS: https://spacy.io/api/language#component
        r  r  r
  r  Úcomponent_funcrl   c                 óè  •‡ — t        ‰
t        «      r)t        t        j                  j                  ‰	¬«      «      ‚dt        dt        fˆ fd„}‰j                  ‰«      }|t        j                  v rft        j                  j                  |«      }|j                  }|r|D �cg c]  }|j                  ‘Œ c}d   nd }|�t        j                  |‰ «      r|}‰j!                  ‰	‰‰‰|¬«       ‰ S c c}w )Nr  r’   rl   c                 ó   •— ‰S r·   ri   )ro   r’   r5  s     €rk   r!  z?Language.component.<locals>.add_component.<locals>.factory_funcQ  s	   ø€ Ø%Ð%rj   r   r3  )r¡   r¥   r¢   r&   ÚE965r¤   rd   ÚPipeCallabler  rG   rò   r¦   Ú__closure__Úcell_contentsr$   r%  rÚ   )r5  r!  r  r+  ÚclosureÚcÚwrappedr  r´   Úcomponent_namer  r’   r  r  s   `      €€€€€€€rk   Úadd_componentz)Language.component.<locals>.add_componentM  så   ù€ Ü˜$¤Ô%Ü ¤§¡×!3Ñ!3¸Ð!3Ó!HÓIÐIð&¬ð &´õ &ð  ×0Ñ0°Ó6ˆMØ¤× 2Ñ 2Ñ2ô !)× 2Ñ 2× 6Ñ 6°}Ó E�Ø'×3Ñ3�ÙCJ°GÖ<¨q˜1Ÿ?›?Ò<¸QÒ?ÐPT�ØÐ&¬4×+<Ñ+<¸WÀnÔ+UØ#0�Là�K‰KØØØ!Ø'Ø!ð ô ð "Ð!ùò =s   Â"C/)r¡   rd   r¢   r&   r0  r¤   r1  r$   Úget_object_namer9  r   )r´   r’   r  r  r  r  r@  r?  s   `````` @rk   r  zLanguage.component+  sž   þ€ ð6 ÐÜ˜d¤CÔ(Ü ¤§¡×!3Ñ!3¸kÐ!3Ó!JÓKÐKØ�d‰{Ü ¤§¡×!3Ñ!3¸Ð!3Ó!>Ó?Ð?Ø!%Ð!1™´t×7KÑ7KÈDÓ7Qˆð	"¬,ð 	"¼8÷ 	"ó 	"ð> ÐÙ  Ó&Ð&ØÐrj   )r  r  r$  r  )rÆ   ÚprettyrÆ   rB  c                ó>   — t        | |¬«      }|rt        ||¬«       |S )a‚  Analyze the current pipeline components, print a summary of what
        they assign or require and check that all requirements are met.

        keys (List[str]): The meta values to display in the table. Corresponds
            to values in FactoryMeta, defined by @Language.factory decorator.
        pretty (bool): Pretty-print the results.
        RETURNS (dict): The data.
        )rÆ   )r/   r0   )r¬   rÆ   rB  Úanalysiss       rk   r/   zLanguage.analyze_pipesp  s"   € ô ! ¨DÔ1ˆÙÜ ¨tÕ4Øˆrj   c                 ó¤   — | j                   D ]  \  }}||k(  sŒ|c S  t        t        j                  j	                  || j
                  ¬«      «      ‚)zßGet a pipeline component for a given component name.

        name (str): Name of pipeline component to get.
        RETURNS (callable): The pipeline component.

        DOCS: https://spacy.io/api/language#get_pipe
        ©r’   Úopts)r©   ÚKeyErrorr&   ÚE001r¤   rÔ   )r¬   r’   rä   r  s       rk   Úget_pipezLanguage.get_pipeƒ  sS   € ð %)×$4Ñ$4ò 	!Ñ ˆI�yØ˜DÓ Ø Ò ð	!ô ”v—{‘{×)Ñ)¨t¸$×:NÑ:NÐ)ÓOÓPÐPrj   )rQ   Ú
raw_configÚvalidateÚfactory_namerQ   rK  rL  c                ó2  — |�|n|}t        |t        «      s6t        j                  j	                  d|t        |«      ¬«      }t        |«      ‚t        j                  |«      s)t        t        j                  j	                  |¬«      «      ‚| j                  |«      set        j                  j	                  |dj                  | j                  «      dt        j                  | «      | j                   ¬«      }t        |«      ‚| j#                  |«      }|j$                  r$t'        |j$                  «      j)                  |«      }| j+                  |«      }|t,        j.                  vr|}| |dœ|¥d	|i¥}||i}	t-        j0                  |	|¬
«      }
t-        j2                  d|	|   i|¬
«      d   }t'        |«      }||d<   |j5                  d	d«       |j5                  dd«       |j5                  dd«       |r|j)                  |«      }|| j6                  |<   |
|   S )a  Create a pipeline component. Mostly used internally. To create and
        add a component to the pipeline, you can use nlp.add_pipe.

        factory_name (str): Name of component factory.
        name (Optional[str]): Optional name to assign to component instance.
            Defaults to factory name if not set.
        config (Dict[str, Any]): Config parameters to use for this component.
            Will be merged with default config, if available.
        raw_config (Optional[Config]): Internals: the non-interpolated config.
        validate (bool): Whether to validate the component config against the
            arguments and types expected by the factory.
        RETURNS (Callable[[Doc], Doc]): The pipeline component.

        DOCS: https://spacy.io/api/language#create_pipe
        NrQ   r  rÜ   ú, Úcreate_pipe)r’   rG  Úmethodr   Ú	lang_code)ro   r’   z
@factories)rL  ÚcfgrÚ   ro   r’   )r¡   re   r&   r2  r¤   r¥   r¢   rá   râ   rã   r  ÚE002Újoinrô   r$   rA  r   r  rš   r   r™   r  rG   rò   r§   ÚfillÚpopr    )r¬   rM  r’   rQ   rK  rL  r,  rå   r  rS  ÚresolvedÚfilleds               rk   rP  zLanguage.create_pipe�  sí  € ð0 Ð'‰t¨\ˆÜ˜&¤$Ô'Ü—+‘+×$Ñ$¨8¸$ÌÈfËÐ$ÓVˆCÜ˜S“/Ð!Ü×)Ñ)¨&Ô1ÜœVŸ[™[×/Ñ/°vÐ/Ó>Ó?Ð?Ø×Ñ Ô-Ü—+‘+×$Ñ$Ø!Ø—Y‘Y˜t×1Ñ1Ó2Ø$Ü×)Ñ)¨$Ó/ØŸ)™)ð %ó ˆCô ˜S“/Ð!Ø×)Ñ)¨,Ó7ˆ	ð ×#Ò#Ü˜I×4Ñ4Ó5×;Ñ;¸FÓCˆFØ×-Ñ-¨lÓ;ˆð ¤× 2Ñ 2Ñ2Ø(ˆMð  tÑS¨vÐS°|À]ÑSˆð ˜VÐ$ˆô ×#Ñ# C°(Ô;ˆÜ—‘  s¨<Ñ'8Ð9ÀHÔMÈeÑTˆÜ˜“ˆØ(ˆˆyÑØ�
‰
�< Ô&ð 	�
‰
�5˜$ÔØ�
‰
�6˜4Ô ñ Ø—\‘\ *Ó-ˆFØ#)ˆ×Ñ˜4Ñ Ø˜Ñ%Ð%rj   Úsource_nameÚsourcec          	      óâ  — t        |t        «      s3t        t        j                  j                  |t        |«      ¬«      «      ‚| j                  j                  |j                  j                  k7  r3t        j                  t        j                  j                  |¬«      «       ||j                  vrct        t        j                  j                  ||j                   d   › d|j                   d   › �dj#                  |j                  «      ¬«      «      ‚|j%                  |«      }t'        |d«      r||_        |j*                  j-                  «       }t/        j0                  |d   |   «      }|| j2                  |<   | j                  j4                  |j                  j4                  k7  r@|j                  j4                  D ]'  }| j                  j4                  j7                  |«       Œ) ||d	   fS )
au  Create a pipeline component by copying it from an existing model.

        source_name (str): Name of the component in the source pipeline.
        source (Language): The source nlp object to copy from.
        name (str): Optional alternative name to use in current pipeline.
        RETURNS (Tuple[Callable[[Doc], Doc], str]): The component and its factory name.
        )r’   r[  r  r   rï   r’   rO  )r’   ÚmodelrG  rÉ   rÚ   )r¡   rm   r¢   r&   ÚE945r¤   r¥   r{   r‘   ÚwarningsÚwarnr'   ÚW113rÔ   rH  ÚE944r‹   rU  rJ  r  r’   rQ   Úinterpolater$   Úcopy_configr    ÚstringsÚadd)r¬   rZ  r[  r’   rÿ   Úsource_configræ   Úss           rk   Úcreate_pipe_from_sourcez Language.create_pipe_from_sourceÙ  s’  € ô ˜&¤(Ô+ÜœVŸ[™[×/Ñ/°[ÌÈfËÐ/ÓVÓWÐWØ�:‰:×Ñ §¡×!5Ñ!5Ò5Ü�M‰Mœ(Ÿ-™-×.Ñ.°KÐ.Ó@ÔAØ˜f×4Ñ4Ñ4ÜÜ—‘×"Ñ"Ø$Ø#Ÿ[™[¨Ñ0Ð1°°6·;±;¸vÑ3FÐ2GÐHØŸ™ 6×#9Ñ#9Ó:ð #ó óð ð �‰˜{Ó+ˆô �4˜Ô ØˆDŒIð Ÿ™×1Ñ1Ó3ˆÜ×&Ñ& }°\Ñ'BÀ;Ñ'OÓPˆØ#.ˆ×Ñ˜4Ñ Ø�:‰:×Ñ §¡×!5Ñ!5Ò5Ø—\‘\×)Ñ)ò *�Ø—
‘
×"Ñ"×&Ñ& qÕ)ð*à�[ Ñ+Ð+Ð+rj   )ÚbeforeÚafterÚfirstÚlastr[  rQ   rK  rL  rj  rk  rl  rm  c                óÐ  — t        |t        «      s7t        |«      }t        j                  j                  ||¬«      }t        |«      ‚|�|n|}|| j                  v r4t        t        j                  j                  || j                  ¬«      «      ‚d|v rBt        j                  t        j                  j                  |j                  d«      ¬«      «       |�| j                  |||¬«      \  }}n| j                  ||||	|
¬«      }| j!                  ||||«      }| j#                  |«      | j$                  |<   | j&                  j)                  |||f«       | j+                  «        |S )aû  Add a component to the processing pipeline. Valid components are
        callables that take a `Doc` object, modify it and return it. Only one
        of before/after/first/last can be set. Default behaviour is "last".

        factory_name (str): Name of the component factory.
        name (str): Name of pipeline component. Overwrites existing
            component.name attribute if available. If no name is set and
            the component exposes no name attribute, component.__name__ is
            used. An error is raised if a name already exists in the pipeline.
        before (Union[str, int]): Name or index of the component to insert new
            component directly before.
        after (Union[str, int]): Name or index of the component to insert new
            component directly after.
        first (bool): If True, insert component first in the pipeline.
        last (bool): If True, insert component last in the pipeline.
        source (Language): Optional loaded nlp object to copy the pipeline
            component from.
        config (Dict[str, Any]): Config parameters to use for this component.
            Will be merged with default config, if available.
        raw_config (Optional[Config]): Internals: the non-interpolated config.
        validate (bool): Whether to validate the component config against the
            arguments and types expected by the factory.
        RETURNS (Callable[[Doc], Doc]): The pipeline component.

        DOCS: https://spacy.io/api/language#add_pipe
        ©r  r’   rF  r’   )Úname_in_configr  )r’   rQ   rK  rL  )r¡   rd   Úreprr&   ÚE966r¤   r¢   rÔ   ÚE007r_  r`  r'   ÚW119rW  ri  rP  Ú_get_pipe_indexr  rŸ   r©   ÚinsertÚ_link_components)r¬   rM  r’   rj  rk  rl  rm  r[  rQ   rK  rL  Úbad_valr,  Úpipe_componentÚ
pipe_indexs                  rk   Úadd_pipezLanguage.add_pipe   sX  € ôP ˜,¬Ô,Ü˜<Ó(ˆGÜ—+‘+×$Ñ$¨w¸TÐ$ÓBˆCÜ˜S“/Ð!ØÐ'‰t¨\ˆØ�4×'Ñ'Ñ'ÜœVŸ[™[×/Ñ/°TÀ×@TÑ@TÐ/ÓUÓVÐVà�VÑÜ�M‰Mœ(Ÿ-™-×.Ñ.¸f¿j¹jÈÓ>PÐ.ÓQÔRØÐð ,0×+GÑ+GØ˜f¨4ð ,Hó ,Ñ(ˆN™Lð "×-Ñ-ØØØØ%Ø!ð .ó ˆNð ×)Ñ)¨&°%¸ÀÓEˆ
Ø $× 5Ñ 5°lÓ Cˆ�‰˜ÑØ×Ñ×Ñ 
¨T°>Ð,BÔCØ×ÑÔØÐrj   c                 óÐ  — ||||dœ}t        d„ ||||fD «       «      dk\  r4t        t        j                  j	                  || j
                  ¬«      «      ‚|st        d„ |||fD «       «      st        | j                  «      S |ryt        |t        «      r]|| j
                  vr4t        t        j                  j	                  || j
                  ¬«      «      ‚| j
                  j                  |«      S t        |t        «      r`|| j
                  vr4t        t        j                  j	                  || j
                  ¬«      «      ‚| j
                  j                  |«      dz   S t        |«      t        k(  rV|t        | j                  «      k\  s|dk  r7t        j                  j	                  d	|| j
                  ¬
«      }t        |«      ‚|S t        |«      t        k(  rY|t        | j                  «      k\  s|dk  r7t        j                  j	                  d|| j
                  ¬
«      }t        |«      ‚|dz   S t        t        j                  j	                  || j
                  ¬«      «      ‚)aÔ  Determine where to insert a pipeline component based on the before/
        after/first/last values.

        before (str): Name or index of the component to insert directly before.
        after (str): Name or index of component to insert directly after.
        first (bool): If True, insert component first in the pipeline.
        last (bool): If True, insert component last in the pipeline.
        RETURNS (int): The index of the new pipeline component.
        )rj  rk  rl  rm  c              3   ó$   K  — | ]  }|d u–— Œ
 y ­wr·   ri   )Ú.0Úargs     rk   ú	<genexpr>z+Language._get_pipe_index.<locals>.<genexpr>W  s   è ø€ ÒG 3ˆs˜$ŒÑGùó   ‚é   )ÚargsrG  c              3   ó$   K  — | ]  }|d u–— Œ
 y ­wr·   ri   )r~  rÕ   s     rk   r€  z+Language._get_pipe_index.<locals>.<genexpr>[  s   è ø€ ÒQ°˜5¨Ô,ÑQùr�  r   rF  r!   rj  )ÚdirÚidxrG  rk  )Úsumr¢   r&   ÚE006r¤   rÔ   ÚanyrÏ   r©   r¡   rd   rI  Úindexr¥   rf   ÚE959)r¬   rj  rk  rl  rm  Úall_argsr,  s          rk   ru  zLanguage._get_pipe_indexF  s'  € ð  %¨u¸uÈdÑSˆÜÑG¨6°5¸%ÀÐ*FÔGÓGÈ1ÒLÜÜ—‘×"Ñ"¨°t×7KÑ7KÐ"ÓLóð ñ ”sÑQ¸5À&È%Ð:PÔQÔQÜ�t×'Ñ'Ó(Ð(ÙØÜ˜¤Ô$Ø˜T×1Ñ1Ñ1Ü Ü—K‘K×&Ñ&¨F¸×9MÑ9MÐ&ÓNóð ð ×'Ñ'×-Ñ-¨fÓ5Ð5Ü˜œsÔ#Ø˜D×0Ñ0Ñ0Ü Ü—K‘K×&Ñ&¨E¸×8LÑ8LÐ&ÓMóð ð ×'Ñ'×-Ñ-¨eÓ4°qÑ8Ð8ô �&‹\œSÒ Øœ˜T×-Ñ-Ó.Ò.°&¸1²*Ü—k‘k×(Ñ(Ø  f°4×3GÑ3Gð )ó �ô ! “oÐ%ØˆMÜ�%‹[œCÒØœ˜D×,Ñ,Ó-Ò-°¸²Ü—k‘k×(Ñ(Ø U°×1EÑ1Eð )ó �ô ! “oÐ%Ø˜1‘9ÐÜœŸ™×+Ñ+°À×@TÑ@TÐ+ÓUÓVÐVrj   c                 ó   — || j                   v S )a   Check if a component name is present in the pipeline. Equivalent to
        `name in nlp.pipe_names`.

        name (str): Name of the component.
        RETURNS (bool): Whether a component of the name exists in the pipeline.

        DOCS: https://spacy.io/api/language#has_pipe
        )rÓ   r  s     rk   Úhas_pipezLanguage.has_pipe}  s   € ð �t—‘Ð&Ð&rj   )rQ   rL  c                ó  — || j                   vr4t        t        j                  j	                  || j
                  ¬«      «      ‚t        |d«      r5t        j                  j	                  t        |«      |¬«      }t        |«      ‚| j                   j                  |«      }| j                  |«       t        | j                  «      r|t        | j                  «      k(  r| j                  ||||¬«      S | j                  |||||¬«      S )aB  Replace a component in the pipeline.

        name (str): Name of the component to replace.
        factory_name (str): Factory name of replacement component.
        config (Optional[Dict[str, Any]]): Config parameters to use for this
            component. Will be merged with default config, if available.
        validate (bool): Whether to validate the component config against the
            arguments and types expected by the factory.
        RETURNS (Callable[[Doc], Doc]): The new pipeline component.

        DOCS: https://spacy.io/api/language#replace_pipe
        rF  Ú__call__ro  )r’   rQ   rL  )r’   rj  rQ   rL  )rÔ   r¢   r&   rI  r¤   rÓ   r  ÚE968rq  rŠ  Úremove_piperÏ   r©   r{  )r¬   r’   rM  rQ   rL  r,  rz  s          rk   Úreplace_pipezLanguage.replace_pipeˆ  só   € ð( �t×+Ñ+Ñ+ÜœVŸ[™[×/Ñ/°TÀÇÁÐ/ÓPÓQÐQÜ�< Ô,Ü—+‘+×$Ñ$¬t°LÓ/AÈÐ$ÓMˆCÜ˜S“/Ð!ð ×)Ñ)×/Ñ/°Ó5ˆ
Ø×Ñ˜ÔÜ�4×#Ñ#Ô$¨
´c¸$×:JÑ:JÓ6KÒ(Kà—=‘=Ø 4°Àð !ó ð ð —=‘=ØØØ!ØØ!ð !ó ð rj   Úold_nameÚnew_namec                 óØ  — || j                   vr4t        t        j                  j	                  || j                   ¬«      «      ‚|| j                   v r4t        t        j
                  j	                  || j                   ¬«      «      ‚| j                   j                  |«      }|| j                  |   d   f| j                  |<   | j                  j                  |«      | j                  |<   | j                  j                  |«      | j                  |<   || j                  d   d   v r6| j                  d   d   j                  |«      }|| j                  d   d   |<   | j                  «        y)zËRename a pipeline component.

        old_name (str): Name of the component to rename.
        new_name (str): New name of the component.

        DOCS: https://spacy.io/api/language#rename_pipe
        rF  r!   Ú
initializerÉ   N)rÔ   r¢   r&   rI  r¤   rs  rŠ  r©   rŸ   rW  r    r›   rw  )r¬   r”  r•  ÚiÚinit_cfgs        rk   Úrename_pipezLanguage.rename_pipe³  sI  € ð ˜4×/Ñ/Ñ/ÜÜ—‘×"Ñ"¨°t×7KÑ7KÐ"ÓLóð ð �t×+Ñ+Ñ+ÜÜ—‘×"Ñ"¨°t×7KÑ7KÐ"ÓLóð ð × Ñ ×&Ñ& xÓ0ˆØ'¨×)9Ñ)9¸!Ñ)<¸QÑ)?Ð@ˆ×Ñ˜ÑØ$(§O¡O×$7Ñ$7¸Ó$Aˆ�‰˜Ñ!Ø'+×'9Ñ'9×'=Ñ'=¸hÓ'Gˆ×Ñ˜8Ñ$à�t—|‘| LÑ1°,Ñ?Ñ?Ø—|‘| LÑ1°,Ñ?×CÑCÀHÓMˆHØAIˆD�L‰L˜Ñ& |Ñ4°XÑ>Ø×ÑÕrj   c                 ó’  — || j                   vr4t        t        j                  j	                  || j                   ¬«      «      ‚| j
                  j                  | j                   j                  |«      «      }| j                  j                  |«       | j                  j                  |«       | j                  j                  di «      j                  |d«       || j                  d   d   v r!| j                  d   d   j                  |«       || j                  v r| j                  j                  |«       | j!                  «        |S )a  Remove a component from the pipeline.

        name (str): Name of the component to remove.
        RETURNS (Tuple[str, Callable[[Doc], Doc]]): A `(name, component)` tuple of the removed component.

        DOCS: https://spacy.io/api/language#remove_pipe
        rF  Ú_sourced_vectors_hashesNr—  rÉ   )rÔ   r¢   r&   rI  r¤   r©   rW  rŠ  rŸ   r    r‹   r¦   r›   rÊ   rª   Úremoverw  )r¬   r’   Úremoveds      rk   r’  zLanguage.remove_pipeÍ  s  € ð �t×+Ñ+Ñ+ÜœVŸ[™[×/Ñ/°TÀ×@TÑ@TÐ/ÓUÓVÐVØ×"Ñ"×&Ñ& t×';Ñ';×'AÑ'AÀ$Ó'GÓHˆð 	�‰×Ñ˜DÔ!Ø×Ñ×Ñ˜tÔ$Ø�	‰	�‰Ð/°Ó4×8Ñ8¸¸tÔDà�4—<‘< Ñ-¨lÑ;Ñ;Ø�L‰L˜Ñ& |Ñ4×8Ñ8¸Ô>à�4—=‘=Ñ Ø�N‰N×!Ñ! $Ô'Ø×ÑÔØˆrj   c                 ó¾   — || j                   vr4t        t        j                  j	                  || j                   ¬«      «      ‚| j
                  j                  |«       y)a  Disable a pipeline component. The component will still exist on
        the nlp object, but it won't be run as part of the pipeline. Does
        nothing if the component is already disabled.

        name (str): The name of the component to disable.
        rF  N)rÔ   r¢   r&   rI  r¤   rª   rf  r  s     rk   Údisable_pipezLanguage.disable_pipeæ  sI   € ð �t×+Ñ+Ñ+ÜœVŸ[™[×/Ñ/°TÀ×@TÑ@TÐ/ÓUÓVÐVØ�‰×Ñ˜4Õ rj   c                 óÜ   — || j                   vr4t        t        j                  j	                  || j                   ¬«      «      ‚|| j
                  v r| j                  j                  |«       yy)zÑEnable a previously disabled pipeline component so it's run as part
        of the pipeline. Does nothing if the component is already enabled.

        name (str): The name of the component to enable.
        rF  N)rÔ   r¢   r&   rI  r¤   rÊ   rª   r�  r  s     rk   Úenable_pipezLanguage.enable_pipeñ  sZ   € ð �t×+Ñ+Ñ+ÜœVŸ[™[×/Ñ/°TÀ×@TÑ@TÐ/ÓUÓVÐVØ�4—=‘=Ñ Ø�N‰N×!Ñ! $Õ'ð !rj   )ÚdisableÚcomponent_cfgÚtextr£  r¤  c          	      óš  — | j                  |«      }|€i }| j                  D ]Î  \  }}||v rŒt        |d«      s3t        t        j
                  j                  t        |«      |¬«      «      ‚| j                  }t        |d«      r|j                  «       }	  ||fi |j                  |i «      ¤Ž}t        |t        «      rŒ�t        t        j                   j                  |t        |«      ¬«      «      ‚ |S # t        $ r/}t        t        j                  j                  |¬«      «      |‚d}~wt        $ r} ||||g|«       Y d}~Œ—d}~ww xY w)a¬  Apply the pipeline to some text. The text can span multiple sentences,
        and can contain arbitrary whitespace. Alignment into the original string
        is preserved.

        text (Union[str, Doc]): If `str`, the text to be processed. If `Doc`,
            the doc will be passed directly to the pipeline, skipping
            `Language.make_doc`.
        disable (List[str]): Names of the pipeline components to disable.
        component_cfg (Dict[str, dict]): An optional dictionary with extra
            keyword arguments for specific components.
        RETURNS (Doc): A container for accessing the annotations.

        DOCS: https://spacy.io/api/language#call
        Nr�  ro  Úget_error_handlerr  )r’   Úreturned_type)Ú_ensure_docr»   r  r¢   r&   ÚE003r¤   r¥   r«   r§  r¦   rH  ÚE109Ú	Exceptionr¡   r:   ÚE005)	r¬   r¥  r£  r¤  Údocr’   ÚprocÚerror_handlerÚes	            rk   r�  zLanguage.__call__ü  s9  € ð* ×Ñ˜tÓ$ˆØÐ ØˆMØŸ-™-ò 	Y‰JˆD�$Ø�w‰ØÜ˜4 Ô,Ü ¤§¡×!3Ñ!3¼dÀ4»jÈtÐ!3Ó!TÓUÐUØ ×6Ñ6ˆMÜ�tÐ0Ô1Ø $× 6Ñ 6Ó 8�ð4Ù˜3Ñ> -×"3Ñ"3°D¸"Ó"=Ñ>�ô ˜c¤3Õ'Ü ¤§¡×!3Ñ!3¸ÌTÐRUËYÐ!3Ó!WÓXÐXð!	Yð" ˆ
øô ò Gä ¤§¡×!3Ñ!3¸Ð!3Ó!>Ó?ÀQÐFûÜò 4Ù˜d D¨3¨%°×3Ñ3ûð4ús$   ÂC5Ã5	E
Ã>*D(Ä(E
Ä4EÅE
ÚDisabledPipesc                 óÎ   — t        j                  t        j                  t        «       t        |«      dk(  rt        |d   t        t        f«      r|d   }| j                  |¬«      S )aV  Disable one or more pipeline components. If used as a context
        manager, the pipeline will be restored to the initial state at the end
        of the block. Otherwise, a DisabledPipes object is returned, that has
        a `.restore()` method you can use to undo your changes.

        This method has been deprecated since 3.0
        r!   r   )r£  )
r_  r`  r'   ÚW096ÚDeprecationWarningrÏ   r¡   rÒ   ÚtupleÚselect_pipesró   s     rk   Údisable_pipeszLanguage.disable_pipes'  sP   € ô 	�‰”h—m‘mÔ%7Ô8Üˆu‹:˜Š?œz¨%°©(´T¼5°MÔBØ˜!‘HˆEØ× Ñ ¨Ð Ó/Ð/rj   )r£  Úenabler¹  c                ó´  — |€|€t        t        j                  «      ‚t        |t        «      r|g}|�ot        |t        «      r|g}| j
                  D �cg c]	  }||vsŒ|‘Œ }}|�:||k7  r5t        t        j                  j                  ||| j
                  ¬«      «      ‚|}|€J ‚|D �cg c]  }|| j                  vsŒ|‘Œ }}t        | |«      S c c}w c c}w )a  Disable one or more pipeline components. If used as a context
        manager, the pipeline will be restored to the initial state at the end
        of the block. Otherwise, a DisabledPipes object is returned, that has
        a `.restore()` method you can use to undo your changes.

        disable (str or iterable): The name(s) of the pipes to disable
        enable (str or iterable): The name(s) of the pipes to enable - all others will be disabled

        DOCS: https://spacy.io/api/language#select_pipes
        )r¹  r£  rð   )
r¢   r&   ÚE991r¡   rd   rÓ   ÚE992r¤   rª   r²  )r¬   r£  r¹  rÿ   Ú
to_disableÚds         rk   r·  zLanguage.select_pipes4  sê   € ð  ˆ>˜g˜oÜœVŸ[™[Ó)Ð)Ü�gœsÔ#Ø�iˆGØÐÜ˜&¤#Ô&Ø ˜�Ø+/¯?©?ÖQ 4¸dÈ&Ò>Pš$ÐQˆJÐQàÐ" w°*Ò'<Ü Ü—K‘K×&Ñ&Ø%¨w¸d¿o¹oð 'ó óð ð
 !ˆGØÐ"Ð"Ð"ð &ÖA˜¨°$·.±.Ò)@’1ÐAˆÐAÜ˜T 7Ó+Ð+ùò Rùò Bs   Á	CÁCÂ*CÂ>Cc                 óÎ   — t        |«      | j                  kD  r=t        t        j                  j                  t        |«      | j                  ¬«      «      ‚| j                  |«      S )z{Turn a text into a Doc object.

        text (str): The text to process.
        RETURNS (Doc): The processed doc.
        )ÚlengthrŠ   )rÏ   rŠ   r¢   r&   ÚE088r¤   r”   )r¬   r¥  s     rk   Úmake_doczLanguage.make_docZ  sQ   € ô ˆt‹9�t—‘Ò&ÜÜ—‘×"Ñ"¬#¨d«)ÀÇÁÐ"ÓPóð ð �~‰~˜dÓ#Ð#rj   Údoc_likec                 ó4  — t        |t        «      r|S t        |t        «      r| j                  |«      S t        |t        «      r$t        | j
                  «      j                  |«      S t        t        j                  j                  t        |«      ¬«      «      ‚)z„Create a Doc if need be, or raise an error if the input is not
        a Doc, string, or a byte array (generated by Doc.to_bytes()).)r¥   )r¡   r:   rd   rÂ  Úbytesr{   Ú
from_bytesr¢   r&   ÚE1041r¤   r¥   )r¬   rÃ  s     rk   r©  zLanguage._ensure_docf  sp   € ô �h¤Ô$ØˆOÜ�h¤Ô$Ø—=‘= Ó*Ð*Ü�h¤Ô&Ü�t—z‘z“?×-Ñ-¨hÓ7Ð7ÜœŸ™×,Ñ,´$°x³.Ð,ÓAÓBÐBrj   Úcontextc                 ó6   — | j                  |«      }||_        |S )z>Call _ensure_doc to generate a Doc and set its context object.)r©  Ú_context)r¬   rÃ  rÈ  r®  s       rk   Ú_ensure_doc_with_contextz!Language._ensure_doc_with_contextq  s    € ð ×Ñ˜xÓ(ˆØˆŒØˆ
rj   g        )ÚdropÚsgdÚlossesr¤  ÚexcludeÚ	annotatesÚexamplesrï   rÌ  rÍ  rÎ  rÏ  rÐ  c                ó´  — |�t        t        j                  «      ‚|€i }t        |t        «      rt        |«      dk(  r|S t        |d«       t        |«      }|€-| j                  €| j                  «       | _        | j                  }|€i }i }	t        | j                  «      D ]_  \  }
\  }}|j                  |i «       t        ||   «      |	|<   ||   j                  d|«       |	|   j                  d| j                  «       Œa | j                  D ]½  \  }}||vr%t        |d«      r |j                   |fd|dœ||   ¤Ž |dvrI||vrEt        |t"        j$                  «      r+|j&                  r|j(                  d	vr|j+                  |«       ||v sŒ�t-        t/        d
„ |D «       ||| j0                  |	|   ¬«      |«      D ]  \  }}||_        Œ Œ¿ t5        |«      S )a<  Update the models in the pipeline.

        examples (Iterable[Example]): A batch of examples
        _: Should not be set - serves to catch backwards-incompatible scripts.
        drop (float): The dropout rate.
        sgd (Optimizer): An optimizer.
        losses (Dict[str, float]): Dictionary to update with the loss, keyed by
            component.
        component_cfg (Dict[str, Dict]): Config parameters for specific pipeline
            components, keyed by component name.
        exclude (Iterable[str]): Names of components that shouldn't be updated.
        annotates (Iterable[str]): Names of components that should set
            annotations on the predicted examples after updating.
        RETURNS (Dict[str, float]): The updated losses dictionary

        DOCS: https://spacy.io/api/language#update
        Nr   zLanguage.updaterÌ  r�   Úupdate©rÍ  rÎ  )NF)TFNc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr·   ©Ú	predicted©r~  Úegs     rk   r€  z"Language.update.<locals>.<genexpr>¹  s   è ø€ Ò9¨"˜Ÿ�Ñ9ùó   ‚)r¯  r’   r«   r­   )r¢   r&   ÚE989r¡   rÒ   rÏ   r=   Ú_copy_examplesrž   Úcreate_optimizerÚ	enumerater»   rÍ   r   r�   r  rÓ  r#   ÚTrainableComponentÚis_trainabler]  Úfinish_updateÚziprD   r«   r×  Ú_replace_numpy_floats)r¬   rÑ  rï   rÌ  rÍ  rÎ  r¤  rÏ  rÐ  Úpipe_kwargsr˜  r’   r¯  r®  rÙ  s                  rk   rÓ  zLanguage.updatey  sì  € ð: ˆ=ÜœVŸ[™[Ó)Ð)Øˆ>ØˆFÜ�h¤Ô%¬#¨h«-¸1Ò*<ØˆMÜ˜(Ð$5Ô6Ü! (Ó+ˆØˆ;Ø�‰Ð&Ø"&×"7Ñ"7Ó"9�”Ø—/‘/ˆCØÐ ØˆMØˆÜ(¨¯©Ó7ò 	H‰OˆA‰|��dØ×$Ñ$ T¨2Ô.Ü (¨°tÑ)<Ó =ˆK˜ÑØ˜$Ñ×*Ñ*¨6°4Ô8Ø˜Ñ×(Ñ(¨°t·±ÕGð		Hð
 Ÿ-™-ò 	'‰JˆD�$à˜7Ñ"¤w¨t°XÔ'>Ø�—‘˜HÐU¨$°vÑUÀÈtÑATÒUØ˜-Ñ'à Ñ'Ü" 4¬×)>Ñ)>Ô?Ø×)Ò)ØŸ
™
Ð*=Ñ=à×&Ñ& sÔ+Ø�yÒ Ü"ÜÙ9°Ô9Ø!Ø!Ø.2×.HÑ.HØ*¨4Ñ0ôð ó	 ò 
'‘G�C˜ð $'�B•Lñ
'ð	'ô0 % VÓ,Ð,rj   )rÍ  rÎ  r¤  rÏ  c          	      óf  ‡— |€i }t        |t        «      rt        |«      dk(  r|S t        |d«       |€-| j                  €| j                  «       | _        | j                  }t        | j                  «      }t        j                  |«       |€i }i Šˆfd„}|j                  |_	        |j                  |_
        |j                  |_        |D ]>  \  }}	||v st        |	d«      sŒi Š |	j                  |f||dœ|j                  |i «      ¤Ž Œ@ ‰j                  «       D ]  \  }
\  }} ||
||«       Œ |S )a|  Make a "rehearsal" update to the models in the pipeline, to prevent
        forgetting. Rehearsal updates run an initial copy of the model over some
        data, and update the model so its current predictions are more like the
        initial ones. This is useful for keeping a pretrained model on-track,
        even if you're updating it with a smaller set of examples.

        examples (Iterable[Example]): A batch of `Example` objects.
        sgd (Optional[Optimizer]): An optimizer.
        component_cfg (Dict[str, Dict]): Config parameters for specific pipeline
            components, keyed by component name.
        exclude (Iterable[str]): Names of components that shouldn't be updated.
        RETURNS (dict): Results from the update.

        EXAMPLE:
            >>> raw_text_batches = minibatch(raw_texts)
            >>> for labelled_batch in minibatch(examples):
            >>>     nlp.update(labelled_batch)
            >>>     raw_batch = [Example.from_dict(nlp.make_doc(text), {}) for text in next(raw_text_batches)]
            >>>     nlp.rehearse(raw_batch)

        DOCS: https://spacy.io/api/language#rehearse
        r   zLanguage.rehearsec                 ó   •— ||f‰| <   ||fS r·   ri   )ÚkeyÚWÚdWÚgradss      €rk   Ú	get_gradsz$Language.rehearse.<locals>.get_gradsò  s   ø€ Ø˜R˜ˆE�#‰JØ�b�5ˆLrj   ÚrehearserÔ  )r¡   rÒ   rÏ   r=   rž   rÝ  r»   ÚrandomÚshuffleÚ
learn_rateÚb1Úb2r  rì  r¦   Úitems)r¬   rÑ  rÍ  rÎ  r¤  rÏ  rü   rë  r’   r¯  rç  rè  ré  rê  s                @rk   rì  zLanguage.rehearseÄ  s:  ø€ ð> ˆ>ØˆFÜ�h¤Ô%¬#¨h«-¸1Ò*<ØˆMÜ˜(Ð$7Ô8Øˆ;Ø�‰Ð&Ø"&×"7Ñ"7Ó"9�”Ø—/‘/ˆCÜ�T—]‘]Ó#ˆÜ�‰�uÔØÐ ØˆMØˆô	ð  #Ÿ~™~ˆ	ÔØ—v‘vˆ	ŒØ—v‘vˆ	ŒØò 	‰JˆD�$Ø�w‰¤g¨d°JÔ&?ØØˆEØˆD�M‰MØðØ'°ñØ:G×:KÑ:KÈDÐRTÓ:Uóð		ð "ŸK™K›Mò 	‰LˆC‘�!�RÙ��Q˜�Oð	àˆrj   ©rÍ  Úget_examplesc                óx   — t        j                  t        j                  t        «       | j                  ||¬«      S )Nró  )r_  r`  r'   ÚW089rµ  r—  )r¬   rô  rÍ  s      rk   Úbegin_trainingzLanguage.begin_training  s*   € ô 	�‰”h—m‘mÔ%7Ô8Ø�‰˜|°ˆÓ5Ð5rj   c                óª  ‡— |€=t         j                  j                  d«       t        | j                  g d¢¬«      Šˆfd„}t        |d«      s5t        j                  j                  dt        |«      ¬«      }t        |«      ‚| j                  j                  «       }t        j                  |d   t        ¬	«      }|d
   }|� || «       	 t!        | |d   |d   |d   ¬«       | j                  j&                  j(                  d   dk\  r/t+        «       }| j                  j&                  j-                  |«       t        | j.                  d«      rEt1        | j.                  j2                  |d   dd¬«      } | j.                  j2                  |fd| i|¤Ž | j4                  D ]c  \  }	}
t7        |
t8        j:                  «      sŒ!|d   j=                  |	i «      }t1        |
j2                  |d|	¬«      } |
j2                  |fd| i|¤Ž Œe |j=                  d«      }|r(t        j                  |t>        ¬	«      }tA        | ||«       | jC                  «        || _"        |�|| _"        n!| jD                  €| jG                  «       | _"        |d   }|� || «       | jD                  S # t"        $ r- t#        t        j$                  j                  |d   ¬«      «      ‚w xY w)aÔ  Initialize the pipe for training, using data examples if available.

        get_examples (Callable[[], Iterable[Example]]): Optional function that
            returns gold-standard Example objects.
        sgd (Optional[Optimizer]): An optimizer to use for updates. If not
            provided, will be created using the .create_optimizer() method.
        RETURNS (thinc.api.Optimizer): The optimizer.

        DOCS: https://spacy.io/api/language#initialize
        zUNo 'get_examples' callback provided to 'Language.initialize', creating dummy examples)ÚxÚyÚz)Úwordsc                  ó2   •— t        j                  ‰ i «      gS r·   )r<   Ú	from_dict)r®  s   €rk   rô  z)Language.initialize.<locals>.get_examples#  s   ø€ Ü×)Ñ)¨#¨rÓ2Ð3Ð3rj   r�  zLanguage.initialize)rQ  Úobjr—  )ÚschemaÚbefore_initÚ
vocab_datarƒ   r‘   )Údatarƒ   r‘   )r‘   r!   r”   )Úsectionr’   ro   rÉ   ÚpretrainingÚ
after_init)$r$   r�   r‚   r:   r{   r  r&   ÚE930r¤   r¥   Ú	TypeErrorrQ   rc  rG   r§   r3   r?   ÚIOErrorÚE884r‘   Úshaper   Úto_opsr”   r6   r—  r»   r¡   r#   ÚInitializableComponentr¦   r5   r>   rw  rž   rÝ  )r¬   rô  rÍ  r,  rQ   ÚIr  ÚopsÚtok_settingsr’   r¯  Ú
p_settingsÚpretrain_cfgÚPr  r®  s                  @rk   r—  zLanguage.initialize  s™  ø€ ð  ÐÜ�K‰K×ÑØgôô �d—j‘jªÔ8ˆCô4ô �| ZÔ0Ü—+‘+×$Ñ$Ø,´$°|Ó2Dð %ó ˆCô ˜C“.Ð à—‘×(Ñ(Ó*ˆä×Ñ˜V LÑ1Ô:JÔKˆØ˜Ñ&ˆØÐ"Ù˜Ôð	DÜØ˜1˜\™?°A°i±LÈ!ÈIÉ,õð
 �:‰:×Ñ×#Ñ# AÑ&¨!Ò+Ü!Ó#ˆCØ�J‰J×Ñ×%Ñ% cÔ*Ü�4—>‘> <Ô0Ü1Ø—‘×)Ñ)Ø�+‘Ø#Ø ô	ˆLð &ˆD�N‰N×%Ñ% lÑM¸ÐMÀÒMØŸ-™-ò 	F‰JˆD�$Ü˜$¤× 9Ñ 9Õ:Ø˜|™_×0Ñ0°°rÓ:�
Ü3Ø—O‘O Z¸ÈDô�
ð  �—‘ ÑE°$ÐE¸*ÓEð	Fð —z‘z -Ó0ˆÙÜ× Ñ  Ô6JÔKˆAÜ˜˜q !Ô$Ø×ÑÔØˆŒØˆ?Ø!ˆD�OØ�_‰_Ð$Ø"×3Ñ3Ó5ˆDŒOØ�|‘_ˆ
ØÐ!Ù�tÔØ�‰ÐøôC ò 	DÜœ&Ÿ+™+×,Ñ,°Q°y±\Ð,ÓBÓCÐCð	Dús   Ã
J Ê6Kc                ó¦  — t        «       }| j                  j                  j                  d   dk\  r%| j                  j                  j	                  |«       | j
                  D ],  \  }}t        |d«      sŒt        |j                  «      |_	        Œ. |�|| _
        | j                  S | j                  €| j                  «       | _
        | j                  S )a   Continue training a pretrained model.

        Create and return an optimizer, and initialize "rehearsal" for any pipeline
        component that has a .rehearse() method. Rehearsal is used to prevent
        models from "forgetting" their initialized "knowledge". To perform
        rehearsal, collect samples of text you want the models to retain performance
        on, and call nlp.rehearse() with a batch of Example objects.

        RETURNS (Optimizer): The optimizer.

        DOCS: https://spacy.io/api/language#resume_training
        r!   Ú_rehearsal_model)r   r{   r‘   r  r  r»   r  r   r]  r  rž   rÝ  )r¬   rÍ  r  r’   r¯  s        rk   Úresume_trainingzLanguage.resume_trainingY  s´   € ô ÓˆØ�:‰:×Ñ×#Ñ# AÑ&¨!Ò+Ø�J‰J×Ñ×%Ñ% cÔ*ØŸ-™-ò 	=‰JˆD�$Ü�tÐ/Õ0Ü(0°·±Ó(<�Õ%ð	=ð ˆ?Ø!ˆDŒOð �‰Ðð �_‰_Ð$Ø"×3Ñ3Ó5ˆDŒOØ�‰Ðrj   r°  c                 óv   — || _         | j                  D ]#  \  }}t        |d«      sŒ|j                  |«       Œ% y)a  Set an error handler object for all the components in the pipeline
        that implement a set_error_handler function.

        error_handler (Callable[[str, Callable[[Doc], Doc], List[Doc], Exception], NoReturn]):
            Function that deals with a failing batch of documents. This callable
            function should take in the component's name, the component itself,
            the offending batch of documents, and the exception that was thrown.
        DOCS: https://spacy.io/api/language#set_error_handler
        Úset_error_handlerN)r«   r»   r  r  )r¬   r°  r’   rÿ   s       rk   r  zLanguage.set_error_handlerr  s<   € ð &3ˆÔ"ØŸ-™-ò 	6‰JˆD�$Ü�tÐ0Õ1Ø×&Ñ& }Õ5ñ	6rj   )r�   Úscorerr¤  Ú
scorer_cfgÚper_componentr  r  r  c                ó(  — t        |«      }t        |d«       t        |«      }|€| j                  }|€i }|€i }|€(t	        |«      }|j                  d| «       t        di |¤Ž}t        «       }|D ]'  }	| j                  |	j                  j                  «       Œ) | j                  d„ |D «       ||¬«      }
t        ||
«      D ]  \  }	}||	_        Œ t        «       }|j                  ||¬«      }t        d„ |D «       «      }|||z
  z  |d<   t!        |«      S )	aà  Evaluate a model's pipeline components.

        examples (Iterable[Example]): `Example` objects.
        batch_size (Optional[int]): Batch size to use.
        scorer (Optional[Scorer]): Scorer to use. If not passed in, a new one
            will be created.
        component_cfg (dict): An optional dictionary with extra keyword
            arguments for specific components.
        scorer_cfg (dict): An optional dictionary with extra keyword arguments
            for the scorer.
        per_component (bool): Whether to return the scores keyed by component
            name. Defaults to False.

        RETURNS (Scorer): The scorer containing the evaluation results.

        DOCS: https://spacy.io/api/language#evaluate
        zLanguage.evaluatero   c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr·   rÖ  rØ  s     rk   r€  z$Language.evaluate.<locals>.<genexpr>³  s   è ø€ Ò-˜bˆR�\�\Ñ-ùrÚ  )r�   r¤  )r  c              3   óF   K  — | ]  }t        |j                  «      –— Œ y ­wr·   )rÏ   r×  rØ  s     rk   r€  z$Language.evaluate.<locals>.<genexpr>»  s   è ø€ Ò;¨B”c˜"Ÿ,™,×'Ñ;ùs   ‚!Úspeedri   )rÒ   r=   rÜ  r�   re   rÍ   r7   ÚtimerrÂ  Ú	referencer¥  rÿ   râ  r×  Úscorer‡  rã  )r¬   rÑ  r�   r  r¤  r  r  r­   Ú
start_timerÙ  Údocsr®  Úend_timeÚresultsÚn_wordss                  rk   ÚevaluatezLanguage.evaluate„  s-  € ô6 ˜“>ˆÜ˜(Ð$7Ô8Ü! (Ó+ˆØÐØŸ™ˆJØÐ ØˆMØÐØˆJØˆ>Ü˜*Ó%ˆFØ×Ñ˜e TÔ*ÜÑ%˜fÑ%ˆFä“Wˆ
àò 	-ˆBØ�M‰M˜"Ÿ,™,×+Ñ+Õ,ð	-ð �y‰yÙ- HÔ-Ø!Ø'ð ó 
ˆô
 ˜8 TÓ*ò 	‰GˆB�ØˆB�Lð	ä“7ˆØ—,‘,˜x°}�,ÓEˆÜÑ;°(Ô;Ó;ˆØ" h°Ñ&;Ñ<ˆ�ÑÜ$ WÓ-Ð-rj   c                 óZ   — d| j                   d   d   i}t        j                  |«      d   S )zCCreate an optimizer, usually using the [training.optimizer] config.Ú	optimizerrÙ   )rQ   rG   r§   )r¬   Ú	subconfigs     rk   rÝ  zLanguage.create_optimizer¿  s0   € à  $§+¡+¨jÑ"9¸+Ñ"FÐGˆ	Ü×Ñ 	Ó*¨;Ñ7Ð7rj   Úparamsc              #   ó@  K  — |sd–— y| j                   D ��cg c].  \  }}t        |d«      rt        |d«      r|j                  |«      ‘Œ0 }}}|D ]  }	 t        |«       Œ d–— |D ]  }	 t        |«       Œ yc c}}w # t        $ r Y Œ:w xY w# t        $ r Y Œ2w xY w­w)aÖ  Replace weights of models in the pipeline with those provided in the
        params dictionary. Can be used as a contextmanager, in which case,
        models go back to their original weights after the block.

        params (dict): A dictionary of parameters keyed by model ID.

        EXAMPLE:
            >>> with nlp.use_params(optimizer.averages):
            >>>     nlp.to_disk("/tmp/checkpoint")

        DOCS: https://spacy.io/api/language#use_params
        NÚ
use_paramsr]  )r»   r  r.  ÚnextÚStopIteration)r¬   r,  r’   rÿ   ÚcontextsrÈ  s         rk   r.  zLanguage.use_paramsÄ  s¹   è ø€ ñ Üð #'§-¡-÷á�D˜$Ü˜4 Ô.´7¸4ÀÔ3Ið —‘ Õ'ðˆHñ ð $ò �ðÜ˜•Mðó
 Ø#ò �ðÜ˜•Mñùóøô %ò Ùðûô %ò ÙðüsX   ‚B™3A:ÁBÁB Á BÁ,BÁ7	BÂ 	BÂ	BÂBÂBÂ	BÂBÂBÂB)Ú	as_tuplesr�   r£  r¤  Ú	n_processÚtextsr2  r3  c                 ó   — y r·   ri   ©r¬   r4  r2  r�   r£  r¤  r3  s          rk   rÿ   zLanguage.pipeè  s   € ð rj   c                 ó   — y r·   ri   r6  s          rk   rÿ   zLanguage.pipeô  s   € ð -0rj   r!   c             #   ól  ‡ K  — |rst        t        t        t        t        t
        f   t        f      |«      }ˆ fd„|D «       }‰ j                  |||||¬«      }|D ]  }	|	j                  }
d|	_        |	|
f–— Œ yt        t        t        t        t
        f      |«      }|dk(  rt        j                  «       }|€i }|€‰ j                  }g }‰ j                  D ]g  \  }}||v rŒ|j                  |i «      }|j                  d|«       t        j                   t"        |||‰ j$                  ¬«      }|j'                  |«       Œi |dk7  rI‰ j)                  |«      r#t+        j,                  t.        j0                  «       ‰ j3                  ||||«      }nˆ fd„|D «       }|D ]
  } ||«      }Œ |D ]  }	|	–— Œ y­w)	aX  Process texts as a stream, and yield `Doc` objects in order.

        texts (Iterable[Union[str, Doc]]): A sequence of texts or docs to
            process.
        as_tuples (bool): If set to True, inputs should be a sequence of
            (text, context) tuples. Output will then be a sequence of
            (doc, context) tuples. Defaults to False.
        batch_size (Optional[int]): The number of texts to buffer.
        disable (List[str]): Names of the pipeline components to disable.
        component_cfg (Dict[str, Dict]): An optional dictionary with extra keyword
            arguments for specific components.
        n_process (int): Number of processors to process texts. If -1, set `multiprocessing.cpu_count()`.
        YIELDS (Doc): Documents in the order of the original text.

        DOCS: https://spacy.io/api/language#pipe
        c              3   óH   •K  — | ]  \  }}‰j                  ||«      –— Œ y ­wr·   )rË  )r~  r¥  rÈ  r¬   s      €rk   r€  z Language.pipe.<locals>.<genexpr>  s'   øè ø€ ò "ÙANÀÀw�×-Ñ-¨d°G×<ñ"ùs   ƒ")r�   r£  r3  r¤  Néÿÿÿÿr�   )r¯  r’   r­   r«   r!   c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr·   )r©  )r~  r¥  r¬   s     €rk   r€  z Language.pipe.<locals>.<genexpr>O  s   øè ø€ Ò=¨t�D×$Ñ$ T×*Ñ=ùs   ƒ)r   r   r   r   rd   r:   rL   rÿ   rÊ  ÚmpÚ	cpu_countr�   r»   r¦   rÍ   Ú	functoolsÚpartialrD   r«   rà   Ú_has_gpu_modelr_  r`  r'   ÚW114Ú_multiprocessing_pipe)r¬   r4  r2  r�   r£  r¤  r3  Údocs_with_contextsr$  r®  rÈ  rü   r’   r¯  r­   Úfrÿ   s   `                rk   rÿ   zLanguage.pipe   sÉ  øè ø€ ñ8 Üœ¤%¬¬c´3¨h©¼Ð(DÑ"EÑFÈÓNˆEó"ØRWô"Ðð —9‘9Ø"Ø%ØØ#Ø+ð ó ˆDð ò %�ØŸ,™,�Ø#�”Ø˜G�nÓ$ð%ð ä”Xœe¤C¬ H™oÑ.°Ó6ˆð ˜Š?ÜŸ™›ˆIØÐ ØˆMØÐØŸ™ˆJàˆØŸ-™-ò 	‰JˆD�$Ø�w‰ØØ"×&Ñ& t¨RÓ0ˆFà×Ñ˜l¨JÔ7Ü×!Ñ!ÜØØØØ&*×&@Ñ&@ôˆAð �L‰L˜�Oð	ð ˜Š>Ø×"Ñ" 7Ô+Ü—‘œhŸm™mÔ,à×-Ñ-¨e°U¸IÀzÓR‰Dó >°uÔ=ˆDØò "�Ù˜D“z‘ð"àò 	ˆCØ‹Iñ	ùs   ƒF1F4c                 ó  — | j                   D ]p  \  }}t        |d«      xr |j                  }||v s|sŒ't        |d«      sŒ4t        |j                  d«      sŒKt	        |j                  j
                  t        «      sŒp y y)Nrà  r]  r  TF)r»   r  rà  r]  r¡   r  r   )r¬   r£  r’   r¯  rà  s        rk   r@  zLanguage._has_gpu_modelU  sp   € ØŸ-™-ò 
	‰JˆD�$Ü" 4¨Ó8ÒN¸T×=NÑ=NˆLØ�w‰¡lØô ˜˜gÕ&Ü˜DŸJ™J¨Õ.Ü˜tŸz™zŸ~™~¬wÕ7áð
	ð rj   rü   c              #   ód  K  — dt         t        t        t        f      dt         t        t        t        t
        f   t        f      fd„} ||«      }t        j                  |«      \  }}t        |«      D �cg c]  }t        j                  «       ‘Œ }	}t        t        |«      D �cg c]  }t        j                  d«      ‘Œ c}Ž \  }
}t        j                  ||«      }t!        ||	|¬«      }|j#                  «        |j#                  «        t        |	|«      D ��cg c]A  \  }}t        j$                  t&        | j(                  |||t+        j,                  «       f¬«      ‘ŒC }}}|D ]  }|j/                  «        Œ |D ]  }|j1                  «        Œ t3        j4                  d„ t7        |
«      D «       «      }	 t9        t        ||«      d«      D ]©  \  }\  }\  }}}|�0t        | j:                  «      j=                  |«      }||_        |–— nR|�PtA        jB                  |«      }| jE                  d d d tG        tH        jJ                  jM                  |¬	«      «      «       ||z  d
k(  sŒš|jO                  «        Œ« 	 |	D ]'  }|jQ                  tR        «       |j1                  «        Œ) |
D ]  }|j1                  «        Œ |D ]  }|jU                  «        Œ tW        d„ |D «       «      s$tY        jZ                  t\        j^                  «       y y c c}w c c}w c c}}w # |	D ]'  }|jQ                  tR        «       |j1                  «        Œ) |
D ]  }|j1                  «        Œ |D ]  }|jU                  «        Œ tW        d„ |D «       «      s$tY        jZ                  t\        j^                  «       w w xY w­w)Nr4  rl   c              3   ó¼   K  — | D ]S  }t        |t        «      r-|j                  «       t        t        |j
                  «      f–— Œ@|t        t        d «      f–— ŒU y ­wr·   )r¡   r:   Úto_bytesr   rL   rÊ  )r4  rÃ  s     rk   Úprepare_inputz5Language._multiprocessing_pipe.<locals>.prepare_inputk  sT   è ø€ ð "ò >�Ü˜h¬Ô,Ø#×,Ñ,Ó.´´[À(×BSÑBSÓ0TÐUÓUà#¤T¬+°tÓ%<Ð=Ó=ñ	>ùs   ‚AAF)Ú
chunk_size)Útargetrƒ  c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr·   )Úrecv)r~  rM  s     rk   r€  z1Language._multiprocessing_pipe.<locals>.<genexpr>¢  s   è ø€ ò *
Ø ˆD�I‰I�Kñ*
ùs   ‚r!   r†   r   c              3   ó:   K  — | ]  }|j                   d k(  –— Œ y­w)r   N)Úexitcode)r~  r¯  s     rk   r€  z1Language._multiprocessing_pipe.<locals>.<genexpr>É  s   è ø€ Ò<¨d�t—}‘}¨Õ)Ñ<ùs   ‚)0r   r   rd   r:   r   rÅ  rL   Ú	itertoolsÚteeÚranger<  ÚQueuerâ  ÚPiper$   Ú	minibatchÚ_SenderÚsendÚProcessÚ_apply_pipesrË  r;   Ú	get_stateÚstartÚcloser   Úfrom_iterabler   rÞ  r{   rÆ  rÊ  rá   Úmsgpack_loadsr«   r¢   r&   ÚE871r¤   ÚstepÚputÚ_WORK_DONE_SENTINELrU  Úallr_  r`  r'   ÚW127)r¬   r4  rü   r3  r�   rI  Úserialized_texts_with_ctxÚ	raw_textsrï   Útexts_qÚbytedocs_recv_chÚbytedocs_send_chÚbatch_textsÚsenderÚrchÚschÚprocsr¯  ÚtxÚbyte_tuplesr˜  Úbyte_docrÈ  Ú
byte_errorr®  r‡   ÚqÚrs                               rk   rB  zLanguage._multiprocessing_piped  sd  è ø€ ð
	>ÜœE¤#¤s (™OÑ,ð
	>ä”eœE¤#¤u *Ñ-¬{Ð:Ñ;Ñ<ó
	>ñ %2°%Ó$8Ð!ä$Ÿ=™=Ð)BÓCÑˆˆyä7<¸YÓ7GÖ"H°!¤2§8¡8¥:Ð"HˆÐ"Hä-0Ü&+¨IÓ&6Ö7 Œb�g‰g�e�nÒ7ð.
Ñ*ÐÐ*ô —n‘n U¨JÓ7ˆô ˜ g¸)ÔDˆà�‰ŒØ�‰Œô   Ð)9Ó:÷
ñ ��Sô �J‰JÜ#à×1Ñ1ØØØÜ×(Ñ(Ó*ðö	ð
ˆñ 
ð ò 	ˆDØ�J‰J�Lð	ð #ò 	ˆBØ�H‰H�Jð	ô
 ×)Ñ)ñ *
Ü$)Ð*:Ó$;ô*
ó 
ˆð%	-Ü;DÜ�I˜{Ó+¨Qó<ò "Ñ7�Ñ7�AÑ6˜ '¨:ð Ð'Ü˜dŸj™j›/×4Ñ4°XÓ>�CØ#*�C”LØ“IØÐ+Ü!×/Ñ/°
Ó;�EØ×.Ñ.Ø˜d D¬*´V·[±[×5GÑ5GÈeÐ5GÓ5TÓ*Uôð �z‘> QÓ&à—K‘K•Mñ"ð& ò �Ø—‘Ô)Ô*Ø—‘•	ðð &ò �Ø—‘•	ðð ò �Ø—	‘	•ðô Ñ<°eÔ<Ô<Ü—‘œhŸm™mÕ,ð =ùò] #Iùò 8ùó
øð^ ò �Ø—‘Ô)Ô*Ø—‘•	ðð &ò �Ø—‘•	ðð ò �Ø—	‘	•ðô Ñ<°eÔ<Ô<Ü—‘œhŸm™mÕ,ð =üsN   ‚A3N0Á5LÂN0Â$LÃ AN0ÄALÅ AN0Æ7B/L É'L É:B!N0ÌBN-Î-N0c                 ó.  — | j                   D ]  \  }}t        |d«      sŒ||_        Œ t        | j                   «      D ]U  \  }\  }}t	        |t
        j                  «      sŒ$i |_        | j                   |dz   d D ]  \  }}|j                  |«       Œ ŒW y)zmRegister 'listeners' within pipeline components, to allow them to
        effectively share weights.
        r’   r!   N)	r»   r  r’   rÞ  r¡   r#   ÚListenedToComponentÚlistener_mapÚfind_listeners)r¬   r’   r¯  r˜  Úname1Úproc1Úname2Úproc2s           rk   rw  zLanguage._link_componentsÌ  s—   € ð Ÿ-™-ò 	!‰JˆD�$Ü�t˜VÕ$Ø �•	ð	!ô "+¨4¯=©=Ó!9ò 	0ÑˆA‰~��uÜ˜%¤×!7Ñ!7Õ8Ø%'�Ô"Ø$(§M¡M°!°a±%°'Ð$:ò 0‘L�E˜5Ø×(Ñ(¨Õ/ñ0ñ	0rj   )r{   r£  r¹  rÏ  r‹   Ú	auto_fillrL  r}  c          	      ó8  ‡— |r*t        | j                  t        ¬«      j                  |«      }d|vr)t	        t
        j                  j                  |¬«      «      ‚d|d   vr
ddi|d   d<   |d   j                  d«      }	|	�]|	| j                  k7  rNt	        t
        j                  j                  |d   d   | j                  t        j                  | «      ¬	«      «      ‚| j                  |d   d<   t        j                  |«      }|j                  d
i «      }
|j                  dd«      }i |d
<   |rt        j                   ||t"        ¬«      }n|}|
|d
<   |
|d
<   |�
||d<   ||d<   t        j$                  |d   |t&        ¬«      }|d   }|d   }|d   }|d   }|d   }| }|�Z || «      }t)        |t*        «      rt-        || «      r|| ur2t	        t
        j.                  j                  t+        |«      ¬«      «      ‚t1        «         |||||¬«      }|�G ||«      }t)        || «      s3t	        t
        j2                  j                  dt+        |«      ¬«      «      ‚|j4                  s|j7                  «       n|}|j                  d
i «      }i }i }d}|d   d   D �]^  }||vrIdj9                  |j;                  «       «      }t	        t
        j<                  j                  ||¬«      «      ‚t        j                  ||   «      }t        |d
   |   «      }|‰vsŒd|vr0d|vr,t
        j>                  j                  ||¬«      }t	        |«      ‚d|v r(|j                  d«      }|jA                  |||||¬«       Œßd|v sJ ‚|€|jB                  jE                  ddg¬«      }|d   } | |vr&t        jF                  | |jB                  dg¬«      || <   |j                  d |«      }!d!}"d"|v rU||    jI                  «        ||    jJ                  D ]0  \  }#}$|!tM        |$d#g «      v sŒ||    jO                  |#|!|d"   «       d$}"Œ2 tQ        jR                  «       5  tQ        jT                  d%d&¬'«       |jA                  |!||    |¬(«       ddd«       | |vr6tW        ||    jB                  jX                  jE                  dg¬«      «      || <   d)|jZ                  vri |jZ                  d)<   ||    |jZ                  d)   |<   |"s�Œ\|| = �Œa |�|jB                  j]                  |«       t)        |t^        «      r|g}t)        |t^        «      r|g}t)        ‰t^        «      r‰gŠta        |«      ta        tb        «      k7  rn|d   j                  d*g «      }%te        |%«      rNtg        |%«      ji                  |«      s4tQ        jj                  tl        jn                  j                  ||%¬+«      «       | jq                  ts        h |£|d   j                  d,g «      £«      ||d   d   «      }&tg        ˆfd-„|&D «       «      |_:        |d   d.   |_;        |r|n||_<        |�G ||«      }t)        || «      s3t	        t
        j2                  j                  d/t+        |«      ¬«      «      ‚|S # 1 sw Y   �ŒxY w)0a5  Create the nlp object from a loaded config. Will set up the tokenizer
        and language data, add pipeline components etc. If no config is provided,
        the default config of the given language is used.

        config (Dict[str, Any] / Config): The loaded config.
        vocab (Vocab): A Vocab object. If True, a vocab is created.
        disable (Union[str, Iterable[str]]): Name(s) of pipeline component(s) to disable.
            Disabled pipes will be loaded but they won't be run unless you
            explicitly enable them by calling nlp.enable_pipe.
        enable (Union[str, Iterable[str]]): Name(s) of pipeline component(s) to enable. All other
            pipes will be disabled (and can be enabled using `nlp.enable_pipe`).
        exclude (Union[str, Iterable[str]]): Name(s) of pipeline component(s) to exclude.
            Excluded components won't be loaded.
        meta (Dict[str, Any]): Meta overrides for nlp.meta.
        auto_fill (bool): Automatically fill in missing values in config based
            on defaults and function argument annotations.
        validate (bool): Validate the component config and arguments against
            the types expected by the factory.
        RETURNS (Language): The initialized Language class.

        DOCS: https://spacy.io/api/language#from_config
        rO   ro   rÜ   r‘   z@vectorszspacy.Vectors.v1r   N)Úbad_lang_coderR  r   rÉ   r  )rL  r   r”   Úbefore_creationÚafter_creationÚafter_pipeline_creation)rÕ   )r{   r}   rŒ   r‹   Úcreation)r’   rÕ   r»   rO  rF  rÚ   r[  )r’   rQ   )r’   rQ   rL  rK  rƒ   re  ©rÏ  )r{   rÏ  r  FÚreplace_listenersÚlistening_componentsTÚignorez\[W113\])Úmessage)r[  r’   rœ  Úenabled)r¹  r‰  rÊ   c              3   ó,   •K  — | ]  }|‰vsŒ|–— Œ y ­wr·   ri   )r~  rû   rÏ  s     €rk   r€  z'Language.from_config.<locals>.<genexpr>À  s   øè ø€ ÒJ !¸À'Ò9IœAÑJùs   ƒ	�r�   Úpipeline_creation)=r   rš   rA   r™   r¢   r&   ÚE985r¤   r¦   r   ÚE958r$   rA  rd  rW  rG   rV  r2   r§   r4   r¡   r¥   Ú
issubclassÚE943rH   ÚE942Úis_interpolatedrc  rU  rÆ   ÚE956ÚE984r{  r{   rH  Ú
load_modelrw  r»   Úgetattrr…  r_  Úcatch_warningsÚfilterwarningsÚhashr‘   r‹   rÆ  rd   Úidr@   rÏ   rg   Úissubsetr`  r'   ÚW123Ú_resolve_component_statusrÒ   rª   r�   rQ   )'r´   rQ   r{   r£  r¹  rÏ  r‹   r}  rL  Úconfig_langÚorig_pipelineÚorig_pretrainingrY  Úresolved_nlpr}   rŒ   r€  r�  r‚  Úlang_clsro   Úinterpolatedr»   Úsource_nlpsÚsource_nlp_vectors_hashesÚvocab_brä   rG  Úpipe_cfgrK  r,  rÚ   r]  rZ  Úlisteners_replacedr’   r¯  r‰  Údisabled_pipess'        `                                 rk   Úfrom_configzLanguage.from_configâ  sô  ø€ ñF ÜØ×"Ñ"Ô2Fôç‰e�F‹mð ð ˜ÑÜœVŸ[™[×/Ñ/°vÐ/Ó>Ó?Ð?ð ˜F 5™MÑ)Ø(2Ð4FÐ'GˆF�5‰M˜)Ñ$Ø˜U‘m×'Ñ'¨Ó/ˆØÐ" {°c·h±hÒ'>ÜÜ—‘×"Ñ"Ø"(¨¡-°Ñ"7Ø!Ÿh™hÜ×-Ñ-¨cÓ2ð #ó óð ð !$§¡ˆˆu‰�fÑô
 ×!Ñ! &Ó)ˆØŸ
™
 <°Ó4ˆØ!Ÿ:™: m°TÓ:ÐØ!ˆˆ|ÑÙÜ—]‘] 6°HÄ\ÔR‰FàˆFØ,ˆˆ|ÑØ,ˆˆ|ÑØÐ'Ø$4ˆF�=Ñ!Ø$4ˆF�=Ñ!Ü×'Ñ'Ø�5‰MØÜ"ô
ˆð
 (¨Ñ4ÐØ% iÑ0ˆØ&Ð'8Ñ9ˆØ%Ð&6Ñ7ˆØ".Ð/HÑ"IÐØˆØÐ&Ù& sÓ+ˆHä˜x¬Ô.Ü! (¨CÔ0Ø 3Ñ&ä ¤§¡×!3Ñ!3¼$¸x».Ð!3Ó!IÓJÐJô 	Ôñ ØØ-Ø)Øô	
ˆð Ð%Ù  Ó%ˆCÜ˜c 3Ô'Ü ¤§¡×!3Ñ!3¸Ì4ÐPSË9Ð!3Ó!UÓVÐVð 4:×3IÒ3I�v×)Ñ)Ô+ÈvˆØ×#Ñ# L°"Ó5ˆð ˆØ$&Ð!ØˆØ ™ zÑ2ó H	/ˆIØ Ñ(Ø—y‘y §¡£Ó1�Ü ¤§¡×!3Ñ!3¸ÈÐ!3Ó!NÓOÐOÜ×'Ñ'¨°Ñ(;Ó<ˆHÜ  |Ñ 4°YÑ ?Ó@ˆJØ Ò'Ø HÑ,°ÀÑ1IÜ Ÿ+™+×,Ñ,°)ÀHÐ,ÓM�CÜ$ S›/Ð)Ø Ñ(Ø&Ÿl™l¨9Ó5�Gð —L‘LØØ&Ø'Ø!)Ø#-ð !õ ð $ xÑ/Ð/Ð/ð �Ø"%§)¡)×"4Ñ"4¸iÈÐ=SÐ"4Ó"T˜Ø$ XÑ.�EØ KÑ/ä-1¯_©_Ø!¨¯©¸Y¸Kô.˜ EÑ*ð #+§,¡,¨{¸IÓ"F�KØ).Ð&Ø*¨hÑ6ð $ EÑ*×;Ñ;Ô=Ø*5°eÑ*<×*EÑ*Eò :™J˜D $Ø*¬g°dÐ<RÐTVÓ.WÒWØ +¨EÑ 2× DÑ DØ$(¨+°xÐ@SÑ7Tô!"ð 6:Ñ 2ð:ô "×0Ñ0Ó2ñ Ü ×/Ñ/°À,ÕOØŸ™Ø'°¸EÑ0BÈð %ô ÷ð Ð$=Ñ=Ü;?Ø'¨Ñ.×4Ñ4×<Ñ<×EÑEØ)2¨ð Fó ó<Ð1°%Ñ8ð
 1¸¿¹Ñ@Ø>@˜Ÿ™Ð!:Ñ;à1°%Ñ8ð —H‘HÐ6Ñ7¸	ÑBó *Ø'¨Ò.ðQH	/ðT ÐØ�I‰I× Ñ  Ô)ô �gœsÔ#Ø�iˆGÜ�fœcÔ"Ø�XˆFÜ�gœsÔ#Ø�iˆGô ˆf‹:œÔ0Ó1Ò1Ø˜U‘m×'Ñ'¨	°2Ó6ˆGÜ�7Œ|¤C¨£L×$9Ñ$9¸&Ô$AÜ—‘Ü—M‘M×(Ñ(Ø%Ø 'ð )ó ôð ×6Ñ6ÜÐ?�7Ð?˜V E™]×.Ñ.¨z¸2Ó>Ð?Ó@ØØ�5‰M˜*Ñ%ó
ˆô
 ÓJ ~ÔJÓJˆŒà ™ |Ñ4ˆŒÙ(‘V¨fˆŒ
Ø"Ð.Ù)¨#Ó.ˆCÜ˜c 3Ô'Ü Ü—K‘K×&Ñ&Ð,?ÄtÈCÃyÐ&ÓQóð ð ˆ
÷{ñ ús   Ñ/ZÚZ	Útok2vec_namerä   Ú	listenersc                 ó®  — || j                   vrGt        j                  j                  |||dj	                  | j                   «      ¬«      }t        |«      ‚|| j                   vrGt        j                  j                  |||dj	                  | j                   «      ¬«      }t        |«      ‚| j                  |«      }| j                  |«      }t        |t        j                  «      s3t        t        j                  j                  |t        |«      ¬«      «      ‚|j                  }|j                  j                  |g «      }| j                  |«      }	| j                   |   }
|�r·t"        j$                  j'                  d|«       t)        t+        |«      «      t)        |«      k7  r7t        j,                  j                  |||t)        |«      ¬«      }t        |«      ‚|D ]d  }	 t#        j.                  |
|«       |d   }d|j4                  v r!|j4                  d   } ||d   |
d   d	   «      }t#        j6                  |
||«       Œf |D ]Ñ  }|j9                  «       }|j4                  j                  d
«      }|�ot)        t;        j<                  |«      j>                  «      }|dk(  r	 ||«      }n9|dk(  r ||||«      }n)t        t        j@                  j                  |¬«      «      ‚t#        jB                  |	j                  ||«       |jE                  ||«       ŒÓ yy# t0        $ r. t        j2                  j                  |||¬«      }t        |«      ‚w xY w)aÅ  Find listener layers (connecting to a token-to-vector embedding
        component) of a given pipeline component model and replace
        them with a standalone copy of the token-to-vector layer. This can be
        useful when training a pipeline with components sourced from an existing
        pipeline: if multiple components (e.g. tagger, parser, NER) listen to
        the same tok2vec component, but some of them are frozen and not updated,
        their performance may degrade significantly as the tok2vec component is
        updated with new data. To prevent this, listeners can be replaced with
        a standalone tok2vec layer that is owned by the component and doesn't
        change if the component isn't updated.

        tok2vec_name (str): Name of the token-to-vector component, typically
            "tok2vec" or "transformer".
        pipe_name (str): Name of pipeline component to replace listeners for.
        listeners (Iterable[str]): The paths to the listeners, relative to the
            component config, e.g. ["model.tok2vec"]. Typically, implementations
            will only connect to one tok2vec component, [model.tok2vec], but in
            theory, custom models can use multiple listeners. The value here can
            either be an empty list to not replace any listeners, or a complete
            (!) list of the paths to all listener layers used by the model.

        DOCS: https://spacy.io/api/language#replace_listeners
        rO  )Útok2vecr’   ÚunknownrG  )r’   rÿ   z%Replacing listeners of component '%s')r’   r­  ÚpathsÚn_listeners)r’   r­  r¹   r]  Úreplace_listener_cfgr­  Úreplace_listenerNr!   é   )Ú
num_params)#rÓ   r&   ÚE889r¤   rU  r¢   rJ  rÞ   r¡   r#   rv  ÚE888r¥   r]  rw  r¦   r    r$   r�   r‚   rÏ   rÒ   ÚE887Údot_to_objectrH  ÚE886ÚattrsÚset_dot_to_objectÚcopyÚinspectÚ	signatureÚ
parametersÚE1055Úreplace_model_nodeÚremove_listener)r¬   rª  rä   r«  r,  r­  Útok2vec_cfgÚtok2vec_modelÚpipe_listenersrÿ   r¦  Úlistener_pathÚ
new_configÚreplace_funcÚlistenerÚ	new_modelÚreplace_listener_funcr´  s                     rk   r…  zLanguage.replace_listenersÌ  s  € ð: ˜tŸ™Ñ.Ü—+‘+×$Ñ$Ø$ØØ$Ø—Y‘Y˜tŸ™Ó/ð	 %ó ˆCô ˜S“/Ð!Ø˜DŸO™OÑ+Ü—+‘+×$Ñ$Ø$ØØ!Ø—Y‘Y˜tŸ™Ó/ð	 %ó ˆCô ˜S“/Ð!Ø—-‘- Ó-ˆØ×*Ñ*¨<Ó8ˆÜ˜'¤2×#9Ñ#9Ô:ÜœVŸ[™[×/Ñ/°\ÌÈWËÐ/ÓVÓWÐWØŸ™ˆØ ×-Ñ-×1Ñ1°)¸RÓ@ˆØ�}‰}˜YÓ'ˆØ×%Ñ% iÑ0ˆÚÜ�K‰K×ÑÐEÀyÔQÜ”4˜	“?Ó#¤s¨>Ó':Ò:ô —k‘k×(Ñ(Ø"Ø(Ø#Ü # NÓ 3ð	 )ó �ô ! “oÐ%ð "+ò L�ð*Ü×&Ñ& x°Ô?ð )¨Ñ1�
Ø)¨]×-@Ñ-@Ñ@Ø#0×#6Ñ#6Ð7MÑ#N�LÙ!-Ø# GÑ,¨h°wÑ.?À	Ñ.Jó"�Jô ×&Ñ& x°À
ÕKðLð" +ò =�Ø)×.Ñ.Ó0�	Ø(5×(;Ñ(;×(?Ñ(?Ð@RÓ(SÐ%Ø(Ð4ô "%Ü×)Ñ)Ð*?Ó@×KÑKó"�Jð " Q’Ù$9¸)Ó$D™	Ø# qšÙ$9¸)ÀXÈwÓ$W™	ä(¬¯©×)<Ñ)<È
Ð)<Ó)SÓTÐTä×'Ñ'¨¯
©
°H¸iÔHØ×'Ñ'¨°)Õ<ñ#=ðA øô&  ò *Ü Ÿ+™+×,Ñ,Ø&°À=ð -ó �Cô % S›/Ð)ð	*ús   Ç"LÌ7MÚmemc           	   #   óþ  K  — |€
t        «       }t        «       5 }|j                  | j                  j	                  |«      «      g}t        | j                  d«      r9|j                  |j                  | j                  j	                  |«      «      «       | j                  D ]A  \  }}t        |d«      sŒ|j                  |j                  |j	                  |«      «      «       ŒC |–— ddd«       y# 1 sw Y   yxY w­w)a¢  Begin a block where all resources allocated during the block will
        be freed at the end of it. If a resources was created within the
        memory zone block, accessing it outside the block is invalid.
        Behaviour of this invalid access is undefined. Memory zones should
        not be nested.

        The memory zone is helpful for services that need to process large
        volumes of text with a defined memory budget.

        Example
        -------
        >>> with nlp.memory_zone():
        ...     for doc in nlp.pipe(texts):
        ...        process_my_doc(doc)
        >>> # use_doc(doc) <-- Invalid: doc was allocated in the memory zone
        NÚmemory_zone)	r   r   Úenter_contextr{   rÎ  r  r”   rà   r»   )r¬   rÌ  Ústackr1  rï   rÿ   s         rk   rÎ  zLanguage.memory_zone4  sÓ   è ø€ ð$ ˆ;Ü“&ˆCô ‹[ð 	˜EØ×+Ñ+¨D¯J©J×,BÑ,BÀ3Ó,GÓHÐIˆHÜ�t—~‘~ }Ô5Ø—‘ × 3Ñ 3°D·N±N×4NÑ4NÈsÓ4SÓ TÔUØŸ=™=ò P‘��4Ü˜4 Õ/Ø—O‘O E×$7Ñ$7¸×8HÑ8HÈÓ8MÓ$NÕOðPð ŠI÷	÷ 	ñ 	üs#   ‚C=™BC1Â35C1Ã(	C=Ã1C:Ã6C=r„  r¹   c                ó  ‡ ‡— t        j                  |«      }i }ˆ fd„|d<   ˆ fd„|d<   ˆ fd„|d<   ‰ j                  D ]  \  }}|‰v rŒt        |d«      sŒ|fd„||<   Œ! ˆˆ fd	„|d
<   t        j                  ||‰«       y)aa  Save the current state to a directory.  If a model is loaded, this
        will include the model.

        path (str / Path): Path to a directory, which will be created if
            it doesn't exist.
        exclude (Iterable[str]): Names of components or serialization fields to exclude.

        DOCS: https://spacy.io/api/language#to_disk
        c                 ó@   •— ‰j                   j                  | dg¬«      S ©Nr{   r„  )r”   Úto_disk©rû   r¬   s    €rk   ú<lambda>z"Language.to_disk.<locals>.<lambda>b  s#   ø€ ¨T¯^©^×-CÑ-CØ˜�yð .Dó .
€ rj   r”   c                 óV   •— t        j                  | t        ‰j                  «      «      S r·   )rá   Ú
write_jsonrã  r‹   rÕ  s    €rk   rÖ  z"Language.to_disk.<locals>.<lambda>e  s!   ø€ ¬U×-=Ñ-=ØÔ$ T§Y¡YÓ/ó.
€ rj   ú	meta.jsonc                 ó:   •— ‰j                   j                  | «      S r·   )rQ   rÔ  rÕ  s    €rk   rÖ  z"Language.to_disk.<locals>.<lambda>h  s   ø€ ¨d¯k©k×.AÑ.AÀ!Ó.D€ rj   ú
config.cfgrÔ  c                 ó*   — |j                  | dg¬«      S rÓ  )rÔ  ©rû   r¯  s     rk   rÖ  z"Language.to_disk.<locals>.<lambda>n  s   € °T·\±\À!ÈgÈY°\Ó5W€ rj   c                 ó>   •— ‰j                   j                  | ‰¬«      S ©Nr„  )r{   rÔ  )rû   rÏ  r¬   s    €€rk   rÖ  z"Language.to_disk.<locals>.<lambda>o  s   ø€ ¨¯©×);Ñ);¸AÀwÐ);Ó)O€ rj   r{   N)r$   Úensure_pathr©   r  rÔ  )r¬   r¹   rÏ  Úserializersr’   r¯  s   ` `   rk   rÔ  zLanguage.to_diskT  s›   ù€ ô ×Ñ Ó%ˆØˆó$
ˆ�KÑ ó$
ˆ�KÑ ó %Eˆ�LÑ!Ø×*Ñ*ò 	X‰JˆD�$Ø�w‰ØÜ˜4 Ô+ØØ/3Ò WˆK˜Òð	Xô  Pˆ�GÑÜ�‰�T˜;¨Õ0rj   rÓ   c                 ó*  — t        | t        «      r| g} | }|rmt        |t        «      r|g}h |D �cg c]	  }||vsŒ|‘Œ c}£| £}t        t        |«      |z  «      r*t	        t
        j                  j                  || ¬«      «      ‚t        |«      S c c}w )af  Derives whether (1) `disable` and `enable` values are consistent and (2)
        resolves those to a single set of disabled components. Raises an error in
        case of inconsistency.

        disable (Union[str, Iterable[str]]): Name(s) of component(s) or serialization fields to disable.
        enable (Union[str, Iterable[str]]): Name(s) of pipeline component(s) to enable.
        pipe_names (Iterable[str]): Names of all pipeline components.

        RETURNS (Tuple[str, ...]): Names of components to exclude from pipeline w.r.t.
                                   specified includes and excludes.
        )r¹  r£  )	r¡   rd   rÏ   rg   r¢   r&   ÚE1042r¤   r¶  )r£  r¹  rÓ   r½  rä   s        rk   rœ  z"Language._resolve_component_statusr  sš   € ô$ �gœsÔ#Ø�iˆGØˆ
áÜ˜&¤#Ô&Ø ˜�ðØ-7ÖS 	¸9ÈFÒ;R’)ÒSðàðˆJô
 ”3�v“; Ñ+Ô,Ü ¤§¡×!4Ñ!4¸FÈGÐ!4Ó!TÓUÐUä�ZÓ Ð ùò Ts
   °	BºB)rÏ  Ú	overridesrä  c                óæ  ‡ ‡‡— dt         ddfˆ fd„}dt         ddfˆˆ fd„}t        j                  |«      }i }t        |dz  «      j                  «       r	ˆˆ fd„|d<   ||d<   ||d	<   ˆ fd
„|d<   ‰ j                  D ]  \  }}|‰v rŒt        |d«      sŒ|fd„||<   Œ! |d	z  j                  «       sd	‰vrt        ‰«      d	gz   Št        j                  ||‰«       |‰ _        ‰ j                  «        ‰ S )a­  Loads state from a directory. Modifies the object in place and
        returns it. If the saved `Language` object contains a model, the
        model will be loaded.

        path (str / Path): A path to a directory.
        exclude (Iterable[str]): Names of components or serialization fields to exclude.
        RETURNS (Language): The modified `Language` object.

        DOCS: https://spacy.io/api/language#from_disk
        r¹   rl   Nc                 óü   •— | j                  «       rkt        j                  | «      }‰j                  j	                  |«       |j                  di «      j                  d«      ‰j                  j                  _        y y ©Nr‘   r’   )	Úexistsrá   Ú	read_jsonr‹   rÓ  r¦   r{   r‘   r’   )r¹   r  r¬   s     €rk   Údeserialize_metaz,Language.from_disk.<locals>.deserialize_meta§  s[   ø€ Ø�{‰{Œ}Ü—‘ tÓ,�Ø—	‘	× Ñ  Ô&ð +/¯(©(°9¸bÓ*A×*EÑ*EÀfÓ*M�—
‘
×"Ñ"Õ'ð rj   c                 ób   •— | j                  «       r‰j                  j                  | ‰¬«       y y rß  )rè  r{   Ú	from_disk)r¹   rÏ  r¬   s    €€rk   Údeserialize_vocabz-Language.from_disk.<locals>.deserialize_vocab¯  s(   ø€ Ø�{‰{Œ}Ø—
‘
×$Ñ$ T°7Ð$Õ;ð rj   rÛ  c                 ó@   •— ‰j                   j                  | d‰¬«      S )NF)rc  rä  )rQ   rì  )rû   rä  r¬   s    €€rk   rÖ  z$Language.from_disk.<locals>.<lambda>¶  s#   ø€ °D·K±K×4IÑ4IØ˜u°	ð 5Jó 5€ rj   rÙ  r{   c                 ó@   •— ‰j                   j                  | dg¬«      S rÓ  )r”   rì  rÕ  s    €rk   rÖ  z$Language.from_disk.<locals>.<lambda>»  s#   ø€ ¨t¯~©~×/GÑ/GØ˜�yð 0Hó 0
€ rj   r”   rì  c                 ó*   — |j                  | dg¬«      S rÓ  )rì  rÝ  s     rk   rÖ  z$Language.from_disk.<locals>.<lambda>Ã  s   € °t·~±~Ø˜G˜9ð 8Fó 8€ rj   )
r	   r$   rà  rè  r©   r  rÒ   rì  r�   rw  )	r¬   r¹   rÏ  rä  rê  rí  Údeserializersr’   r¯  s	   ` ``     rk   rì  zLanguage.from_disk•  s  ú€ ð$	N¤4ð 	N¨Dõ 	Nð	<¤Dð 	<¨Tö 	<ô ×Ñ Ó%ˆØˆÜ��|Ñ#Ó$×+Ñ+Ô-ô+ˆM˜,Ñ'ð &6ˆ�kÑ"Ø!2ˆ�gÑó&
ˆ�kÑ"ð ×*Ñ*ò 	‰JˆD�$Ø�w‰ØÜ˜4 Ô-ØØ15ò #ˆM˜$Òð	ð �w‘×&Ñ&Ô(¨W¸GÑ-Cä˜7“m w iÑ/ˆGÜ�‰�t˜]¨GÔ4ØˆŒ
Ø×ÑÔØˆrj   c                óÔ   ‡ ‡— i }ˆˆ fd„|d<   ˆ fd„|d<   ˆ fd„|d<   ˆ fd„|d<   ‰ j                   D ]  \  }}|‰v rŒt        |d	«      sŒ|fd
„||<   Œ! t        j                  |‰«      S )a  Serialize the current state to a binary string.

        exclude (Iterable[str]): Names of components or serialization fields to exclude.
        RETURNS (bytes): The serialized form of the `Language` object.

        DOCS: https://spacy.io/api/language#to_bytes
        c                  ó<   •— ‰j                   j                  ‰ ¬«      S rß  )r{   rH  )rÏ  r¬   s   €€rk   rÖ  z#Language.to_bytes.<locals>.<lambda>×  s   ø€  t§z¡z×':Ñ':À7Ð':Ó'K€ rj   r{   c                  ó>   •— ‰ j                   j                  dg¬«      S rÓ  )r”   rH  r¸   s   €rk   rÖ  z#Language.to_bytes.<locals>.<lambda>Ø  s   ø€ ¨4¯>©>×+BÑ+BÈGÈ9Ð+BÓ+U€ rj   r”   c                  óT   •— t        j                  t        ‰ j                  «      «      S r·   )rá   Ú
json_dumpsrã  r‹   r¸   s   €rk   rÖ  z#Language.to_bytes.<locals>.<lambda>Ù  s   ø€ ¬5×+;Ñ+;Ü! $§)¡)Ó,ó,
€ rj   rÙ  c                  ó8   •— ‰ j                   j                  «       S r·   )rQ   rH  r¸   s   €rk   rÖ  z#Language.to_bytes.<locals>.<lambda>Ü  s   ø€ ¨D¯K©K×,@Ñ,@Ó,B€ rj   rÛ  rH  c                 ó(   — | j                  dg¬«      S rÓ  )rH  )r¯  s    rk   rÖ  z#Language.to_bytes.<locals>.<lambda>â  s   € °$·-±-ÈÈ	°-Ó2R€ rj   )r©   r  r$   rH  )r¬   rÏ  rá  r’   r¯  s   ``   rk   rH  zLanguage.to_bytesÎ  s‰   ù€ ð 79ˆÜKˆ�GÑÛ#Uˆ�KÑ ó$
ˆ�KÑ ó %Cˆ�LÑ!Ø×*Ñ*ò 	S‰JˆD�$Ø�w‰ØÜ˜4 Ô,ØØ,0Ò RˆK˜Òð	Sô �}‰}˜[¨'Ó2Ð2rj   Ú
bytes_datac                óþ   ‡ ‡— ˆ fd„}i }ˆ fd„|d<   ||d<   ˆˆ fd„|d<   ˆ fd„|d<   ‰ j                   D ]  \  }}|‰v rŒt        |d	«      sŒ|fd
„||<   Œ! t        j                  ||‰«       ‰ j	                  «        ‰ S )a!  Load state from a binary string.

        bytes_data (bytes): The data to load from.
        exclude (Iterable[str]): Names of components or serialization fields to exclude.
        RETURNS (Language): The `Language` object.

        DOCS: https://spacy.io/api/language#from_bytes
        c                 óÚ   •— t        j                  | «      }‰j                  j                  |«       |j	                  di «      j	                  d«      ‰j
                  j                  _        y rç  )rá   Ú
json_loadsr‹   rÓ  r¦   r{   r‘   r’   )Úbr  r¬   s     €rk   rê  z-Language.from_bytes.<locals>.deserialize_metañ  sO   ø€ Ü×#Ñ# AÓ&ˆDØ�I‰I×Ñ˜TÔ"ð '+§h¡h¨y¸"Ó&=×&AÑ&AÀ&Ó&IˆD�J‰J×ÑÕ#rj   c                 ó>   •— ‰j                   j                  | d¬«      S )NF)rc  )rQ   rÆ  ©rý  r¬   s    €rk   rÖ  z%Language.from_bytes.<locals>.<lambda>ù  s!   ø€ °·±×0FÑ0FØ˜5ð 1Gó 1
€ rj   rÛ  rÙ  c                 ó>   •— ‰j                   j                  | ‰¬«      S rß  )r{   rÆ  )rý  rÏ  r¬   s    €€rk   rÖ  z%Language.from_bytes.<locals>.<lambda>ý  s   ø€ ¨4¯:©:×+@Ñ+@ÀÈGÐ+@Ó+T€ rj   r{   c                 ó@   •— ‰j                   j                  | dg¬«      S rÓ  )r”   rÆ  rÿ  s    €rk   rÖ  z%Language.from_bytes.<locals>.<lambda>þ  s#   ø€ ¨t¯~©~×/HÑ/HØ˜�yð 0Ió 0
€ rj   r”   rÆ  c                 ó*   — |j                  | dg¬«      S rÓ  )rÆ  )rý  r¯  s     rk   rÖ  z%Language.from_bytes.<locals>.<lambda>	  s   € °t·±Ø˜G˜9ð 8Gó 8€ rj   )r©   r  r$   rÆ  rw  )r¬   rù  rÏ  rê  rñ  r’   r¯  s   ` `    rk   rÆ  zLanguage.from_byteså  s¢   ù€ ô	Jð <>ˆó'
ˆ�lÑ#ð &6ˆ�kÑ"Ü!Tˆ�gÑó&
ˆ�kÑ"ð ×*Ñ*ò 	‰JˆD�$Ø�w‰ØÜ˜4 Ô.ØØ15ò #ˆM˜$Òð	ô 	�‰˜
 M°7Ô;Ø×ÑÔØˆrj   )Tr·   )NNNN)rl   r²  ©rl   N)qr_   r`   ra   rb   rN   ru   r   r   rd   rc   r˜   rš   rB   r&   r*  rò   r‰   r   r   rJ   Úboolrf   r   r   r:   rI   r°   r³   Úpropertyr¹   r‹   Úsetterr   rQ   r   rÊ   rô   r   r9  rÉ   rÔ   r»   rÓ   r   rÑ   Úclassmethodr  r  r  r  rÝ   rÞ   rC   r   ÚfloatrÚ   r  r/   rJ  rP  ri  r{  ru  rŽ  r“  rš  r’  r   r¢  r�  r¸  r·  rÂ  rÅ  r©  rL   rË  r<   r   rÓ  rì  r÷  r—  r  r¬  r   r  r7   r(  rÝ  r   re   r.  r   r%   r   rÿ   r@  rB  rw  r@   r©  r…  r   rÎ  r	   rÔ  Ústaticmethodrœ  rì  rH  rÆ  Ú__classcell__)rµ   s   @rk   rm   rm   Š   s§  ø… ñð €HØ€Dˆ(�3‰-ÓØ#€Ná  v§{¡{Ô3€IØ.0€M�4˜˜]Ð*Ñ+Ó0ð %)ðF1ð  Ø!ØSWØEIØòF1à�U˜D�[Ñ!ðF1ð ð	F1ð
 �3˜�8‰nðF1ð # 8¨Z¨L¸(ÀCÀ5È#À:Ñ:NÐ,NÑ#OÑPðF1ð ! ¨7¨)°[Ð*@Ñ!AÑBðF1ð ðF1ð 
óF1ôP5ð
 ñó ðð ð#�d˜3 ˜8‘nò #ó ð#ðJ 
‡[�[ð˜$˜s C˜x™.ð ¨Tò ó ðð ð ˜ò  ó ð ðD ‡]�]ð˜Fð  tò ó ðð ðR˜$˜s™)ò Ró ðRð ð'˜t C™yò 'ó ð'ð ð
˜D  s¨LÐ'8Ñ!9Ñ:ò 
ó ð
ð ðY  c¡ò Yó ðYð ðR˜$˜u S¨,Ð%6Ñ7Ñ8ò Ró ðRð ðT˜D ™Iò Tó ðTð ð+  S¨# X¡ò +ó ð+ð ð(˜T # t¨C¡y .Ñ1ò (ó ð(ð ðQ˜sð Q tò Qó ðQð
 ð$ Cð $¨Cò $ó ð$ð ðH Cð H¨Mò Hó ðHð ð> Cð >°ð >À$ò >ó ð>ð% #ð %¨-ó %ð	 Cð 	¨Fó 	ð ñ
 *:Ó);Ù!1Ó!3Ù"2Ó"4Ø!Ù<LÓ<NØ#'òWàðWð ˜S #˜X™ð	Wð
 ˜#‘ðWð ˜3‘-ðWð ðWð  $ C¨°%©Ð$8Ñ9ðWð �xÑ ðWð 
òWó ðWðr ñ
 "2Ó!3Ù"2Ó"4Ø!Ø'+òBàðBð ˜#‘ð	Bð
 ˜3‘-ðBð ðBð �|Ñ$ðBð 
�#�s�(Ñ	òBó ðBòN KØò	ð �3‰iðð ð	ð
 
�$�s˜C�x‘.Ñ	!óð&Q˜Sð Q \ó Qð  #ðG&ñ
 "2Ó!3Ø'+ØòG&àðG&ð �s‰mðG&ð
 �S˜#�X‘ðG&ð ˜VÑ$ðG&ð ðG&ð 
óG&ðR%,Øð%,Ø(2ð%,Ø=@ð%,à	ˆ|˜SÐ Ñ	!ó%,ðT #ðDð
 -1Ø+/Ø $Ø#Ø'+Ù!1Ó!3Ø'+ØòDàðDð �s‰mðDð
 ˜˜s C˜x™Ñ)ðDð ˜˜c 3˜h™Ñ(ðDð ˜‰~ðDð �t‰nðDð ˜Ñ$ðDð �S˜#�X‘ðDð ˜VÑ$ðDð ðDð 
óDðP -1Ø+/Ø $Ø#ñ5Wà˜˜s C˜x™Ñ)ð5Wð ˜˜c 3˜h™Ñ(ð5Wð ˜‰~ð	5Wð
 �t‰nð5Wð 
ó5Wðn	'˜Sð 	' Tó 	'ñ  "2Ó!3Øò)àð)ð ð)ð
 �S˜#�X‘ð)ð ð)ð 
ó)ðV  Cð  °3ð  ¸4ó  ð4 ð ¨¨c°<Ð.?Ñ(@ó ð2	! ð 	!¨ó 	!ð	( ð 	(¨ó 	(ñ "2Ó!3Ø=Aò)à�C˜�H‰oð)ð ˜#‘ð	)ð
    S¨$¨s°C¨x©.Ð%8Ñ 9Ñ:ð)ð 
ó)óV0ð  8<Ø6:ò	$,ð ˜%  X¨c¡]Ð 2Ñ3Ñ4ð$,ð ˜˜s H¨S¡MÐ1Ñ2Ñ3ð	$,ð
 
ó$,ðL
$˜Sð 
$ Só 
$ð	C E¨#¨s°E¨/Ñ$:ð 	C¸só 	CðØ˜c 3¨˜oÑ.ðØ9Dðà	óð  ðI-ð
 Ø#'Ø-1Ø=AÙ!1Ó!3Ù#3Ó#5òI-à˜7Ñ#ðI-ð �C‰=ðI-ð
 ðI-ð �iÑ ðI-ð ˜˜c 5˜jÑ)Ñ*ðI-ð    S¨$¨s°C¨x©.Ð%8Ñ 9Ñ:ðI-ð ˜#‘ðI-ð ˜C‘=óI-ð^ $(Ø-1Ø=AÙ!1Ó!3ò>à˜7Ñ#ð>ð �iÑ ð	>ð
 ˜˜c 5˜jÑ)Ñ*ð>ð    S¨$¨s°C¨x©.Ð%8Ñ 9Ñ:ð>ð ˜#‘ð>ð 
ˆc�5ˆjÑ	ó>ðD CGð6ð $(ò	6à˜x¨¨H°WÑ,=Ð(=Ñ>Ñ?ð6ð �iÑ ð	6ð
 
ó6ð CGðJð $(ò	Jà˜x¨¨H°WÑ,=Ð(=Ñ>Ñ?ðJð �iÑ ð	Jð
 
óJðX =Aò  h¨yÑ&9ð ÀYó ð26à  l°D¸±I¸yÐ IÈ8Ð SÑTó6ð, %)Ø#'Ø=AØ/3Ø#ò9.à˜7Ñ#ð9.ð ˜S‘Mð	9.ð
 ˜Ñ ð9.ð    S¨$¨s°C¨x©.Ð%8Ñ 9Ñ:ð9.ð ˜T # s (™^Ñ,ð9.ð ð9.ð 
ˆc�3ˆh‰ó9.òv8ð
 ð! ¨$¡ò !ó ð!ðF ð
 %(Ø$'Ø!$Ø=@Øò	à˜˜c 3˜h™Ñ(ð	ð ˜5‘>ð		ð
 ˜S‘Mð	ð ˜#‘ð	ð    S¨$¨s°C¨x©.Ð%8Ñ 9Ñ:ð	ð ð	ð 
�#‰ò	ó ð	ð ð
 $'Ø$'Ø!$Ø=@Øò	0à˜˜e C¨ H™o¨{Ð:Ñ;Ñ<ð	0ð ˜4‘=ð		0ð
 ˜S‘Mð	0ð ˜#‘ð	0ð    S¨$¨s°C¨x©.Ð%8Ñ 9Ñ:ð	0ð ð	0ð 
�%˜˜[Ð(Ñ)Ñ	*ò	0ó ð	0ð"  Ø$(Ù!1Ó!3Ø=AØòSàØ�U˜3 ˜8‘_Ñ% x°°e¸CÀ¸H±oÀ{Ð6RÑ0SÑ'TÐTñ
ðSð ðSð ˜S‘MðSð ˜#‘ðSð    S¨$¨s°C¨x©.Ð%8Ñ 9Ñ:ðSð ðSð 
ˆx˜‰}˜h u¨S°+Ð-=Ñ'>Ñ?Ð?Ñ	@óSðj h¨s¡mó ðf-à˜˜c 3˜h™Ñ(ðf-ð ˜  h¨s¡mÐ!3Ñ4Ñ5ðf-ð ð	f-ð
 ðf-ð 
�#‰óf-óP0ð, ð 13ðgð %)Ø-AØ,@Ø-AÙ/Ó1ØØògà�d˜3 ˜8‘n fÐ,Ñ-ðgð �U˜D�[Ñ!ð	gð
 �s˜H S™MÐ)Ñ*ðgð �c˜8 C™=Ð(Ñ)ðgð �s˜H S™MÐ)Ñ*ðgð �3˜�8‰nðgð ðgð ðgð 
ògó ðgðRf=àðf=ð ðf=ð ˜C‘=ð	f=ð
 
óf=ðP ñ˜x¨™~ð ¸À$¹ò ó ðñ@ CSÓBTò1Ø˜#˜t˜)Ñ$ð1Ø2:¸3±-ð1à	ó1ð< ð !Ø�s˜H S™MÐ)Ñ*ð !à�c˜8 C™=Ð(Ñ)ð !ð ˜S‘Mð !ð 
ˆs�Cˆx‰ò	 !ó ð !ñL "2Ó!3Ù$4Ó$6ò7à�C˜�IÑð7ð ˜#‘ð	7ð
 ˜˜S˜‘>ð7ð 
ó7ñr 4DÓ3Eò 3 8¨C¡=ð 3È%ó 3ñ0 >NÓ=Oò&Øð&Ø-5°c©]ð&à	÷&rj   Ú	meta_dictc                 ó2   — t        d„ d„ t        | «      «      S )Nc                 ó6   — t        | t        j                  «      S r·   )r¡   ÚnumpyÚfloating©Úvs    rk   rÖ  z'_replace_numpy_floats.<locals>.<lambda>	  s   € ”*˜Q¤§¡Ó/€ rj   c                 ó   — t        | «      S r·   )r  r  s    rk   rÖ  z'_replace_numpy_floats.<locals>.<lambda>	  s
   € ¼5À»8€ rj   )r    re   )r  s    rk   rã  rã  	  s   € ÜÙ/Ñ1CÄTÈ)Ã_óð rj   c                   óÆ   — e Zd ZU dZeed<   dZeeee	f      ed<    e
«       Zee   ed<    e
«       Zee   ed<   dZeed<    e
«       Zee   ed	<   dZeeeee   f      ed
<   y)rˆ   a  Dataclass containing information about a component and its defaults
    provided by the @Language.component or @Language.factory decorator. It's
    created whenever a component is defined and stored on the Language class for
    each component instance and factory instance.
    rÚ   Nrš   r  r  Fr  r$  rß   )r_   r`   ra   rb   rd   rc   rš   r   r   r   r¶  r  r   r  r  r  r$  rß   r  ri   rj   rk   rˆ   rˆ   	  s}   … ñð ƒLØ/3€N�H˜T # s (™^Ñ,Ó3Ù"›W€GˆX�c‰]Ó$Ù#›g€Hˆh�s‰mÓ%Ø€K�ÓÙ!›G€FˆH�S‰MÓ#ØBFÐ˜8 D¨¨h°u©oÐ)=Ñ$>Ñ?ÔFrj   rˆ   c                   ó>   — e Zd ZdZdedee   ddfd„Zd„ Zd„ Z	d
d	„Z
y)r²  z)Manager for temporary pipeline disabling.ro   rð   rl   Nc                 óØ   — || _         || _        | j                  D ]  }| j                   j                  |«       Œ t        j	                  | «       | j                  | j                  «       y r·   )ro   rð   r   rÒ   r°   Úextend)r¬   ro   rð   r’   s       rk   r°   zDisabledPipes.__init__(	  sQ   € ØˆŒØˆŒ
Ø—J‘Jò 	(ˆDØ�H‰H×!Ñ! $Õ'ð	(ä�‰�dÔØ�‰�D—J‘JÕrj   c                 ó   — | S r·   ri   r¸   s    rk   Ú	__enter__zDisabledPipes.__enter__0	  s   € Øˆrj   c                 ó$   — | j                  «        y r·   )Úrestore)r¬   rƒ  s     rk   Ú__exit__zDisabledPipes.__exit__3	  s   € Ø�‰�rj   c                 óè   — | j                   D ]^  }|| j                  j                  vr)t        t        j
                  j                  |¬«      «      ‚| j                  j                  |«       Œ` g | dd y)zARestore the pipeline to its state when DisabledPipes was created.r  N)rð   ro   rÔ   r¢   r&   ÚE008r¤   r¢  r  s     rk   r  zDisabledPipes.restore6	  sa   € à—J‘Jò 	'ˆDØ˜4Ÿ8™8×3Ñ3Ñ3Ü ¤§¡×!3Ñ!3¸Ð!3Ó!>Ó?Ð?Ø�H‰H× Ñ  Õ&ð	'ð ˆ‰Q‰rj   r  )r_   r`   ra   rb   rm   r   rd   r°   r  r  r  ri   rj   rk   r²  r²  %	  s2   „ Ù3ð ˜Hð  ¨T°#©Yð  ¸4ó  òòôrj   r²  rÑ  c                 ó„   — | D �cg c]0  }t        |j                  j                  «       |j                  «      ‘Œ2 c}S c c}w )zøMake a copy of a batch of examples, copying the predicted Doc as well.
    This is used in contexts where we need to take ownership of the examples
    so that they can be mutated, for instance during Language.evaluate and
    Language.update.
    )r<   rù  r¼  rú  )rÑ  rÙ  s     rk   rÜ  rÜ  ?	  s-   € ð 2:Ö:¨2ŒG�B—D‘D—I‘I“K §¡Õ&Ò:Ð:ùÒ:s   …5=Ú
ensure_docrü   .Úunderscore_statec                 ó¬  ‡ — t        j                  |«       	 	 |j                  «       }t        |t        «      r!|j                  «        |j                  «        yˆ fd„|D «       }|D ]
  } ||«      }Œ |D �cg c]  }|j                  «       |j                  df‘Œ! }	}dgt        |«      t        |	«      z
  z  }
|	|
z   }	 |j                  |«       Œ¹c c}w # t        $ rE ddt        j                  t        j                  «       «      fg}dgt        «      dz
  z  }
||
z   }Y Œew xY w# t        $ r# |j                  «        |j                  «        Y yw xY w)a9  Worker for Language.pipe

    ensure_doc (Callable[[Union[str, Doc]], Doc]): Function to create Doc from text
        or raise an error if the input is neither a Doc nor a string.
    pipes (Iterable[Pipe]): The components to apply.
    receiver (multiprocessing.Connection): Pipe to receive text. Usually
        created by `multiprocessing.Pipe()`
    sender (multiprocessing.Connection): Pipe to send doc. Usually created by
        `multiprocessing.Pipe()`
    underscore_state (Tuple[dict, dict, dict]): The data in the Underscore class
        of the parent.
    Nc              3   ó6   •K  — | ]  \  }} ‰||«      –— Œ y ­wr·   ri   )r~  rÃ  rÈ  r  s      €rk   r€  z_apply_pipes.<locals>.<genexpr>f	  s!   øè ø€ ò Ù2C°(¸G‘
˜8 W×-ñùs   ƒ)NNNr!   )r;   Ú
load_stater¦   r¡   Ú_WorkDoneSentinelr\  rH  rÊ  rÏ   r¬  rá   Úmsgpack_dumpsÚ	tracebackÚ
format_excrW  ÚBrokenPipeError)r  rü   Úreceiverrk  r   Útexts_with_ctxr$  rÿ   r®  Ú	byte_docsÚpaddingr  Ú	error_msgs   `            rk   rY  rY  H	  s\  ø€ ô& ×ÑÐ*Ô+Ø
ð	'Ø%Ÿ\™\›^ˆNô ˜.Ô*;Ô<Ø—‘”Ø—‘Ô ØóØGUôˆDð ò "�Ù˜D“z‘ð"ð JNÖNÀ#˜#Ÿ,™,›.¨#¯,©,¸Ò=ÐNˆIÐNØ)Ð*¬c°.Ó.AÄCÈ	ÃNÑ.RÑSˆGà˜GÑ#ð ð	Ø�K‰K˜Ôð7 ùò  Oøô
 ò 	'Ø ¤e×&9Ñ&9¼)×:NÑ:NÓ:PÓ&QÐRÐSˆIØ)Ð*¬c°.Ó.AÀAÑ.EÑFˆGØ˜wÑ&ŠDð	'ûô ò 	ð �L‰LŒNØ�N‰NÔÙð	ús=   ™A C ÁC Á8$CÂ"C Â?D' ÃC ÃAD$Ä#D$Ä')EÅEc                   óX   — e Zd ZdZdee   deej                     de	ddfd„Z
d
d„Zd
d	„Zy)rV  zAUtil for sending data to multiprocessing workers in Language.piper  ÚqueuesrJ  rl   Nc                 ór   — t        |«      | _        t        t        |«      «      | _        || _        d| _        y )Nr   )Úiterr  r   r/  rJ  Úcount)r¬   r  r/  rJ  s       rk   r°   z_Sender.__init__„	  s-   € ô ˜“JˆŒ	Üœ5 ›=Ó)ˆŒØ$ˆŒØˆ�
rj   c                 óÄ   — t        j                  t        | j                  t	        | j
                  «      «      | j                  «      D ]  \  }}|j                  |«       Œ y)z1Send chunk_size items from self.data to channels.N)rP  Úislicerâ  r  r   r/  rJ  ra  )r¬   Úitemrs  s      rk   rW  z_Sender.sendŒ	  sJ   € ä ×'Ñ'Ü�—	‘	œ5 §¡Ó-Ó.°·±ó
ò 	‰GˆD�!ð �E‰E�$�Kñ		rj   c                 ó�   — | xj                   dz  c_         | j                   | j                  k\  rd| _         | j                  «        yy)znTell sender that comsumed one item. Data is sent to the workers after
        every chunk_size calls.
        r!   r   N)r2  rJ  rW  r¸   s    rk   r`  z_Sender.step”	  s6   € ð 	�
Š
�a‰�
Ø�:‰:˜Ÿ™Ò(ØˆDŒJØ�I‰I�Kð )rj   r  )r_   r`   ra   rb   r   r   r   r<  rS  rf   r°   rW  r`  ri   rj   rk   rV  rV  �	  s@   „ ÙKðØ˜S‘MðØ+/°·±©>ðØGJðà	óóôrj   rV  c                   ó   — e Zd Zy)r$  N)r_   r`   ra   ri   rj   rk   r$  r$  ž	  s   „ Ørj   r$  )„r>  r½  rP  Úmultiprocessingr<  rí  r&  r_  Ú
contextlibr   r   r¼  r   Údataclassesr   r   r   Úpathlibr	   Útimeitr
   r   Útypingr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  rá   Úcymem.cymemr   Ú	thinc.apir   r   r   r   Ú
thinc.utilr    r¿   r"   r#   r$   Úcompatr%   Úerrorsr&   r'   Úgit_infor(   Úlang.punctuationr)   r*   r+   Úlang.tokenizer_exceptionsr,   r-   rƒ   r.   Úpipe_analysisr/   r0   r1   Úschemasr2   r3   r4   r5   r6   r  r7   r”   r9   Útokensr:   Útokens.underscorer;   rÙ   r<   r=   Útraining.initializer>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   r‘   rI   r{   rJ   rK   r9  Ú__file__ÚparentÚDEFAULT_CONFIG_PATHÚload_configr˜   ÚDEFAULT_CONFIG_PRETRAIN_PATHrL   rN   r}   r„   rm   re   rã  rˆ   rÒ   r²  rÜ  rd   rÅ  rY  rV  r$  rb  ri   rj   rk   ú<module>rP     s  ðÛ Û Û Û Û Û Û ß 0Ý Ý !ß "Ý Ý )÷÷ ÷ ÷ ó ó& Û Ý ß AÓ AÝ (ç Ñ Ý ß $Ý !ß WÑ Wß AÝ !ß MÑ M÷õ õ Ý  Ý Ý )ß 0ß 9÷
÷ 
õ 
õ !ß &à˜˜˜s˜
Ñ#€ñ ˜8“n×+Ñ+Ð.BÑBÐ Ø!�×!Ñ!Ð"5Ó6€ñ  $ H›~×4Ñ4Ð7WÑWÐ ñ �mÓ$€÷Qñ Qð&˜( J <°Ð#:Ñ;ó ò2÷A"ñ A"ðHD Tð ¨dó ð ÷Gð Gó ðGô �Dô ð4;˜X gÑ.ð ;°4¸±=ó ;ð6Ø˜%  S¨% Ñ0°+Ð>ÀÐCÑDð6à�H˜S (¨3¡-Ð/Ñ0Ñ1ð6ð
 ˜D $¨Ð,Ñ-ð6ð 
ó6÷rñ ÷:	ñ 	ñ (Ó)Ñ rj   