o 0¦i~ã@s’ ddlmZmZddlZeeeƒZedƒZdd„Z ee ƒZ [ gd¢Z dZ ee dƒƒZee eƒƒƒZee i ¡ƒƒZee i ¡ƒƒZee i ¡ƒƒZee gƒƒZee egƒƒƒZee edƒƒƒZee ed d >ƒƒƒZee eƒƒƒZee d ƒƒZee d ƒƒZ ee e!ƒƒƒZ"ei ¡ƒZ#ei ¡ƒZ$ei ¡ƒZ%eej&ƒZ'ed d„ƒƒZ(dd„Z)e)ƒZ)ee)ƒZ*e) +¡[)dd„Z,e,ƒZ,ee,ƒZ-[,dd„Z.Gdd„ded�Z/Gdd„ded�Z0Gdd„de0ƒZ1e1 2e*¡Gdd„ded�Z3Gdd„de3ƒZ4Gd d!„d!e4ƒZ5e5 2e-¡Gd"d#„d#ed�Z6Gd$d%„d%e6ƒZ7e7 2e¡e7 2e¡e7 2e¡e7 2e¡e7 2e¡e7 2e¡e7 2e¡e7 2e¡e7 2e¡e7 2e¡e7 2e¡e7 2e ¡e7 2e"¡Gd&d'„d'e6ƒZ8Gd(d)„d)e7ƒZ9e9 2e(¡Gd*d+„d+ed�Z:Gd,d-„d-ed�Z;Gd.d/„d/e:e6e;ƒZd4d5„Z?d6d7„Z@Gd8d9„d9ed�ZAGd:d;„d;e<ƒZBeB 2eC¡Gdd?„d?e<ƒZEeE 2e'¡Gd@dA„dAe:ƒZFGdBdC„dCeFeBƒZGeG 2e#¡GdDdE„dEeFeBƒZHeH 2e%¡GdFdG„dGeFe<ƒZIeI 2e$¡GdHdI„dIeEƒZJeJ 2eK¡GdJdK„dKe8e<ƒZLeL 2eM¡eL 2eN¡eL 2e¡eL 2eO¡GdLdM„dMeLƒZPeP 2eQ¡eP 2e¡GdNdO„dOeLƒZReR 2e¡eR 2e¡dS)Pé)ÚABCMetaÚabstractmethodN.cCsdS©N©rrrú7/opt/alt/python310/lib64/python3.10/_collections_abc.pyÚ_fsr)Ú AwaitableÚ CoroutineÚ AsyncIterableÚ AsyncIteratorÚAsyncGeneratorÚHashableÚIterableÚIteratorÚ GeneratorÚ ReversibleÚSizedÚ ContainerÚCallableÚ CollectionÚSetÚ MutableSetÚMappingÚMutableMappingÚ MappingViewÚKeysViewÚ ItemsViewÚ ValuesViewÚSequenceÚMutableSequenceÚ ByteStringzcollections.abcóéièÚrccs�dVSrrrrrrÚ>s€r$cÃs�dSrrrrrrÚ_coro@s€r%cCs �dVdSrrrrrrÚ_agFs€ r&cGsN|j}|D]}|D]}||jvr|j|durtSnq tSqdS)NT)Ú__mro__Ú__dict__ÚNotImplemented)ÚCÚmethodsÚmroÚmethodÚBrrrÚ_check_methodsNs  ýþr/c@ó(eZdZdZedd„ƒZedd„ƒZdS)r rcCódS©Nrr©ÚselfrrrÚ__hash__^ózHashable.__hash__cCó|tur t|dƒStS)Nr5)r r/r)©Úclsr*rrrÚ__subclasshook__bó zHashable.__subclasshook__N)Ú__name__Ú __module__Ú __qualname__Ú __slots__rr5Ú classmethodr:rrrrr Zó  r )Ú metaclassc@ó0eZdZdZedd„ƒZedd„ƒZeeƒZ dS)rrccs �dVdSrrr3rrrÚ __await__ms€ zAwaitable.__await__cCr7)NrD)rr/r)r8rrrr:qr;zAwaitable.__subclasshook__N) r<r=r>r?rrDr@r:Ú GenericAliasÚ__class_getitem__rrrrrió   rc@s>eZdZdZedd„ƒZed dd„ƒZdd„Zed d „ƒZ dS) r rcCó t‚r©Ú StopIteration©r4ÚvaluerrrÚsend~ózCoroutine.sendNcCó2 |dur|dur |‚|ƒ}|dur| |¡}|‚r©Úwith_traceback©r4ÚtypÚvalÚtbrrrÚthrow…ó zCoroutine.throwc Có0 z | t¡Wtdƒ‚ttfyYdSw)Nzcoroutine ignored GeneratorExit©rVÚ GeneratorExitrJÚ RuntimeErrorr3rrrÚclose’ó ýÿzCoroutine.closecCs|tur t|ddddƒStS)NrDrMrVr\)r r/r)r8rrrr:œszCoroutine.__subclasshook__©NN) r<r=r>r?rrMrVr\r@r:rrrrr zs    r c@rC)r rcCstƒSr)r r3rrrÚ __aiter__ªszAsyncIterable.__aiter__cCr7)Nr_)r r/r)r8rrrr:®r;zAsyncIterable.__subclasshook__N) r<r=r>r?rr_r@r:rErFrrrrr ¦rGr c@ó0eZdZdZedd„ƒZdd„Zedd„ƒZdS) r rcÃó� t‚r©ÚStopAsyncIterationr3rrrÚ __anext__»s€zAsyncIterator.__anext__cCó|Srrr3rrrr_ÀózAsyncIterator.__aiter__cCó|tur t|ddƒStS)Nrdr_)r r/r)r8rrrr:Ãó zAsyncIterator.__subclasshook__N) r<r=r>r?rrdr_r@r:rrrrr ·ó r c@óFeZdZdZdd„Zedd„ƒZed dd„ƒZd d „Ze d d „ƒZ dS)r rcÃs� | d¡IdHSr)Úasendr3rrrrdÎs€zAsyncGenerator.__anext__cÃrarrbrKrrrrkÔs€zAsyncGenerator.asendNcÃs4� |dur|dur |‚|ƒ}|dur| |¡}|‚rrPrRrrrÚathrowÛs€ zAsyncGenerator.athrowc Ãs8� z | t¡IdHWtdƒ‚ttfyYdSw)Nz,asynchronous generator ignored GeneratorExit)rlrZrcr[r3rrrÚacloseès€ýÿzAsyncGenerator.aclosecCó|tur t|dddddƒStS)Nr_rdrkrlrm)r r/r)r8rrrr:òó ÿzAsyncGenerator.__subclasshook__r^) r<r=r>r?rdrrkrlrmr@r:rrrrr Êó    r c@rC)rrccó�dSrrr3rrrÚ__iter__ó€zIterable.__iter__cCr7)Nrr)rr/r)r8rrrr:r;zIterable.__subclasshook__N) r<r=r>r?rrrr@r:rErFrrrrrýs   rc@r`) rrcCrHrrIr3rrrÚ__next__ózIterator.__next__cCrerrr3rrrrrrfzIterator.__iter__cCrg)Nrrrt)rr/r)r8rrrr:rhzIterator.__subclasshook__N) r<r=r>r?rrtrrr@r:rrrrrrirc@r0)rrccrqrrr3rrrÚ __reversed__6rszReversible.__reversed__cCrg)Nrvrr)rr/r)r8rrrr:;rhzReversible.__subclasshook__N)r<r=r>r?rrvr@r:rrrrr2s  rc@rj)rrcCs | d¡Sr)rMr3rrrrtFs zGenerator.__next__cCrHrrIrKrrrrMLrNzGenerator.sendNcCrOrrPrRrrrrVSrWzGenerator.throwc CrX)Nzgenerator ignored GeneratorExitrYr3rrrr\`r]zGenerator.closecCrn)NrrrtrMrVr\)rr/r)r8rrrr:jrozGenerator.__subclasshook__r^) r<r=r>r?rtrrMrVr\r@r:rrrrrBrprc@r0)rrcCr1r2rr3rrrÚ__len__yr6z Sized.__len__cCr7)Nrw)rr/r)r8rrrr:}r;zSized.__subclasshook__N)r<r=r>r?rrwr@r:rrrrrurArc@rC)rrcCr1©NFr)r4ÚxrrrÚ __contains__ˆr6zContainer.__contains__cCr7)Nrz)rr/r)r8rrrr:Œr;zContainer.__subclasshook__N) r<r=r>r?rrzr@r:rErFrrrrr„rGrc@seZdZdZedd„ƒZdS)rrcCs|tur t|dddƒStS)Nrwrrrz)rr/r)r8rrrr:™szCollection.__subclasshook__N)r<r=r>r?r@r:rrrrr•srcsJeZdZ dZ‡fdd„Zedd„ƒZ‡fdd„Zdd „Zd d „Z ‡Z S) Ú_CallableGenericAliasrcsft|tƒr t|ƒdkstdƒ‚|\}}t|tƒr g|¢|‘R}n t|ƒs+td|›�ƒ‚tƒ |||¡S)Néz6Callable must be used as Callable[[arg, ...], result].úFExpected a list of types, an ellipsis, ParamSpec, or Concatenate. Got )Ú isinstanceÚtupleÚlenÚ TypeErrorÚlistÚ_is_param_exprÚsuperÚ__new__)r9ÚoriginÚargsÚt_argsÚt_result©Ú __class__rrr…¬sÿ ÿz_CallableGenericAlias.__new__cCsjg}|jD](}t|tƒrt|tƒsqt|dƒr$t|jtƒr$| |j¡qt|ƒr-|  |¡qtt   |¡ƒS)NÚ__parameters__) Ú__args__r~ÚtyperEÚhasattrrŒrÚextendÚ_is_typevarlikeÚappendÚdictÚfromkeys)r4ÚparamsÚargrrrrŒ¸s  €z$_CallableGenericAlias.__parameters__cs\t|jƒdkrt|jdƒrtƒ ¡Sdd dd„|jdd…Dƒ¡›dt|jdƒ›d �S) Nr|rzcollections.abc.Callable[[z, cSsg|]}t|ƒ‘qSr)Ú _type_repr)Ú.0ÚarrrÚ Êsz2_CallableGenericAlias.__repr__..éÿÿÿÿz], ú])r€r�rƒr„Ú__repr__Újoinr—r3rŠrrr�Æs ÿ þz_CallableGenericAlias.__repr__cCsB|j}t|ƒdkrt|dƒst|dd…ƒ|df}tt|ffS)Nr|rr›)r�r€rƒr‚r{r)r4r‡rrrÚ __reduce__Ís z _CallableGenericAlias.__reduce__c s¬t|jƒ}|dkrt|›d�ƒ‚t|tƒs|f}|dkr0t|jdƒr0|r0t|dƒs0t|ƒf}t|ƒ}||krNtd||kr@dnd›d|›d|›d |›�ƒ‚tt|j|ƒƒ‰g}|j D]^}t|t ƒrmt|t ƒsm|  |¡q[t |ƒrŠt|ƒr…ˆ|}t|ƒs„td |›�ƒ‚n$ˆ|}nt|d ƒr©t|jtƒr©|j}|r©t‡fd d „|Dƒƒ}||}t|tƒr´| |¡q[|  |¡q[t|dtƒsÏ|d}|dd…} | |f}ttt|ƒƒS)Nrz is not a generic classr"zToo ÚmanyÚfewz arguments for z ; actual z , expected r}rŒc3s�|]}ˆ|VqdSrr)r˜ry©ÚsubstrrÚ ús€z4_CallableGenericAlias.__getitem__..r›)r€rŒr�r~rrƒr‚r“Úzipr�rŽrEr’r‘r�r�r{r) r4ÚitemÚ param_lenÚitem_lenÚnew_argsr–Ú subparamsÚsubargsr‰rˆrr¢rÚ __getitem__Ós`  ÿ ÿ ÿþþ  ÿÿ     z!_CallableGenericAlias.__getitem__) r<r=r>r?r…ÚpropertyrŒr�rŸr¬Ú __classcell__rrrŠrr{ s   r{cCst|ƒ}|jdko |jdvS)NÚtyping>Ú ParamSpecÚTypeVar)rŽr=r<)r–Úobjrrrr‘ s ÿr‘csH ˆturdStˆtƒrdStˆƒ‰d}ˆjdko#t‡fdd„|DƒƒS)NT)r°Ú_ConcatenateGenericAliasr¯c3s�|]}ˆj|kVqdSr)r<)r˜Úname©r²rrr¤s€z!_is_param_expr..)ÚEllipsisr~r‚rŽr=Úany)r²Únamesrrµrrƒs  rƒcCsd t|tƒr t|ƒSt|tƒr |jdkr|jS|j›d|j›�S|tur&dSt|tƒr.|jSt|ƒS)NÚbuiltinsÚ.z...) r~rEÚreprrŽr=r>r¶Ú FunctionTyper<rµrrrr—s    r—c@rC)rrcOr1rxr)r4r‡ÚkwdsrrrÚ__call__2r6zCallable.__call__cCr7)Nr¾)rr/r)r8rrrr:6r;zCallable.__subclasshook__N) r<r=r>r?rr¾r@r:r{rFrrrrr.rGrc@sŠeZdZ dZdd„Zdd„Zdd„Zdd „Zd d „Ze d d „ƒZ dd„Z e Z dd„Z dd„ZeZdd„Zdd„Zdd„ZeZdd„ZdS)rrcCs>t|tƒstSt|ƒt|ƒkrdS|D] }||vrdSqdS©NFT©r~rr)r€©r4ÚotherÚelemrrrÚ__le__Oó ÿz Set.__le__cCs(t|tƒstSt|ƒt|ƒko| |¡Sr©r~rr)r€rÄ©r4rÂrrrÚ__lt__Yó z Set.__lt__cCs(t|tƒstSt|ƒt|ƒko| |¡Sr)r~rr)r€Ú__ge__rÇrrrÚ__gt__^rÉz Set.__gt__cCs>t|tƒstSt|ƒt|ƒkrdS|D] }||vrdSqdSr¿rÀrÁrrrrÊcrÅz Set.__ge__cCs(t|tƒstSt|ƒt|ƒko| |¡SrrÆrÇrrrÚ__eq__mrÉz Set.__eq__cCs ||ƒSrr©r9ÚitrrrÚ_from_iterablerszSet._from_iterablecs&t|tƒstSˆ ‡fdd„|Dƒ¡S)Nc3s�|] }|ˆvr|VqdSrr©r˜rLr3rrr¤~s€zSet.__and__..©r~rr)rÏrÇrr3rÚ__and__{ó z Set.__and__cCs |D] }||vr dSqdSr¿r)r4rÂrLrrrÚ isdisjoint‚s ÿzSet.isdisjointcCs*t|tƒstSdd„||fDƒ}| |¡S)Ncss�|] }|D]}|VqqdSrr)r˜ÚsÚerrrr¤Œs€zSet.__or__..rÑ)r4rÂÚchainrrrÚ__or__‰s  z Set.__or__cs:tˆtƒstˆtƒs tS| ˆ¡‰| ‡fdd„|Dƒ¡S)Nc3ó�|] }|ˆvr|VqdSrrrЩrÂrrr¤–ó €ÿÿzSet.__sub__..©r~rrr)rÏrÇrrÚrÚ__sub__‘ó   z Set.__sub__cs:t|tƒst|tƒs tSˆ |¡}ˆ ‡fdd„|Dƒ¡S)Nc3rÙrrrÐr3rrr¤žrÛzSet.__rsub__..rÜrÇrr3rÚ__rsub__™rÞz Set.__rsub__cCs2t|tƒst|tƒs tS| |¡}||||BSrrÜrÇrrrÚ__xor__¡s   z Set.__xor__cCs® tj}d|d}t|ƒ}d|d}||M}|D]}t|ƒ}|||d>AdAdN}||M}q||d?|d?AN}|d d }||M}||krO||d8}|d krUd }|S) Nr|r"iMïèréi³M[l×4~2é éiÍ iãÃ6r›iÁÇ8#)ÚsysÚmaxsizer€Úhash)r4ÚMAXÚMASKÚnÚhryÚhxrrrÚ_hashªs$     z Set._hashN)r<r=r>r?rÄrÈrËrÊrÌr@rÏrÒÚ__rand__rÔrØÚ__ror__rÝrßràÚ__rxor__rìrrrrrBs(     rc@sbeZdZ dZedd„ƒZedd„ƒZdd„Zdd „Zd d „Z d d „Z dd„Z dd„Z dd„Z dS)rrcCrHr©ÚNotImplementedErrorrKrrrÚaddÝruzMutableSet.addcCrHrrðrKrrrÚdiscardâruzMutableSet.discardcCs ||vr t|ƒ‚| |¡dSr)ÚKeyErrorrórKrrrÚremoveçszMutableSet.removecCs: t|ƒ}zt|ƒ}Wn tytd‚w| |¡|Sr)ÚiterÚnextrJrôró©r4rÎrLrrrÚpopís  ÿ zMutableSet.popcCó$ z | ¡qtyYdSwr)rùrôr3rrrÚclear÷óÿ ÿzMutableSet.clearcCs|D]}| |¡q|Sr)ròrørrrÚ__ior__ÿs zMutableSet.__ior__cCs||D]}| |¡q|Sr)rórørrrÚ__iand__s  zMutableSet.__iand__cCsT||ur | ¡|St|tƒs| |¡}|D]}||vr"| |¡q| |¡q|Sr)rûr~rrÏróròrørrrÚ__ixor__ s ù   zMutableSet.__ixor__cCs,||ur | ¡|S|D]}| |¡q |Sr)rûrórørrrÚ__isub__s þ zMutableSet.__isub__N)r<r=r>r?rròrórõrùrûrýrþrÿrrrrrrÏs     rc@sXeZdZ dZdZedd„ƒZddd„Zdd „Zd d „Z d d „Z dd„Z dd„Z dZ dS)rré@cCót‚r©rô©r4Úkeyrrrr¬1r6zMapping.__getitem__NcCs$ z||WSty|YSwrr©r4rÚdefaultrrrÚget5s   ÿz Mapping.getcCs$z||WdStyYdSwr¿rrrrrrz<s   ýÿzMapping.__contains__cCó t|ƒSr)rr3rrrÚkeysDóz Mapping.keyscCr r)rr3rrrÚitemsHr z Mapping.itemscCr r)rr3rrrÚvaluesLr zMapping.valuescCs&t|tƒstSt| ¡ƒt| ¡ƒkSr)r~rr)r“r rÇrrrrÌPrÓzMapping.__eq__r)r<r=r>r?Ú__abc_tpflags__rr¬rrzr r r rÌrvrrrrr$s  rc@s0eZdZdZdd„Zdd„Zdd„ZeeƒZ dS) r©Ú_mappingcCs ||_dSrr)r4ÚmappingrrrÚ__init__^ó zMappingView.__init__cCs t|jƒSr)r€rr3rrrrwarzMappingView.__len__cCs d |¡S)Nz&{0.__class__.__name__}({0._mapping!r}))Úformatr3rrrr�drzMappingView.__repr__N) r<r=r>r?rrwr�r@rErFrrrrrZs  rc@ó,eZdZdZedd„ƒZdd„Zdd„ZdS) rrcCót|ƒSr©ÚsetrÍrrrrÏnózKeysView._from_iterablecCs ||jvSrrrrrrrzrrzKeysView.__contains__ccs�|jEdHdSrrr3rrrrrus€zKeysView.__iter__N©r<r=r>r?r@rÏrzrrrrrrrjs   rc@r) rrcCrrrrÍrrrrÏ€rzItemsView._from_iterablecCs<|\}}z|j|}Wn tyYdSw||up||kSrx)rrô)r4r¦rrLÚvrrrrz„s ÿzItemsView.__contains__ccs"�|jD] }||j|fVqdSrrrrrrrr�s€ ÿzItemsView.__iter__Nrrrrrr|s   rc@s eZdZdZdd„Zdd„ZdS)rrcCs0|jD]}|j|}||us||krdSqdS©NTFr)r4rLrrrrrrz™s  ÿzValuesView.__contains__ccs�|jD]}|j|VqdSrrrrrrrr s€ ÿzValuesView.__iter__N)r<r=r>r?rzrrrrrrr•s rc@s`eZdZ dZedd„ƒZedd„ƒZeƒZefdd„Z dd „Z d d „Z dd d „Z ddd„Z dS)rrcCrrr©r4rrLrrrÚ __setitem__³r6zMutableMapping.__setitem__cCrrrrrrrÚ __delitem__·r6zMutableMapping.__delitem__cCs< z||}Wnty||jur‚|YSw||=|Sr)rôÚ_MutableMapping__marker)r4rrrLrrrrù½s   ýzMutableMapping.popcCs> ztt|ƒƒ}Wn tytd‚w||}||=||fSr)r÷rörJrôrrrrÚpopitemËs ÿzMutableMapping.popitemcCrúr)r!rôr3rrrrû×rüzMutableMapping.clearcKs~ t|tƒr|D]}||||<qnt|dƒr%| ¡D]}||||<qn |D]\}}|||<q'| ¡D]\}}|||<q4dS)Nr )r~rr�r r )r4rÂr½rrLrrrÚupdateßs ÿ  ÿ   ÿzMutableMapping.updateNcCs* z||WSty|||<Y|SwrrrrrrÚ setdefaultñs   þzMutableMapping.setdefault)rr)r<r=r>r?rrrÚobjectr rùr!rûr"r#rrrrr¨s    rc@sLeZdZ dZdZedd„ƒZdd„Zdd„Zd d „Z dd d„Z dd„Z d S)rré cCrr©Ú IndexError©r4Úindexrrrr¬ r6zSequence.__getitem__ccs6�d}z ||}|V|d7}qtyYdSw)NrTr"r&)r4Úirrrrrrs€ý ÿzSequence.__iter__cCs$|D] }||us ||krdSqdSrr)r4rLrrrrrzs ÿzSequence.__contains__ccs&�ttt|ƒƒƒD]}||Vq dSr)ÚreversedÚranger€)r4r*rrrrvs€ ÿzSequence.__reversed__rNcCs¨ |dur|dkrtt|ƒ|dƒ}|dur |dkr |t|ƒ7}|}|dus*||krRz||}||us7||kr:|WSWn tyEYt‚w|d7}|dus*||ks*t‚)Nrr")Úmaxr€r'Ú ValueError)r4rLÚstartÚstopr*rrrrr)#s& ÿ ýùzSequence.indexcs t‡fdd„|DƒƒS)Nc3s$�|] }|ˆus |ˆkrdVqdS)r"Nr)r˜r©rLrrr¤<s€"z!Sequence.count..)ÚsumrKrr1rÚcount:szSequence.count)rN) r<r=r>r?rrr¬rrrzrvr)r3rrrrrÿs    rc@seZdZ dZdS)r rN)r<r=r>r?rrrrr Dsr c@speZdZ dZedd„ƒZedd„ƒZedd„ƒZdd „Zd d „Z d d „Z dd„Z ddd„Z dd„Z dd„ZdS)rrcCrrr&©r4r)rLrrrrYr6zMutableSequence.__setitem__cCrrr&r(rrrr]r6zMutableSequence.__delitem__cCrHrr&r4rrrÚinsertaruzMutableSequence.insertcCs | t|ƒ|¡dSr)r5r€rKrrrr’fszMutableSequence.appendcCrúr)rùr'r3rrrrûjrüzMutableSequence.clearcCsJ t|ƒ}t|dƒD]}|||d||||<|||d<q dS)Nr|r")r€r,)r4rér*rrrÚreversers ,ÿzMutableSequence.reversecCs* ||ur t|ƒ}|D]}| |¡q dSr)r‚r’)r4r rrrrr�xs  ÿzMutableSequence.extendr›cCs ||}||=|Srr)r4r)rrrrrùszMutableSequence.popcCs || |¡=dSr)r)rKrrrrõ‡szMutableSequence.removecCs| |¡|Sr)r�)r4r rrrÚ__iadd__�s zMutableSequence.__iadd__N)r›)r<r=r>r?rrrr5r’rûr6r�rùrõr7rrrrrPs      r)SÚabcrrrärŽr‚ÚintrEÚ EllipsisTyperr¼Ú__all__r<röÚbytes_iteratorÚ bytearrayÚbytearray_iteratorr Údict_keyiteratorr Údict_valueiteratorr Údict_itemiteratorÚ list_iteratorr+Úlist_reverseiteratorr,Úrange_iteratorÚlongrange_iteratorrÚ set_iteratorÚ str_iteratorÚtuple_iteratorr¥Ú zip_iteratorÚ dict_keysÚ dict_valuesÚ dict_itemsr(Ú mappingproxyÚ generatorr%Ú coroutiner\r&Úasync_generatorr/r rr Úregisterr r r rrrrrrrr{r‘rƒr—rrÚ frozensetrrrrrrrr“rrÚstrÚ memoryviewr ÚbytesrrrrrÚsÆ           ) 0              0 i   P 3    R ?      B