/opt/alt/python311/lib64/python3.11/multiprocessing/__pycache__
NameSizeModeActions
connection.cpython-311.opt-1.pyc484770644editdlrm
connection.cpython-311.opt-2.pyc466110644editdlrm
connection.cpython-311.pyc490110644editdlrm
context.cpython-311.opt-1.pyc195690644editdlrm
context.cpython-311.opt-2.pyc182950644editdlrm
context.cpython-311.pyc195690644editdlrm
forkserver.cpython-311.opt-1.pyc169090644editdlrm
forkserver.cpython-311.opt-2.pyc161530644editdlrm
forkserver.cpython-311.pyc170320644editdlrm
heap.cpython-311.opt-1.pyc146780644editdlrm
heap.cpython-311.opt-2.pyc144960644editdlrm
heap.cpython-311.pyc146970644editdlrm
managers.cpython-311.opt-1.pyc730510644editdlrm
managers.cpython-311.opt-2.pyc693200644editdlrm
managers.cpython-311.pyc735450644editdlrm
pool.cpython-311.opt-1.pyc472770644editdlrm
pool.cpython-311.opt-2.pyc455030644editdlrm
pool.cpython-311.pyc473820644editdlrm
popen_fork.cpython-311.opt-1.pyc43750644editdlrm
popen_fork.cpython-311.opt-2.pyc43750644editdlrm
popen_fork.cpython-311.pyc43750644editdlrm
popen_forkserver.cpython-311.opt-1.pyc43540644editdlrm
popen_forkserver.cpython-311.opt-2.pyc43540644editdlrm
popen_forkserver.cpython-311.pyc43540644editdlrm
popen_spawn_posix.cpython-311.opt-1.pyc44310644editdlrm
popen_spawn_posix.cpython-311.opt-2.pyc44310644editdlrm
popen_spawn_posix.cpython-311.pyc44310644editdlrm
popen_spawn_win32.cpython-311.opt-1.pyc65710644editdlrm
popen_spawn_win32.cpython-311.opt-2.pyc64890644editdlrm
popen_spawn_win32.cpython-311.pyc66360644editdlrm
process.cpython-311.opt-1.pyc180110644editdlrm
process.cpython-311.opt-2.pyc166830644editdlrm
process.cpython-311.pyc191810644editdlrm
queues.cpython-311.opt-1.pyc198700644editdlrm
queues.cpython-311.opt-2.pyc197230644editdlrm
queues.cpython-311.pyc200150644editdlrm
reduction.cpython-311.opt-1.pyc149970644editdlrm
reduction.cpython-311.opt-2.pyc143160644editdlrm
reduction.cpython-311.pyc149970644editdlrm
resource_sharer.cpython-311.opt-1.pyc99360644editdlrm
resource_sharer.cpython-311.opt-2.pyc95420644editdlrm
resource_sharer.cpython-311.pyc100160644editdlrm
resource_tracker.cpython-311.opt-1.pyc124420644editdlrm
resource_tracker.cpython-311.opt-2.pyc121080644editdlrm
resource_tracker.cpython-311.pyc126600644editdlrm
sharedctypes.cpython-311.opt-1.pyc119570644editdlrm
sharedctypes.cpython-311.opt-2.pyc117220644editdlrm
sharedctypes.cpython-311.pyc120800644editdlrm
shared_memory.cpython-311.opt-1.pyc240490644editdlrm
shared_memory.cpython-311.opt-2.pyc213820644editdlrm
shared_memory.cpython-311.pyc245560644editdlrm
spawn.cpython-311.opt-1.pyc126100644editdlrm
spawn.cpython-311.opt-2.pyc121840644editdlrm
spawn.cpython-311.pyc127330644editdlrm
synchronize.cpython-311.opt-1.pyc219000644editdlrm
synchronize.cpython-311.opt-2.pyc219000644editdlrm
synchronize.cpython-311.pyc225360644editdlrm
util.cpython-311.opt-1.pyc206760644editdlrm
util.cpython-311.opt-2.pyc199160644editdlrm
util.cpython-311.pyc207730644editdlrm
__init__.cpython-311.opt-1.pyc11250644editdlrm
__init__.cpython-311.opt-2.pyc11250644editdlrm
__init__.cpython-311.pyc11250644editdlrm
Edit: /opt/alt/python311/lib64/python3.11/multiprocessing/__pycache__/context.cpython-311.pyc (19569B)
§ µåC�åovãó0—ddlZddlZddlZddlmZddlmZdZGd„de¦«ZGd„d e¦«Z Gd „d e¦«Z Gd „d e¦«Z Gd„de ¦«Z Gd„dej¦«ZGd„de ¦«Zejdkr°Gd„dej¦«ZGd„dej¦«ZGd„dej¦«ZGd„de ¦«ZGd„de ¦«ZGd„d e ¦«Ze¦«e¦«e¦«d!œZejd"kreed#¦«ZnPeed$¦«Zn>Gd%„dej¦«ZGd&„de ¦«Zd#e¦«iZeed#¦«Zd'„Zej¦«Zd(„Zd)„Zd*„ZdS)+éNé)Úprocess)Ú reduction©có—eZdZdS)Ú ProcessErrorN©Ú__name__Ú __module__Ú __qualname__róú>/opt/alt/python311/lib64/python3.11/multiprocessing/context.pyrró€€€€€Ø€Dr rcó—eZdZdS)ÚBufferTooShortNr rr rrrrr rcó—eZdZdS)Ú TimeoutErrorNr rr rrrrr rcó—eZdZdS)ÚAuthenticationErrorNr rr rrrrr rcó„—eZdZeZeZeZeZeej ¦«Z eej ¦«Z eej ¦«Z d„Z d„Z d&d„Zd„Zd„Zd'd„Zd(d „Zd(d „Zd „Zd)d „Zd*d„Zd*d„Zd„Z d+d„Zd„Zd„Zddœd„Zddœd„Zd„Zd„Zd'd„Z d„Z!d„Z"d„Z#d'd„Z$d,d!„Z%d,d"„Z&e'd#„¦«Z(e(j)d$„¦«Z(d%„Z*dS)-Ú BaseContextcóN—tj¦«}|€td¦«‚|S)z(Returns the number of CPUs in the systemNzcannot determine number of cpus)ÚosÚ cpu_countÚNotImplementedError)ÚselfÚnums rrzBaseContext.cpu_count)s&€åŒl‰nŒnˆØ ˆ;Ý%Ð&GÑHÔHÐ HàˆJr cóv—ddlm}|| ¦«¬¦«}| ¦«|S)z½Returns a manager associated with a running server process The managers methods such as `Lock()`, `Condition()` and `Queue()` can be used to create shared objects. r)Ú SyncManager©Úctx)ÚmanagersrÚ get_contextÚstart)rrÚms rÚManagerzBaseContext.Manager1sF€ð *Ð)Ð)Ð)Ð)Ð)Ø ˆK˜D×,Ò,Ñ.Ô.Ð /Ñ /Ô /ˆØ �Љ Œ ˆ ؈r Tcó$—ddlm}||¦«S)z1Returns two connection object connected by a piper)ÚPipe)Ú connectionr()rÚduplexr(s rr(zBaseContext.Pipe<s"€à$Ð$Ð$Ð$Ð$Ð$؈t�F‰|Œ|Ðr cóJ—ddlm}|| ¦«¬¦«S)z#Returns a non-recursive lock objectr)ÚLockr )Ú synchronizer,r#)rr,s rr,zBaseContext.LockAs3€à%Ð%Ð%Ð%Ð%Ð%؈t˜×(Ò(Ñ*Ô*Ð+Ñ+Ô+Ð+r cóJ—ddlm}|| ¦«¬¦«S)zReturns a recursive lock objectr)ÚRLockr )r-r/r#)rr/s rr/zBaseContext.RLockFó3€à&Ð&Ð&Ð&Ð&Ð&؈u˜×)Ò)Ñ+Ô+Ð,Ñ,Ô,Ð,r NcóL—ddlm}||| ¦«¬¦«S)zReturns a condition objectr)Ú Conditionr )r-r2r#)rÚlockr2s rr2zBaseContext.ConditionKs5€à*Ð*Ð*Ð*Ð*Ð*؈y˜ 4×#3Ò#3Ñ#5Ô#5Ð6Ñ6Ô6Ð6r rcóL—ddlm}||| ¦«¬¦«S)zReturns a semaphore objectr)Ú Semaphorer )r-r5r#)rÚvaluer5s rr5zBaseContext.SemaphorePs5€à*Ð*Ð*Ð*Ð*Ð*؈y˜ D×$4Ò$4Ñ$6Ô$6Ð7Ñ7Ô7Ð7r cóL—ddlm}||| ¦«¬¦«S)z"Returns a bounded semaphore objectr)ÚBoundedSemaphorer )r-r8r#)rr6r8s rr8zBaseContext.BoundedSemaphoreUs6€à1Ð1Ð1Ð1Ð1Ð1ØÐ ¨4×+;Ò+;Ñ+=Ô+=Ð>Ñ>Ô>Ð>r cóJ—ddlm}|| ¦«¬¦«S)zReturns an event objectr)ÚEventr )r-r:r#)rr:s rr:zBaseContext.EventZr0r cóP—ddlm}||||| ¦«¬¦«S)zReturns a barrier objectr)ÚBarrierr )r-r<r#)rÚpartiesÚactionÚtimeoutr<s rr<zBaseContext.Barrier_s9€à(Ð(Ð(Ð(Ð(Ð(؈w�w ¨°T×5EÒ5EÑ5GÔ5GÐHÑHÔHÐHr rcóL—ddlm}||| ¦«¬¦«S)úReturns a queue objectr)ÚQueuer )ÚqueuesrBr#)rÚmaxsizerBs rrBzBaseContext.Queueds5€à!Ð!Ð!Ð!Ð!Ð!؈u�W $×"2Ò"2Ñ"4Ô"4Ð5Ñ5Ô5Ð5r cóL—ddlm}||| ¦«¬¦«S)rAr)Ú JoinableQueuer )rCrFr#)rrDrFs rrFzBaseContext.JoinableQueueis5€à)Ð)Ð)Ð)Ð)Ð)؈}˜W¨$×*:Ò*:Ñ*<Ô*<Ð=Ñ=Ô=Ð=r cóJ—ddlm}|| ¦«¬¦«S)rAr)Ú SimpleQueuer )rCrHr#)rrHs rrHzBaseContext.SimpleQueuens3€à'Ð'Ð'Ð'Ð'Ð'؈{˜t×/Ò/Ñ1Ô1Ð2Ñ2Ô2Ð2r rcóR—ddlm}|||||| ¦«¬¦«S)zReturns a process pool objectr)ÚPool)Úcontext)ÚpoolrJr#)rÚ processesÚ initializerÚinitargsÚmaxtasksperchildrJs rrJzBaseContext.PoolssG€ð ÐÐÐÐÐØˆt�I˜{¨HÐ6FØ ×,Ò,Ñ.Ô.ð0ñ0ô0ð 0r có —ddlm}||g|¢RŽS)zReturns a shared objectr)ÚRawValue)Ú sharedctypesrR)rÚtypecode_or_typeÚargsrRs rrRzBaseContext.RawValuezs-€à*Ð*Ð*Ð*Ð*Ð*؈xÐ(Ð0¨4Ð0Ð0Ð0Ð0r có&—ddlm}|||¦«S)zReturns a shared arrayr)ÚRawArray)rSrW)rrTÚsize_or_initializerrWs rrWzBaseContext.RawArrays(€à*Ð*Ð*Ð*Ð*Ð*؈xÐ(Ð*=Ñ>Ô>Ð>r )r3cóL—ddlm}||g|¢R|| ¦«dœŽS)z$Returns a synchronized shared objectr)ÚValue©r3r!)rSrZr#)rrTr3rUrZs rrZzBaseContext.Value„sR€à'Ð'Ð'Ð'Ð'Ð'؈uÐ%ð-¨ð-ð-°4Ø×)Ò)Ñ+Ô+ð-ð-ð-ð -r cóP—ddlm}||||| ¦«¬¦«S)z#Returns a synchronized shared arrayr)ÚArrayr[)rSr]r#)rrTrXr3r]s rr]zBaseContext.ArrayŠsD€à'Ð'Ð'Ð'Ð'Ð'؈uÐ%Ð':ÀØ×)Ò)Ñ+Ô+ð-ñ-ô-ð -r cóz—tjdkr(ttdd¦«rddlm}|¦«dSdSdS)z‹Check whether this is a fake forked process in a frozen executable. If so then run code specified by commandline and exit. Úwin32ÚfrozenFr)Úfreeze_supportN)ÚsysÚplatformÚgetattrÚspawnra)rras rrazBaseContext.freeze_support�sV€õ Œ<˜7Ò "Ð "¥w­s°H¸eÑ'DÔ'DÐ "Ø -Ð -Ð -Ð -Ð -Ð -Ø ˆNÑ Ô Ð Ð Ð ð #Ð "Ð "Ð "r có"—ddlm}|¦«S)zZReturn package logger -- if it does not already exist then it is created. r)Ú get_logger)Úutilrg)rrgs rrgzBaseContext.get_logger˜s"€ð %Ð$Ð$Ð$Ð$Ð$؈z‰|Œ|Ðr có$—ddlm}||¦«S)z8Turn on logging and add a handler which prints to stderrr)Ú log_to_stderr)rhrj)rÚlevelrjs rrjzBaseContext.log_to_stderrŸs$€à'Ð'Ð'Ð'Ð'Ð'؈}˜UÑ#Ô#Ð#r có—ddlm}dS)zVInstall support for sending connections and sockets between processes r)r)N)Úr))rr)s rÚallow_connection_picklingz%BaseContext.allow_connection_pickling¤s€ð !Ð Ð Ð Ð Ð Ð Ð r có(—ddlm}||¦«dS)zÌSets the path to a python.exe or pythonw.exe binary used to run child processes instead of sys.executable when using the 'spawn' start method. Useful for people embedding Python. r)Úset_executableN)rerp)rÚ executablerps rrpzBaseContext.set_executable¬s,€ð *Ð)Ð)Ð)Ð)Ð)؈�zÑ"Ô"Ð"Ð"Ð"r có(—ddlm}||¦«dS)zkSet list of module names to try to load in forkserver process. This is really just a hint. r)Úset_forkserver_preloadN)Ú forkserverrs)rÚ module_namesrss rrsz"BaseContext.set_forkserver_preload´s-€ð 7Ð6Ð6Ð6Ð6Ð6ØÐ˜|Ñ,Ô,Ð,Ð,Ð,r có–—|€|S t|}n!#t$rtd|z¦«d‚wxYw| ¦«|S)Nzcannot find context for %r)Ú_concrete_contextsÚKeyErrorÚ ValueErrorÚ_check_available)rÚmethodr!s rr#zBaseContext.get_context»sj€Ø ˆ>؈Kð NÝ$ VÔ,ˆCˆCøÝð Nð Nð NÝÐ9¸FÑBÑCÔCÈÐ Mð Nøøøà ×ÒÑÔÐØˆ s† ”2Fcó—|jS©N)Ú_name©rÚ allow_nones rÚget_start_methodzBaseContext.get_start_methodÅs €ØŒzÐr có —td¦«‚)Nz+cannot set start method of concrete context)ry©rr{Úforces rÚset_start_methodzBaseContext.set_start_methodÈs€ÝÐFÑGÔGÐGr cóD—t¦« d¦«S)z_Controls how objects will be reduced to a form that can be shared with other processes.r)ÚglobalsÚget©rs rÚreducerzBaseContext.reducerËs€õ‰yŒy�}Š}˜[Ñ)Ô)Ð)r có(—|t¦«d<dS)Nr)r‡)rrs rrŠzBaseContext.reducerÑs€à!*�‰ Œ �+ÑÐÐr có—dSr}rr‰s rrzzBaseContext._check_availableÕs€Ø ˆr )Tr})r)NN)r)NNrN©F)+r r r rrrrÚ staticmethodrÚcurrent_processÚparent_processÚactive_childrenrr&r(r,r/r2r5r8r:r<rBrFrHrJrRrWrZr]rargrjrnrprsr#r�r…ÚpropertyrŠÚsetterrzrr rrrs¨€€€€€à€LØ#€NØ€LØ-Ðà"�l 7Ô#:Ñ;Ô;€OØ!�\ 'Ô"8Ñ9Ô9€NØ"�l 7Ô#:Ñ;Ô;€Oðððð ð ð ððððð ,ð,ð,ð -ð-ð-ð 7ð7ð7ð7ð 8ð8ð8ð8ð ?ð?ð?ð?ð -ð-ð-ð IðIðIðIð 6ð6ð6ð6ð >ð>ð>ð>ð 3ð3ð3ð ?AØ"ð0ð0ð0ð0ð1ð1ð1ð ?ð?ð?ð 37ð-ð-ð-ð-ð-ð DHð-ð-ð-ð-ð-ð ðððððð$ð$ð$ð$ð !ð!ð!ð#ð#ð#ð-ð-ð-ðððððððððHðHðHðHðð*ð*ñ„Xð*ð  „^ð+ð+ñ„^ð+ð ð ð ð ð r rcó>—eZdZdZed„¦«Zed„¦«ZdS)ÚProcessNcód—t ¦«j |¦«Sr})Ú_default_contextr#r•Ú_Popen)Ú process_objs rr˜zProcess._PopenÞs%€å×+Ò+Ñ-Ô-Ô5×<Ò<¸[ÑIÔIÐIr cób—t ¦«j ¦«Sr})r—r#r•Ú _after_forkrr rr›zProcess._after_forkâs#€å×+Ò+Ñ-Ô-Ô5×AÒAÑCÔCÐCr ©r r r Ú _start_methodrŽr˜r›rr rr•r•ÜsU€€€€€Ø€MØðJðJñ„\ðJððDðDñ„\ðDðDðDr r•có@‡—eZdZeZd„Zdˆfd„ Zd d„Zd d„Zd„ZˆxZ S) ÚDefaultContextcó"—||_d|_dSr})r—Ú_actual_context)rrKs rÚ__init__zDefaultContext.__init__és€Ø 'ˆÔØ#ˆÔÐÐr Ncó~•—|€|j€ |j|_|jSt¦« |¦«Sr})r¡r—Úsuperr#)rr{Ú __class__s €rr#zDefaultContext.get_contextís=ø€Ø ˆ>ØÔ#Ð+Ø'+Ô'<�Ô$ØÔ'Ð 'å‘7”7×&Ò& vÑ.Ô.Ð .r Fcó„—|j�|std¦«‚|€ |r d|_dS| |¦«|_dS)Nzcontext has already been set)r¡Ú RuntimeErrorr#rƒs rr…zDefaultContext.set_start_methodõsQ€Ø Ô Ð +°EÐ +ÝÐ=Ñ>Ô>Ð >Ø ˆ>˜eˆ>Ø#'ˆDÔ Ø ˆFØ#×/Ò/°Ñ7Ô7ˆÔÐÐr cóH—|j€|rdS|j|_|jjSr})r¡r—r~rs rr�zDefaultContext.get_start_methodýs/€Ø Ô Ð 'Øð Ø�tØ#'Ô#8ˆDÔ ØÔ#Ô)Ð)r cóž—tjdkrdgStjdkrddgnddg}tjr| d¦«|S)Nr_reÚdarwinÚforkrt)rbrcrÚHAVE_SEND_HANDLEÚappend)rÚmethodss rÚget_all_start_methodsz$DefaultContext.get_all_start_methodssZ€Ý Œ<˜7Ò "Ð "Ø�9Ð å+.¬<¸8Ò+CÐ+C�w Ð'Ð'È&ÐRYÐIZˆGÝÔ)ð -Ø—’˜|Ñ,Ô,Ð,؈Nr r}r�) r r r r•r¢r#r…r�r¯Ú __classcell__)r¥s@rrŸrŸæsˆø€€€€€Ø€Gð$ð$ð$ð/ð/ð/ð/ð/ð/ð8ð8ð8ð8ð*ð*ð*ð*ðððððððr rŸr_có(—eZdZdZed„¦«ZdS)Ú ForkProcessr«có$—ddlm}||¦«S©Nr)ÚPopen)Ú popen_forkrµ©r™rµs rr˜zForkProcess._Popens$€à )Ð )Ð )Ð )Ð )Ð )Ø�5˜Ñ%Ô%Ð %r N©r r r r�rŽr˜rr rr²r²s2€€€€€Øˆ Ø ð &ð &ñ Œð &ð &ð &r r²có>—eZdZdZed„¦«Zed„¦«ZdS)Ú SpawnProcessrecó$—ddlm}||¦«Sr´)Úpopen_spawn_posixrµr·s rr˜zSpawnProcess._Popenó$€à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø�5˜Ñ%Ô%Ð %r có—dSr}rrr rr›zSpawnProcess._after_fork"ó €ð ˆDr Nrœrr rrºrºóM€€€€€Øˆ Ø ð &ð &ñ Œð &ð ð ð ñ Œð ð ð r rºcó(—eZdZdZed„¦«ZdS)ÚForkServerProcessrtcó$—ddlm}||¦«Sr´)Úpopen_forkserverrµr·s rr˜zForkServerProcess._Popen)s$€à /Ð /Ð /Ð /Ð /Ð /Ø�5˜Ñ%Ô%Ð %r Nr¸rr rrÂrÂ's2€€€€€Ø$ˆ Ø ð &ð &ñ Œð &ð &ð &r rÂcó—eZdZdZeZdS)Ú ForkContextr«N)r r r r~r²r•rr rrÆrÆ.s€€€€€ØˆØˆˆˆr rÆcó—eZdZdZeZdS©Ú SpawnContextreN©r r r r~rºr•rr rrÉrÉ2ó€€€€€ØˆØˆˆˆr rÉcó—eZdZdZeZd„ZdS)ÚForkServerContextrtcó<—tjstd¦«‚dS)Nz%forkserver start method not available)rr¬ryr‰s rrzz"ForkServerContext._check_available9s)€ÝÔ-ð JÝ Ð!HÑIÔIÐIð Jð Jr N)r r r r~rÂr•rzrr rrÍrÍ6s2€€€€€ØˆØ#ˆð Jð Jð Jð Jð Jr rÍ)r«rertrªrer«có>—eZdZdZed„¦«Zed„¦«ZdS)rºrecó$—ddlm}||¦«Sr´)Úpopen_spawn_win32rµr·s rr˜zSpawnProcess._PopenMr½r có—dSr}rrr rr›zSpawnProcess._after_forkRr¿r Nrœrr rrºrºKrÀr có—eZdZdZeZdSrÈrÊrr rrÉrÉWrËr có4—t|t_dSr})rwr—r¡)r{s rÚ_force_start_methodrÕds€Ý'9¸&Ô'AÕÔ$Ð$Ð$r có.—ttdd¦«S)NÚspawning_popen)rdÚ_tlsrr rÚget_spawning_popenrÙms€Ý •4Ð)¨4Ñ 0Ô 0Ð0r có—|t_dSr})rØr×)Úpopens rÚset_spawning_popenrÜps€Ø…DÔÐÐr cój—t¦«€$tdt|¦«jz¦«‚dS)NzF%s objects should only be shared between processes through inheritance)rÙr§Útyper )Úobjs rÚassert_spawningràss>€ÝÑÔÐ#Ýð #Ý%)¨#¡Y¤YÔ%7ñ 8ñôð ð$Ð#r ) rrbÚ threadingrmrrÚ__all__Ú ExceptionrrrrÚobjectrÚ BaseProcessr•rŸrcr²rºrÂrÆrÉrÍrwr—rÕÚlocalrØrÙrÜràrr rúrçsñðØ € € € Ø € € € ØÐÐÐàÐÐÐÐÐØÐÐÐÐÐà €ð  ð ð ð ð �9ñ ô ð ð ð ð ð ð �\ñ ô ð ð ð ð ð ð �<ñ ô ð ð ð ð ð ð ˜,ñ ô ð ðx ðx ðx ðx ðx �&ñx ôx ðx ð|DðDðDðDðDˆgÔ!ñDôDðDð%ð%ð%ð%ð%�[ñ%ô%ð%ðX„<�7ÒÐð&ð&ð&ð&ð&�gÔ)ñ&ô&ð&ð ð ð ð ð �wÔ*ñ ô ð ð&ð&ð&ð&ð&˜GÔ/ñ&ô&ð&ððððð�kñôðððððð�{ñôððJðJðJðJðJ˜KñJôJðJð� ‘ ” Ø�‘”Ø'Ð'Ñ)Ô)ððÐð  „|�xÒÐð*˜>Ð*<¸WÔ*EÑFÔFÐÐà)˜>Ð*<¸VÔ*DÑEÔEÐÐð ð ð ð ð �wÔ*ñ ô ð ððððð�{ñôðð ��‘”ðÐð&�~Ð&8¸Ô&AÑBÔBÐð BðBðBð€y„ÑÔ€ð1ð1ð1ð ð ð ðððððr