Files
boc/rust-service/target/release/deps/libmio-e2adf0334040c489.rmeta
T

1647 lines
435 KiB
Plaintext
Raw Normal View History

rust
Ë#rustc 1.96.0 (ac68faa20 2026-05-25)ÁÀ뉊]!ÜÛê(¹Þ—šên-5be7b69c3ff7b5b8ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁ¤²XctÔ'ÐÓ©z¨ɽÓ-a4945860e1c53b00Á¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁòÖÀH•‘PIÓHã#£-055f30b747f859b6Árustc_std_workspace_coreÁ­Cçß^ò½èÝ$­Çÿ+Cé-c4878ee60b2242c9ÁŸÃï+Ñ]ŠqB<ÏïW#-8dd1dd90e70d0b6aÁ miniz_oxideÁ€š»J(P>àö÷g\K-1eb618da2918ab7fÁadler2ÁÆ;+Þ®5¥Ìýݰ¦ÛLˆ-f7919172d268e069Á hashbrownÁPäV9ÒÆèÜ"ÊÖVŽ\-0fc2184a5da6723aÁrustc_std_workspace_allocÁs&ØòØy¯s•bæ!‰ýŠ-97e4bf30be240674Á
std_detectÁhŠBîÙºÌI®ËÅš-9dbbf8346ba7ac8bÁrustc_demangleÁûë9´Ç×@Œ’ùXFº-f33013f239bf9f14Ácfg_ifÁÜLhž§Œaã¯>­-0a71c8f33a838301Á addr2lineÁ׎Þ!]8V$É@@-e618e6be60e87ba2ÁgimliÁ¸
°µ~Î1‹Ñt ðÁ€w-1f7768a68858f670ÁobjectÁ
áPÃ?­À¶¼QHJ¥-914cd6a4dbe590d1ÁmemchrÁ›º«8Ór­2Ù $¨ûib-cf21ca6f2bb15dcdÁë
‹ás«LÖ€îâƒ×ɯŒ-ee6f3747e38367f0Á`ãŒN€ZÛ:õ\-7ce82f3507212cabÁ*
AtomicBoolÁT¹„Ø*®*K²„ÚhermitÁ4™ú®¤˜wasiÁ$‡úÊ”òââÐ AtomicUsizeÁ\‡„\ЮD”ÐNEXT_IDÁ<„„êAsRawFdÁ<Áú®¤ FromRawFdÁLÊú® "„RawFdÁ,Õú®:ÿ ,‚ú®¤Òòà <Úú®¤©òá Lãú®à <Âú®¤‘á LËú®
SocketAddrExtÁl9úandroidÁ¬testsÁ,þ%$ó%¬set_nonblockingÁ|ƒŒúaixÁŒ©‹úillumosÁ¬¼‹úsolarisÁ¬Ó‹úvitaÁ”ê‹ü¨‹UUshellÁ, »os-pollÁ˜®
¨®ƒ
äà <œ ú®¤ì ä AsRawSocketÁ\Ï â äø\ „â ä® ä
SelectorIdÁTñ1 „Æ1 ŽAsFdÁ$Ø ú®¤§ Žà <Þ ú®Ž
BorrowedFdÁTç ú®6á Ló ú®K IntoRawFdÁLþ ú®iOwnedFdÁ<‰ ú®‡Žÿ ,’ ú®šœŽø  â<  ŽAsSocketÁD× âŽBorrowedSocketÁtá â<
FromRawSocketÁlñ â[
IntoRawSocketÁl€ âz OwnedSocketÁ\ ♎ RawSocketÁLœ â²´ËÛ

ú®¤ö
ËÃ <­
ú®Ë
ú®,á LÂ
ú®A¿
ú®VÝ
ú®kÿ ,á
ú®‚Ëø \™
â
Ë¢
â˼
â&Ü
â8û
âJš
â\·
ânÛ
ú®¤©«à <àú®«ú®,á Lõú®A¿L€ú®VÝ<‹ú®kÿ ,”ú®‚«ø ⫢⫼â&Üâ8ûl‚âJš\‘â\·ânpÀmacrosÁ cfg_os_pollÁcfg_not_os_pollÁ
cfg_os_extÁcfg_netÁ
cfg_io_sourceÁcfg_any_os_extÁtraceÁÕerrorÁlogÁinterestÁREADABLEÁWRITABLEÁAIOÁLIOÁPRIORITYÁÐßremoveÁ is_readableÁ is_writableÁis_aioÁis_lioÁ is_priorityÁ#°#±&²(׊ ********** *
* * *
**·:registryÁ*RegistryÁ<selectorÁ*>>Š *A as_raw_fdÁ*C×*EregisterÁF¤E
reregisterÁH¤E
deregisterÁJ¤E try_cloneÁL Ež*O×*Qas_fdÁ*SÃsysÁtokenÁVW÷wakerÁYYYYYY_æ ` _wakeÁeventÁcÄdddddiói¾iÐiis_errorÁiis_read_closedÁiis_write_closedÁiüiâiïifrom_sys_event_refÁdt×u EventDetailsÁv
v'aÁvˆuz×ceventsÁ||||EventsÁinnerÁ|
with_capacityÁcapacityÁis_emptyÁùclearÁé|ŠIntoIterÁê|ŽŠŽŽó Ž size_hintÁŽü|×csourceÁÜœâœøœ ¥ â ø cccccú±pipeÁ²²²²±featuresÁguideÁInterestÁº
ºˆ¿ÁÖ Äƒ
Æï
 È>æ Ê U debug_detailÁUúÍsyscallÁUÍžÐÐÐÐÐÐÐÐÐÐ Ð
Ð Ð Ð
ÐÐÐÐÐãæ ã¨å ãselectÁç ç ãâê ÐìÒÐîÃÐinterests_to_epollÁÐEventÁоÐÄóóóóóó¾óÐóóó¤óüóâóïó
debug_detailsÁ check_eventsÁÐÍÍŠ 
  æ new_unregisteredÁ¹ 
ack_and_resetÁfdÁwokenÁresetÁš œÃÍsourcefdÁžžžžžžžž¦Š¦â¦ø¦Í; ¬¬¬new_rawÁ¯ ¯ ÐÐSelectorÁ³epÁе×ãø· ã¹ Ð
EventsDetailsÁ¼
¼ˆ¿×Ðstateless_io_sourceÁÁÁÁÁÁÁÁ
IoSourceStateÁÈ
ÁÊæ Êdo_ioÁÌ¥ÌÌ£ÊâÊøÊÐWakerÁÔ§&ÖמSourceFdÁØ
؊؈žÜŠÜ×ÍnetÁßßßßßßßßß
new_ip_socketÁß
new_socketÁßSocketAddrCReprÁêv4Áêv6Áßías_ptrÁß socket_addrÁï ßto_socket_addrÁÍtcpÁòòòòòòòòòò ò
ò ò ò
ò new_for_addrÁòbindÁòconnectÁòlistenÁò
set_reuseaddrÁòacceptÁ  ÍudpÁ 
ˆ-only_v6ÁÍudsÁdatagramÁ           bind_addrÁ unboundÁ pairÁlistenerÁ­­­­­­­­­­ ­
­ ­ ­
­­­­§/­Æ-À streamÁ connect_addrÁÂÇ/UNNAMED_ADDRESSÁ path_offsetÁ unix_addrÁÇ/Ï¥Ï ¬¬¬¬¬¬¬¬ ¬
¬ ¬ ¬
¬¬¬¬¬¬¬¬¬¬¬¬æ ¬êÊ êtry_ioÁìì¥ì ¬ðâðøð¬ôwriteÁõ ôwrite_vectoredÁ÷ ôflushÁù ¬û·3ü ûÉ3þ ûä3 ¬÷¬ from_raw_fdÁ¬Ã¬ˆ into_raw_fdÁ¬Š÷¬ ŒÒ¬
Ž÷¬ Ê ò2¥ ¬ âø¬
šreadÁ š
read_vectoredÁ ¬Ÿß5  Ÿð5¢ ¬¤÷¬¦÷¬¨Ù4¬ªÃ¬¬´4¬®÷¬°Ò¬²÷¬Ê ¬SenderÁµÌ¬·×¬ReceiverÁ¹Ì¬»×VTokenÁ½
½ˆVVVƒVÄ×VVÇVÉÖVËï
V ÍV
ϧÐùY*ÒÌYÔ×dð#ÖÌd؃|IterÁÚŠÚÌÚposÁ|ÞŠÞ×|áŠáƒ io_sourceÁääääääääää ä
ä ä äIoSourceÁò¥òºòÌäö¥öæ ö¿)ùù£ö
into_innerÁäý¥ýåý´ä¥ä¥âøä¥×Ý*Œ£,Ó/ŽŽŽŽŽŽŽŽŽŽ Ž
Ž Ž Ž
ŽŽŽŽŽŽŽŽŽŽŽŽŽŽ TcpListenerÁªÌެˆ-¬from_stdÁ¬Æ-¯ ° ¬
local_addrÁ¬set_ttlÁ¬ttlÁ¬
take_errorÁŽâøŽº×޼Ù4Ž¾ÃŽÀ´4ŽÂ÷ŽÄÒŽÆ÷Ž È÷Í0ËËËËËËËËËË Ë
Ë Ë Ë
ËËËËËËËËËËËËËËË TcpStreamÁèÌËê”-êÐ=ê peer_addrÁêò=êshutdownÁê set_nodelayÁênodelayÁê„>ê“>êž>êpeekÁõ êò2÷÷¥÷ Ëûß5ü ûð5þ Ëß5 ð5ƒ Ë·3 É3ˆ ä3Š ËŒ·3 ŒÉ3 Œä3 ËâøË×ËÙ4ËÃË ´4Ë
Ÿ÷Ë ¡ÒË £÷Ë
¥÷ŒŒŒŒÞ-«««««««««« «
« « «
«««««««««« UdpSocketÁÃ̫ň-ÅÐ=Åò=Åü@Åsend_toÁÊ Å recv_fromÁÌ Å peek_fromÁÎ ÅsendÁÐ ÅrecvÁÒ ÅßAÔ Å”-Å
set_broadcastÁÅ broadcastÁÅset_multicast_loop_v4ÁÅmulticast_loop_v4ÁÅset_multicast_ttl_v4ÁÅmulticast_ttl_v4ÁÅset_multicast_loop_v6ÁÅmulticast_loop_v6ÁÅ„>Å“>Åjoin_multicast_v4ÁÅjoin_multicast_v6ÁÅleave_multicast_v4ÁÅleave_multicast_v6ÁŨ.Åž>Åò2çç¥ç «ëâëøë«ï׫ñÙ4«óëõ´4«÷÷«ùÒ«û÷« ý÷ŒŒ·.ê. 
  
 UnixDatagramÁ̈-œ¡§/Ð=”- ¡¸/Ç/£ ò=ü@‰F§ ÆF© õE«¡« µF® ž>•Aò2²²¥² âøº×¼Ù4¾ÃÀ´4Â÷Ä÷ÆÒ È÷Ó/ËËËËËËËËËË Ë
Ë Ë Ë
ËËËËËËËËËË UnixListenerÁãÌËåˆ-æ¡å§/åÐ=åÆ-åò=åž>ËíâíøíËñ×ËóÙ4ËõÃË÷´4Ëù÷Ëû÷ËýÒË ÿ÷Í0 
  

UnixStreamÁžÌ ”-¡¡ þ0 Ð= Ç/¥  ò= ü@ ž> •A ò2««¥« ¯ß5° ¯ð5² ´ß5µ ´ð5· ¹·3º ¹É3¼ ¹ä3¾ À·3Á ÀÉ3à Àä3Å ÇâÇøÇË×ÍÙ4Ïà Ѵ4
Ó÷ Õ÷ ×Ò
Ù÷ŒŒŒŒ'
)
)
)
?
@
@
B
D
D
D
F
F
H
H
J
J
L
N
P
P
P
R
T
`
b
j
k
l
m
n
o
p
q
r
s
u
u
u
z
{
{
{




ˆ







ž
ž
Ÿ
Ÿ
¢
¢
£
£
¤
¤
À
À
Â
Å
Ç
Ç
É
É
å
ç
ç
ê
í
ï
÷
ø
ù
ú
û
ü
ý
þ
ÿ








˜

š

¨
¨
©
©
ª
ª



·
¹
À
À
À
Ì
Ì
Ì
Ð
Ð
Ñ
Ñ
Ò
Ò
×
×
×
Þ
Þ
Þ
î
ï

ƒ




ª
¿
À
Ê
Í
Î
ë
ì
ñ
ñ
ò
ò
ó
ó
õ
õ
÷
÷
÷
ù
û
ü
ü
þ
þ
þ







˜
˜







Ÿ
 
 
¢
¢
¢
«
±
¸
¸
¸
¼
¼
¼
Ã
Å
Å
Å
È
È
Ê
Ì
Ì
Î
Î
Ð
Ð
Õ
Õ
Õ
Ù
à
à
à
ã
ù
ù

ƒ




ˆ
ˆ



¯
²
³
´
µ
·
·
¸
¸
¹
¹
»
»
»
¿
Å
í
î
ï
ð
ñ
ò
ó
ô
õ
õ
÷
ü
ü
þ
þ
þ



ƒ
ƒ
ƒ


ˆ
ˆ
ˆ
Š
Œ












˜
˜
˜
œ
¢
È
É
Ê
Ê
Ì
Ì
Î
Î
Ð
Ð
Ò
Ò
Ô
Ô
Ö
×
Ø
Ù
Ú
Û
Ü
Ý
Þ
ß
à
á
á
á
â
â
ã
ã
ã
ä
ä
å
æ
ç
ì
ì
í
í
î
î
ð
ð
ð
ô
ú
ž
 
¥
¦
§
§
©
©
«
«
®
®
°
±
²
·
·
¸
¸
¹
¹
»
»
»
¿
Ç
è
ê
ë
ì
î
î
ï
ï
ð
ð
ò
ò
ò
ö
þ
£
§
¨
©
ª
«
°
°
²
²
²
´
µ
µ
·
·
·
º
º
¼
¼
¼
¾
À
Á
Á
Ã
Ã
Ã
Å
È
È
É
É
Ê
Ê
Ì
Ì
Ì
Ð
Ø
œŠ ºº»ý ¼ˆ ;­Î
G{ëÐì€gµß€g€g€gÛ€gØ€gí߀g€gº€g–ú€g€g•˜€g€g¿c€g«+::·;*η)Ë“x¿c­h¿c<<=ž*4S÷s“3à,èh«+èh¿c³³ê'´ú'Ð%ò°òL&,­i«+­i¿c¼¼½°(¾ˆó 1}ó4gÜa0¿cÔÔ*Õ§&¦\â ¦?ü«+¯j¿cØØÙ£*Ûˆ 2¼&<MÖ4Šœîj¿cµµ™7̬ވ‰
¾Çœ´kŸ!´kŸ! 8´ké´kº1º1
ChildStdinÁ»1Ì1J,CÏ·øû­+´k«+´k¯+´kéö+ö+Ý÷+§&ä+Þí¼>XG¸,´k,´ké´kíl¿c¹¹¼7ºÌ¬"Ì…r¡²a›œ¼mà ¼mà  8¼mé¼mÎ1Î1 ChildStdoutÁÏ1Ì1®Òô?é¼mÞ1Þ1 ChildStderrÁß1Ì1+Oý‹k€M¯+¼m«+¼m­+¼méíl¼m,¼mé¼mílŠ ½½¾à7¿ˆ %ÀÐðƒŒrÇÛÝoØÝo¿cÝoÐìÝoµßÝoÝoÝoíßÝoÝoºÝošeÝoéÝo¿cÒÒ*ÓÌYV¼•†oiØÖÖð#×Ìdâ'dÃ1©‰Ý¿c·q¿cvvwóyˆd úxß öËÝÀ8¿cÚÚ—9ÜÌ|ݳ9|O9âñ¶ùŠØ®rÇL оÌ|¿ã%£Ç3ùM®r¿cƒsœžBoxÁ¡ˆˆ¢ˆl }.xÏ¥çEçEèEGlobalÁ ¿±‡§í#é!òò·:ôºäõÌäîóðÃÍItö!ÆtœÆt¿cÆtœªª¨=«ÌŽñÚCb±²‘Ÿ¿c¨u¯+¨u«+¨u­+¨uéíl¨u,¨ué¨uíléŠ#Š##¨=Œ#ˆô" N À];óɨuà èèÎ@éÌˬëÄÅÝà  8åvŸ!åvŸ!šwœåv¿cåv¯+åv«+åv­+åvéílåv,åvéåvílé‡#‡#ˆ#Î@‰#ˆô" ¤‰?ßøåvœÃ÷EÄÌ«¦Â<)X ¿cÐx¯+Ðx«+Ðx­+ÐxéílÐx,ÐxéÐxíléð#ð#ñ#·Eò#ˆà# ¬ãøàFð™ÐxœâKšÌ<AèÁ§Êóî¿cz¯+z«+z­+zé''“'âK”'ˆñ& ÒÛ0É@ßhzéílz,zézílœããÆOäÌËÛQdϯ\6¿cÊ{¯+Ê{«+Ê{­+Ê{éã'ã'ä'ÆOå'ˆË' Nó:xÔ§eöÊ{éílÊ{,Ê{éÊ{ílà žž¸RŸÌÀOã3·[ ¶à  8‡}Ÿ!‡}Ÿ!¼}œ‡}¿c‡}¯+‡}«+‡}­+‡}é­(­(®(¸R¯(ˆê% ×¶'™g$²‡}éíl‡},‡}é‡}íl½ºÀ½¾ºÆ½¿ºÇ½ÁºÉ½ÃºÁ½ÄºÂ½ØÖáÚÆºË½ÈºÍ½#º&º(ºC:O³¿¼ÖÔÜØ·µ»¹Ä½ÔÒtÖzÚòºªèïúñãËžA:S³œÔµª¹¾ªèóþõãÏžQ³Œµ°¹Äª¡èùÃÆýãמ¦Øðµ¹ òªèëÃíãÇžôµû
èŒ
¹žÀ
µŠö+޵¤¹¦¹®ö+²¹WÂö+ƪȊ#Ÿö+£è¥‡#÷ö+ûÃýð#Â’'Äö+Èùã'ûö+ÿãÓ­(Õö+Ùžµ¬¹ÀªèõÃÀ÷ãÑžˆµ¨¹¼ªèñüóãÍžš¹Ÿ
ûè
¯ž´
Ͻ
ŽÚýòòŠ ÐìµßÛØíߺ–ú•˜¿c«+ ,
Pœ DŸ!Mé$­+³¯+8à 8še$ÇLùMé!ö! %¥8E ô ô õ ¨÷ ˆÐ  mjçítoéý×%E 
®8E-³8E އ6 
½8EÔÞ"ÀHûýø7LE
H·ýéx› E·
-ª8E·
-¹8Eù§¯Þ6"‚àÍ¥8Ej €gt¦‰|U¥8EއN]³8Eއúª¹
·ÁˆÂ¦‰%/(ŠÅ"'€g3¦‰;DN %¦>E އ
 
¯>E-¾>E އ? 
È>Eù¹Ý€3"
ù¹Ø€9" Û¼¿ßÀßÁßLessÁÂßÃßÄß~Å߯ßÇßGreaterÁÈßåºÝÈnûê7 ¹"ÇPýä=lE
H·œ·
-«>E±·
-Ä>Eù¹Š€"ùàͱ>EÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÌŒ¯¦‰·¦‰¿U¦>Eއï]¾>EއÐÌŒ§÷¹
 %EE އJ 
”EE-EE އ| 
¥EEù¹þƒ3"  É ýÙDTE
H ·H·
-EE]·
-¡EEù¹Àƒƒ"ûà–EEÌŒj¦‰r¦‰zU‹EEއ]›EEއú¨¹
µ¿0b0001Á0b0010Á0b0100Á0b1000Á0b10000Áü™-ü¢"

Ä¢
´
 5ü7 º ÆüñW€gD…އˆ,iü¸ -üÁ "

ÄÁ É“ 0ü¯ 7 º å ü W€gއƒ,iüà-üé"

ÄéÉ“D‚ 0ü×7 º ü¸W€gއƒ,iüïAä‘d‘4‘އ  œl < އK  ¬v
üø6
eØfE ýïb"E  Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙއa
 •ÒfE 
! 
øfE Ûއ
ßjE À
­üæK º °·ü¨ð·
,˜ ·
ý˜fÎE´
?eófEýŒaE³
Vý¬*ñFšî$FùȬÞ[ÿÝùÈ“á4 €g€g€g,¿އUTTއU.އ/á˜å=ófEa¹
e"
¡”馈%F×ÕÔÓÚއó
û˜
·
 óòñøއ
¨¿%¼ 
#*
ÄøÉ“¼4sr ºpon €gÙ€gØ€g×އ+**އ+އ¹
"àüô-ìƒއš   Žtl“<“  އÙ   Ÿ ? )/Ž á˜  
%Û1
UûÚ1
,
®µ>%¿Û1Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ€g
ÓÛ1
™Û1 Ûއ%¤Û1 œ£ º UŸÛ1 Û¼€g
¨Û1 ÔÛ1ü±Ò
·
å
·
,³
1ýýÙ×1·Tއ€g
»­”Û1ýÛGBt™"ù¤ù¤އâÜ»)
×¢„Ù€g$¿€gᘱ°°އ±ŠŠއ=”Û1އw€gek¹
o,ù¤
Ì»އÈ  Ç? ^ Óô» ØßüŠU¦·
€gÄÃއÃ!Tÿýއ
$ÿ0¡T wü€gú¼¼އ½Pý
ÌåއÂ  ñ? X ýôåz ü´U ·
€gÄÃއÃ!Tÿýއ
$í¿0¡T wü€gú¼¼އ½Pý
¤†!d‡!4‡!އ¼  ’!? R ™!̆!t ž!¥! üÚ Kš·
,Ž!€gÄÃއÃ!T!ÿýއ
$Ž!¿0¡T w ü€gú¼¼އ½Pý
¤¢"d£"4£"އ  ®"? L µ"Ì¢"n º"Á"!üö!K·
,ª"$“"€g$Š"ÄÃއÃ!T²"ÿýއ
$ª"¿0¡T w!ü€gú¼¼އ½Pý
ÌÈ#dÉ#4É#އ°  Ô#? F
 à#ôÈ#h
 å#ì#"ü—#UŽ·
,Ð#$¹#€g$°#ÄÃއÃ!TDØ#ÿýއ
$Ð#¿0¡T w"ü€gú¼¼އ½Pý|è$þ 
$è$,ñ$Tí$ý$%üº$C€g$Ù$€g$Ã$€g,É$¹
BÔºŒó%|ó%,ô%º Ôº·µ³ &QއÔê%އ ƒ& „&&'ü¸%Sô%žß% €gLÈ%€g,Ó%އ΀gÍ€gÌ*¹
.gÔºšt¢nèh¶n?üômB èhLŽn ­h,„n 2=³." èh­iílºÆºÆ»Æ
I32NotAllOnesÁ¼Æˆ¢  $ÄÒÿ|âÙ˜ V 
Ä."ï”Bü©”FüÙðFT\Þ”üŸ@ï\ŽñýŒ.?",ù˜Æ VëÄU».",À”¨¾,¶”ô¾ üÙ·'<
¤4Ù·$é·,ï·Lö·üà· †¸Fü«µÛ¨¢
Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ßßErrorÁà ¬
ÑøÿËO Ÿtûµœ¾,¾µ ˜Á4ŵÝo,Õµ€gLãµ.-ó0 interestsÁ<
’ÁsüÑÌ)½
ž˜Á4ÑÌ$ãÌ,éÌLðÌüØÌ"€ÍHüŸÊᨠ¢
ôÁtñÊœ¾,´ÊŠÃ4»ÊÝo,ËÊ€gLÙÊ+-ó0ÖÂ4“Ä弃߮
Ÿ˜Á4ƒß$•ß„Šß ßJüÐÝШ"¢
ôÁtÿÝœ¾,åÝŠÃ4ìÝS„ƤSZ­iílô¾  ŸñTóïñî,ëêëÄä,ððœ¾,æðô¾îfX(ˆ íl , ¿c((ºd
ùcx (ÐÉ~ƒC (¿iÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ŸÈŸÈ ÈÏÁ éBLì ­iö  c cˆ¢cµ
 `£cbufÁ `àB¤GS
<É  íløË¤f±töËÉÕºÉúílô¾² ®ßï,}ëÄwœËô¾ä”ð  öp !Ìê  ½ ‚!‰!÷ü» NÝo üü epoll_eventÁý¥þÚàÏNa¶^7öpÅÄÄzüÃ!-dÄ!ÜÄ!+ ËüÃ!2 ô!üÃ!u'ü…".  /ü…"3M ·"q¾"øü$´!ïÎ,¢! ùÄ*Llâ!št¤"
üø".Üù"dù"  “#? ? ¥#üø"3e ª#±#ùüÄ"m$é"ïÎ,×"º¸·Ä!Bt—#œ
üè#.Üé#dé#  ƒ$? 7 •$üè#3] š$¡$úü·#j$Ù#ïÎ,Ç#º¸·Ä!Bt‡$ü%,d%Ü%+ ü%1 ¿%üQ(ü”&+  ü”&0 Ã&üØ&.  ¿ üØ&3Ý Š'ü“&y^%ß'ûü§$ë$Ï$ïÎ,½$zg ÔÄ3Ut­%žl²&š„ö&¤
ü(,d(Ü(+ ÿü(1 ±(üüñ(,  Qüñ(1 ¡)ü¶),  ü¶)1 æ)˜Ë­ -ç|÷ü¼*-ô ï*üü˜'×$Á'ïÎ,¯'~˜5þÄ3UtŸ(žt)œtÔ)tÛ*
ü©+.ܪ+dª+  Ä+?  Ö+ü©+3A Û+â+ýüõ*m$š+ïÎ,ˆ+º¸·Ä!BtÈ+,É,ÒÔ,þüè+l$„,ïÎ ö+ ,Ÿ-(ª-ÿüÚ,P$ö,ïÎ è, šËüØBÈÈɘ) W;3
zžN: ë
™" t û@H ÿÌü æÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
£Å ááÇâ ÄÏâÊÍâõ'±*ioÁ/¾Áâ.@”ñ
FileÁÌõýmï˜"ù.»P\É(”Ë!ºÉ‘!ÐÉ$Ÿ!ÐÉ¡¦?Ï
Ð×gÊs ¯j}¦ËÉü  ÷ä
Ûæ®±»ÅÙæÉAºÉÙöpöp÷äÀYÀYÁYäÂYˆ†Y ɘÝÌ2ço€Y€YYFileDescÁYˆ½X ´™Ê¸fílô¾® ªîü®@ý‹.H!¸+ýÔö?ÍU·.!ýÝò?GãZ]Â.!ýä¢?FùX]‹óGÖ,]’£FÕëÄÏ¿æô¾×°h–ù
 $0É(ÙH$
‡d\$ÐÉ(p5Ý
ÞÞ]Êi ØØÙ£*Ûˆ 2¼&<MÖ4¡¦Ë©Éô  êêÆì Ò±ßéÄìÉ9žëýöp÷Ì öp4AN 
 ùüØ#̆îËíËí¡ÍíøËí³H% ÚèÌËíÍícöpöpöp¨«Ï7
òò·:ôºäõÌäîóðÃÍI÷ä\hɯ7;'ºÉK'ÐÉ$Y'ÐÉ­²?«³7
«´7¸gÊs ´k}¦ËÉ  ¥ð–ò ¯±¼Æ”òÉNºÉÚáK (
™" áK=(,4ëKìüÜJüÆ ù÷äïüò¥ ÷äÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ÙóÅÂüòÙót×KÕÌ÷äÏóÙó¬Â <ÝKïüòÙóâóÌôw óól€Kùñ,ðJüò ÷J±%öòzgnüò ¿)öòÐ)¿È ãKäKïÙóóàKÏóïÛæ ÞKüòð±Íüòöò2±5ǵGf*ôÁ¶SùüÓRc(ù÷äúçóôÁüŽS"
Ì÷äô÷¼Ü”Súý÷) ý¹ Há<¨Sý—µ<GÆZ=ô ôÁtêR ´kLÜR Çk+ôÁ¯Sú¯áÆZŒôÁ Sô÷âÛæT•SsenderÁž,ôÁÍVüêUcÃù÷äý÷ü¥V"$ Ì÷äûNÜ«Vý÷½ á<¿VÆZŒôÁtV ùñLóU õ,ôÁÆV§#áÆZôÁ·VûÝÛæT¬V¦ù
ü}¥ð÷äîç¢èílô¾I E„[üÁZCüà< ÷ä´èZ±
¸+\óZ®
ͪ
¨
ãZ¤
¢
ùXž
q,
mëÄg,ØZùñ,ÎZô¾o ­TÐ[¥ð÷äîç¢èílô¾W  û[ ü¨[SüÕ7 ü÷ädÛ[ýÕ1Z!¼+lè[ý¹ø>Ñe2!ý˜ð6GÝZe2!ýÉ£BFûXmœ2!ý±/S"ƒ,mø£Fýƒ4o@¼íl½Ù/"ý°_AàílÍÑ4@ýâT9@ÅílÕÙ/"ý”8A áílEU@ ï ëÄUô/",À[´k$·[ô¾`)dÍ\¥ð÷äîç¢èíló\ü£\Ppü÷ädÚ\ýµæ0Wƒ÷äíl4ç\ýçX^"œ,mÒæWŒÑe™Y"ˆÝZe¦Y"ý¦ 5FóXe³Y"íl$¾\´k4«\¦ù
­
ìÁ^tÏ^ýð[6"ý†\"u½¡F €Y}¯ñG ÀY
¥\"ó÷ 
¦\"üú ¥  ò÷ä¢1áá Ý^ü¥^D µ è^ï^üþ]qý²[{"ž,ëýŠ¡GFõXëýúðJGßZýÂ÷HÏýß[H"üÏ Ö ø÷äFÏˤ˜ ´k$–^íl†^¥ðt÷äuîçv¢èu§&0Ç÷ä ¤
¨¬ü_
¥ð".ÉÚ_3ºÉ 3ÐÉ$.3ÐÉsx?¬Þ_
¬ß_¼gÊs ¼m}¦ËÉΔòÖ–òÞ¦±³½”òÉ ºÉÑ’tì3öò ’tþ3!)œtüsÁ ù÷äüòÙóâóÌôÙótˆt)Ì÷äÙóT <ŽtüòÙóâóÌôÊóól±sΉ,¡süò ¨s±·öòøþüò$5öò# 5CL ”t•tÖóó‘tìÛæ tüò±Êüòöò±Tò‚¥ð÷äîç¢èílô¾n'  ƒ© üÊ‚Sü÷ädý‚¼+lŠƒÑÝZ 
ûXƒ,þ¼ílûùàílöôÅílñï áílì Ù'ëÄê,₼m$Ù‚ô¾4ûÿ()¥ð÷äîç¢èílô¾Ë( Ç(„„«üÁƒC÷ä´èƒ4¸+\óƒ2Í.,ãZ(&ùX"õ(,ñ(ëÄë(,؃Ή,΃ô¾õ)°tŒ†¥ð÷äîç¢èíl´†¯üÞ…Vu ü÷äd›†ƒ÷äíl4¨†œ,Ñýƒ ÝZûùóXõíl$ý…¼mDæ…ç 

숈t–ˆöóð €Yí ÀYêè åã ò÷ä‚9áá ¤ˆüê‡F ¹ ¯ˆ¶ˆ³üÇsåž,ØâõXÉßßZãÛÏ×Ôø÷ä# ËѼm$Û‡ílˇ¥ðR÷äRîçH ¢èG §&1µ÷äÒü&°'Ã$)Ýo5 Ýo?HRÂ'
öp!-Ƀ'A;žëQ;ÐÉ$i1±‡'
±ˆ'ÅYÊe ˜m¦Ëuɽ  öpÊ‹šÒ±¨²‰šÉÿžëÅÂ'
öp öp0²Ê'
²“'ÈŠ' ˜ ˜öpˆöp5¹
BL³—'ʳ•'  ˜&0
šE" öp" öpšE ¹" ¶E ۼ̌5F´£'ÌP´™'FôàH´Â'ºŽ# ˜+ ˜3ÌŒšEöpÒöp½S¹
`j£„" öpª„" öpYG ¹°„" µ¨'ε¥'&GöàÂ'ÌŒ# ˜+ ˜3öp¨öpJ¹
Wa‡ÑL öp‘»ûÐL/?
ªeùûÐLIÑL »ŒÑL®'Ъ'ù»¼ÐcLÚÊ‹¡Â', ˜4 ‹¡?öpÁOº\f…¡Í,—(öp¢(Xüð'2öp,‡(Ýoø'¹ -ˆ·
¯j!-Éø£@ºÉ³@ÐÉ$Á@ÐÉrw?·ü
·ýÕgÊs ƒq}¦ËÉÍ ¿æØ¿æà©±Àû¤É
ºÉÔï¸ôÙ$¡¼Ä8ˆ¸£·qS ·q]fpS,R,Y,ñÎw,öpX,W, ½V,¸jüíK\,÷ô”Ýo,„ ¦öpë,ë,Mü« $ 6,4,ñÎ8,b, C8,hnÕ L,K,ICa,q,K,R, yCJ,•CH,¸,küÿVE,ø ¦, W-D-^-é,+[L,šK,
J,H,G,N,ñÎl,M,, ŒDM,L,¯DJ,ð
lüš
VP,ùüÆ
$
 ¦,­
---#U[,œ
Z,X,W,^,ñÎ|,],, ”E],\,·EZ,àmüP`,úü¹! ¦, #-"-"-#Uk,üé' y,w,ñÎ{,¥, F{,hn,Ž,ÜF¤,´,,”,  GŒ,Š,‰,, GG ˆ,cG†,…,á,”,“Gª,nüº\z,ût ¦ú-ç-.-T-3c€,ž,š~,¤
üÈ&( Œ,Š,ñÎŽ,¸, HŽ,hnö&¢,¡,³,Ÿ,¦, ïHž,œ,›,¢, *Iš,˜,(-0-dIF-Ç,I -“I œ,¨IŽ-oü˜&^˜,ü$¹& ¦,¯&/..6.Ó-œ-3cž,ž,œœ,›,
š,˜,—,ž,ñμ,,Û, ¸J,œ,ÛJš,-pü«,V ,ýü×,$$È, ¦,¾,c-b-b-#U«,ª,{K¨3qüÜ2L°,þüƒ3$ô2 ¦,ê2 =Å,ìKÞ5rü’5LË,ÿü¹5$ª5 ¦, 5 =ü§80ô¨8L¨8 ·q Ö8ü¥82 æ8ç8sü­6º ¦4é6ïÎLÎ6λ ñÎ sys_eventÁ'Kˆ¹å
 ƒsÉü
öp!-ɼ†M
ûcšM ÐÉ(¨MÐÉ¥ª»M
ÐÉŽV¹À
¹ÁàÊ ÚÚ—9ÜÌ|ݳ9|O9âñ¶ùѦËÙÉP ö¼\É6‰š?‹šH± +³¿É¨‰šÉƒܽJúÈã$ã¾0á¾8AK
Ùö¼ˆºå
ÙöpPºüE¡¹
ªBªBö­BÇÊ÷<®B÷<9)
-ÜnLñΓt((RawVecÁ+Ì,_markerÁµ!iÇ÷åÖ_ñΓt-- RawVecInnerÁ/µ 0capÁ1¤/‰6< ”I“tÆÆ‘ÆUsizeNoHighBitÁ’ƈ¢  ÞÌ3ëì8eB öp
³¹Ûü–Eýù²IÄBñΓtTËýË\`GñΓtU²³ýÞjKXÀñÎu–]ý»¸^“tÅ]FB§ÄUª¹öpö¼Ã³ý‡k XñÎöpU¹—ÕöpU‚E×ú³Áöp½ÿü
ÐPÿÿÿÿÿÿÿöpýìü+ 
–ý}‚ÐPöp
üÐDýÓ€DŒCñΓtT„ý¢ú‹CñΓt-‡ýÍúàö¼öp
î…†ýñÎöpü¢= ÚÐPöpåüùlã¾Dö¼,… .eÃö³ÁöpÐPöp€&üÅ%;ýóòŠCñΓt<ò%ý•óòýݪÉ ÐBñΓtu°óýÖâÚÒBñΓteÿ³ýZIEñΓt-¥äýê¶NZ“tñÎ-ÍZýÌ·[\“tñÎ}š·ýº-Ço¯ñÎ5‰¸ý²™µ%¯ñÎ5Ý.oý†~û% ªEÌš% ýò#Mo¬ñθ4ªñÎEª·ý–·bN
®
ñÎÍÝöÜ% ƒsLÒ% ŽT ÚÐPöp¨(üè'@Z4œ(ã¾tþ'ö¼$õ' >üª)Eüª)*ö¼mº¦E¿¦E€¸³ÁöÁ¿ÂUniqueÁ ž–Á8Åá™-Ýñ§ ïíe¼îËè¿*uäÈ ¬¼³Eɦ³Áöpý‚¦P ¼Ì
ѦDæ)öp•Î@-    ý·A -


ý²A&- Û¼ïÎ
×A-
…B- î),Q ÛïÎFQ . 
, +  I 
λ* )  
' 
fQ Û¼ ¦ ‚Q ŽQ¡ žÄPÐPÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ ¦!Q š*l¥*öpöpÐPöpÅ*üí(Øü )¥ýÊÉ7ÑCñΓt"ýÜÏBñΓtUñÉý¨ÇÐÑBñΓt5EñΓt-íÈZ“tñÎ\“tñÎ  ¯ñίñÎýû ª÷ ô¬ñÎñ"ªñÎïýЗ,üsñÎöplâ)ý™@ó-
ŸkñÎMΘ,
áQ·TïΠ¦
sôý)R
R™"âÖâÖïÎFQŒ
s
RéÒ”ƒ) ã¾Lõ(Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙïÎúöpæö¼` ¼Ì¬¼öpFžÏþïÎãïÎ,Q ¦FQλ¾¬¼¾ÂretÁ¤)Ž
ÚsñÎ]Õ@-âÖ!Q
„Ž+ö¼Ú ³Áöp× Þ ÐPÿÿÿÿÿÿÿöpÕ  Ñ Tµ+ Û¼öp”®+  ¿+Æ+üË*{üƒ+CÉ ‹CñΓt,Ÿ+Á öpÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙöp´â*á¾,Ø*öp$‡+™Ûèö¼ +/É#
ñÎöp„î+ö¼o ³Áöpl s ÐPÿÿÿÿÿÿÿöpj  f Š,üÌ+> CñΓt,ÿ+ öp,Þ+ã¾$Õ+ö¼
ý [ ñÎöpD‡!ãÍ ž–Á8Åá™-Ýñt§ ïíe¼îËè¿*t  tü‡!-ÐP
tÀD™!,£!Lª!ü!$ ³!º!¢üõÅôÁ Ìsœ¾D Ýo€g tBÉß1ß9BEóIÖÂNìßòDÔ"ÍÞß Éß-üÔ"/ÐP
žtWDè",ò"Lù"üÝ"& #‰#£üÀ!ÉôÁt»"ÌàL×!œ¾Dê!Ýo,‡"€gL"ôàÕÉß.ß6?BóFÖÂK¦âíDÙ#ÍÞß Éß-ìÙ#ÐP
ŸtVDí#¤â# õ#ü#¤ü#môÁtÀ#ÌàL#œ¾D¨#ôà²Éßß$-0]Úä¯.0 òtÐPáá¥
ø¬/kBËœ/Æt tÚ µã
ç/tw/ t€B‡B —BÐPÁâqB°B¹BrBÝ ù::wBÌtÇâßã¡9‘ã Æt Çâ à Ïâ±Íâ&C&±)ª:ÁâRC tŒ üi4t ð Æt  “4\ tœ Ï5Ïâ £è  û5|” t© ƒüÝL ôàŒø Æt  0T¸ áá´õ  t#ÐP
¬+t2\€  Š ü¸T ÐP
Ð   ƒüÐ<    üÖ¼ ôÁ öê œ¾ Ýo,› €g  ááýÏâýBEóIÖÂNŽéëJ›ìÿT„ áá´Ã  t#ÐPéë-  Ø ü„V ÐP
Ñ  L¸ ~üœ>  Ù à ü˜È ôÁt“ öê œ¾ Ýo €g ©íõÏâõ?BóFÖÂKéëBïüT‰ áá´©  t#ÐPéë-  ¾ ü‰ 7 ÐP
Ò pü” ,  ¿ Æ ˆüæà ôÁt— öê œ¾Dÿ ©íèÔÏâÔ,/]éëüñÀTé0 tŒé0 ÐP
Àct4 ø0 4ô0  ù0 €1 ü¦0Z Ê\Ó0 £è,­0 ¦Ë ´0 Ïâ± Má󟼗 ­7 ò©vÐPááüöC ª ¸ ¿ ®ü±Ž S7ø©vrJËN7¨u ©v òò·:ôºäõÌäîóðÃÍI©v×Ó/M©vi7Tà3 ˜ö©vê_ê_¨=ë_Ìü^˜%ÞH’’B\ã`ã`ä`SocketÁå`ˆ³` Gzds—¢èílô¾S\  4 ½
ü¸3S ü;ü©vdë3 ù¾ò …îNlø3 ýš£BÝ#§
ýòŠ=Lñ_´
ý‹µ6M”aÂ
˜:óXÏ
<ƒ,Ü
<¼íl<<àíl<<Åíl
< <
áíl<
õ\ëÄ<,Ð3 ¨u$Ç3 ô¾Ê1^!^˜ö©v•÷Ä÷¢èílô¾ê] æ]±5 ¿ üî4C ¡>©v´•5 ù©ßa…âN\ 5 ýý CÙ#ý±Š;Lð_žýÈ·?Mša§qIùX]ö·MC^,mI?^ëÄ9^,…5 ¨u,û4 ô¾Ò^à”Ô9 ˜ö©v•÷Ä÷¢èíl€: Ã
üŸ9a Ä>ü©vdç9 S=ƒ©víl4ô9 ý¶g"¨,O=ÛÝ#e‡h"Ôñ_m”h"Í”ae¢h"^=óXe¯h"Å=ƒílíl5¼h"ýáè$WílÆ=íl$Å9 ¨ud§9  tcp_listenerÁítù= ý¢jd"ý¸jM"ýÎj6"= €Y}¤¶M ã`
„k"íø™L ê_
…k"•â Š#
†k"»= ò©vÐPáá ª  ‡> Ž> Ç ü¼=R ýäi©"ª,¶=õXýïµJM–a%ýÁ™ZLþ_Cýÿ¡\Û#ý‘jv"}®üã=% Ø=ø©v÷¤PËÕ=¨u$Ô= ílÄ= ©v³•÷´Ä÷³¢è²˜öH§&8ï©vÛ=¬%
? ò”xÐPááüâ$?
è  %
§%
ìü£$„
Å>ø”xrQËÀ>åvLÎ$
”x4³$
òò·:ôºäõÌäîóðÃÍI”x×Í0M”xÛ>³T
ÐPöò ³T
ÐP!)½T
÷ü®S
~Iù”xúüòÙó ”xóóÌôÙót©T
øQÌ”xɆÙó"I<¯T
úüòÙóÚ†Ìô˜RóólÒS
åv,ÂS
üò ÉS
±Êöò üò9ÐPöò8ÐPXa µT
¶T
úÚóó²T
Ɇð ”x °T
üò±Îüòöòͱ5ù¿ÐPôÁ¸\
Šü×[a
LKù”x߆ôÁü’\
µSÌ”x—ŠÞJ̘\
 ŠKTýÉ¿<µ#<ª\
ôÁtî[
åvLà[
 ®ïÐPôÁ±\
µ#|ôÁ£\
—мŒ‰L™\
Ì ÚoÐPôÁÏ_
üî^a
¸Lù”x Šü©_
UÌ”xƒAL̯_
 Š°Ueµ#<Á_
ôÁt…_
ɇL÷^
 ¤QÐPôÁÈ_
äµ#ôÁº_
ƒ½Œ‰L°_
Ì ÛT”f
Š…”xÀ_À_Î@Á_Ìü^§Ö'®•‘ãCÄ÷¢èílô¾7_  ¿f
š
üìeS
ëGü”xdŸf
ï ìNl¬f
ýÙÂ@»#è ýµ[=LÈ_â Ý ”aÙ lFóXÔ êGƒ,Ï äG¼íláGßGàílÜGÚGÅíl×GÕG
áílÒG
©_ëÄÐG,„f
åv$ûe
ô¾q Ò^Ò^Š…”x¸Ä÷¢èílô¾7_ J_ãg
œ ü gC
kJ”x´Çg
Ê àN\Òg
ýÌÀA·#Ä ýôZ;LÇ_¾ ¹ šaµ !UùX° •_,U©_ëÄ»_,·g
ɇ,­g
ô¾Ò^Á„øk
Š…”x¸Ä÷¢èíl¢l
 
üÇk[
oJü”xd‰l
þHƒ”xíl4l
ý†`Œ"¢,úHž»#eÑ`"œÈ_mÞ`"x”aeì`" IóXeù`"pIƒílíl5†a"« ílmIíl$ék
åvTÏk

tcp_streamÁçt“p
ýêbd"ý€cM"ý–c6";I €Y¥  ã`
Ìc"ݹuL À_
Íc"…ˆÂ ‡#
Îc">
\I ò”xÐPáá=
 è;
 ¡p
¨p
¤ üØoP
ý¬b©"¤,WIõX¡ –aý„uVLç_:ýÈÁV¹#ýÙbv"§
ìüÿo#
tIø”x! @\ËqIåv$ðo
ílào
”xª¸«Ä÷ª¢è©Š…r §&8ê”xwI¬ñ)»J òÑyÐPááüÒ)? à *—*Çü“)„aJøÑyr+]Ë\JÐxL¾)Ñy4£)òò·:ôºäõÌäîóðÃÍIÑy×socketÁSÑy}JIJÐPöò IJÐP#+βçü¿±$UùÑyêüòÙó ÑyóóÌôÙótº²Ÿ]ÌÑyïÙóÉT<À²êüòÙó€žÌô@^óólã± Ðx,Ó±üò Ú±±ÐöòüòBÐPöò@ÐPaj ƲDzêàóóòï÷ Ñy Á²üò¢±Óüò$öòÚ±T“¹¦œÑy``·E`Ìü^Ùj¯nciÄ÷¢èílô¾7_  ¾¹ò
üë¸SÊPüÑydž¹ÏðNl«¹ýý‚@›$Éý”£=Lˆ`Ä¿”a»NOóXÌPƒ,±ÆP¼ílÃPÁPàíl¾P¼PÅíl¹P·P
áíl´P
©_ëIJP,ƒ¹Ðx$ú¸ô¾yÒ^Ò^¦œÑy•¡Ä÷¢èílô¾7_ J_âºô üŸºCQSÑy´Æº±äN\Ѻýð€A—$¬ýÓ¢;L‡`§¢šaž
^ùX•_,^©_ëÄ»_,¶ºòž,¬ºô¾Ò^Ç„÷¾¦œÑy•¡Ä÷¢èíl¡¿ø
üƾ[]SüÑydˆ¿íQƒÑyíl4•¿ýßnŒ"®,êQ­$eªo"«ˆ`m·o"h”aeÅo"ùQóXeÒo"`Rƒílíl5ßo"íl]Ríl$è¾ÐxTξ
udp_socketÁìt’ÃýÃqd"ýÙqM"ýïq6".R €Y˜ ã`
¥r"ݘÖL `
¦r"…¬‚ ð#
§r"PR òÑyÐPáá à  Ã§Ãü ü×ÂPý…q©"°,NRõX˜–a!ýãÕVL¯`?ýìV™$ý²qv"ÇüþÂ#mRøÑy~9eËjRÐx$ïÂílßÂÑy³•¡³Ä÷²¢è±¦œÑ§&9ïÑyrRø¯¦ ü¦ ÐP
‰&¡/>D J
%ã¶UݶÐP ó
ô
©·
ÅÂ5· 
 Ö¿ˆê)?ÈXM´­ÅÂ
Õ¯· •¢Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ù®ÅÂþMþM
SocketAddrÁÿMaddrÁê%€Nê%è)6{}š~É
È· ¬
³ º¯Å°Å[¯ä ëEÔº uκ  ÐP# 
ïº
Å•õº
Ö¿zÅÂ
el Æþ
ù¶ «ã¯Åÿ¶ •¢¯ã¯ Ç
Î Õü¦  lã¯A ôÐÐP
ž&œ üФü›Yš¡¨ý–¶Ä÷\ã¯Å˜ýö¶!ý¥·$ýºü\zÅÂÅÂÏåëº  Õ
ÅÂmùº Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
zÅÂÄø¶­ã¯i•¢˜¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜¯ã¯»Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ã¯Å ¯Tã¯E ã¯-ö¶ã¯¼Å¹¯©5ëº ÅÂB u õ
)€¯Ž йÄ]°­°ų¬¢
ŒY òêzÐPááü€
B  Á
È
Ÿü» 2YøêzrükË-Yzêzòò·:ôºäõÌäîóðÃÍIêz×ë›NêzIY„(÷¹êzÄË ÐP
ž'¶­   é  ü€ i’^êzYôÁ  z ¶­  êzõ
"b„»¯¶­ è ­*÷¹êzÄÎÐP
¬'¶­Ü”Ôí«üÛédùêz­¶­ êzÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
öpņöpüÀ'µmÌêz´½öpÞdüÆ ­¶­Á½©¾QnѽŒ™à»†î¶­$ö»,(ÇÊ,õ
/7ß¼Œw†îˆ¶­ÃÐPß¼¼»º¹ åæ­ѽÍ´½ö»¶­ †î;ÌÇʆîõ
 ¶­tß¼ _ref__bufÁõ
´3ÐPöò ´3ÐP!)¾3²ü¯2|gùêzµüòÙóƽóóÌôÙótª3îoÌêzÇÂÙóg<°3µüòÙóØÂÌôŽpóólÓ2à»,Ã2üò Ê2±Àöò üò/ÐPöò.ÐPNW ¶3·3µØóó³3ÇÂîö» ±3üòбÌüòöòÁ±TÐ9÷¹êzÄ÷¢èílô¾7_
 û9½ ü¨9SÛbüêzdÛ9ýÿ\Â'lè9ª&”ae°ÿ<aóXe½ÿ½bƒ,mÊÿºb¼íl·bµbàíl²b°bÅíl­b«báíl¨b©_ëĦb,À9z$·9ô¾(òÒ^Ò^÷¹êzÄ÷¢èílô¾7_ J_æ:¿ü£:C;eêz´Ê:ýËûJ¾'\Õ:ý¦´7M’aUùûÕoùX]„ü•_,Ño©_ëÄ»_,º:à»,°:ô¾Ò^¨ø±Ç üÇ ÐP°­'6< B
ˆÐP 

Å  Ö¿Ù®ÅÂ
m •¢¯ã¯ Ô
 ê
ð ö±æ²æ[¯ &Î
Ë
 ÐPë
É
ÅÂÆ
Ö¿Ê{ÅÂ
œ ç<E Ã
 «ã¯À
 •¢¯ã¯ ñ
ø ÿ
üÇ  lã¯0š,‰ôñÐP
è&æ üñ¤ü¼Y½
÷\ã¯Å½¸
´
°
ü\Ê{ÅÂÅÂç«
  }(
Ũ
 Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ê{ÅÂÄ™¶­$ã¯{õµ|϶z¯ˆã¯Š¼·]ÿ 㯸ŵ¯¥ü ÅÂ; n õ
}€¯üŽ ú¹ÿ˜°­‚ÏÔ¼Å
„f ò§|ÐPááü£
D ã æ
í
éüÜ ‘*fø§|rVpË%fÊ{
§|òò·:ôºäõÌäîóðÃÍI§|×Ó/M§|@fïÓ§|Ä÷¢èílô¾7_
 ô ü³Spjü§|dæýþU\ú'?.”ae­VÑhóXeºVRjƒ,mÇVOj¼ílLjJjàílGjEjÅílBj@jáíl=j©_ëÄ;jÊ{ô¾(òÒ^Ò^ïÓ§|Ä÷¢èílô¾7_ J_ñöü®CÐl§|´ÕýÈRJö'aUöRTtùX]S•_,vt©_ëÄ»_ Ê{ô¾Ò^¦œ§ïÓ§|Ä÷¢èílÔüüðd´lü§|d»Ckƒ§|íl4Èý¡[_€(?k™0”aeá[+kóXeî[íl$˜Ê{
unix_listenerÁ
ý¶Y-ÍÉY-k €Y—- ã`
âYý©Y; ã'
ãY®1k ò§|ÐPáá­ ã« ·¾üëSýúXpþ'ê+kõXåt-–aÿêéü’&kø§|dVpËkÊ{íló§|WÄ÷X¢èVïÓ¬§&/´§|kø³ï üï ÐP°­$‰'6< B
œÐP ½
¾
Å š Ö¿Ù®ÅÂ
~ •¢¯ã¯ å ê
ð ö³Ž´Ž[¯ &ß Ü  ÐPü Ú
ÅÂ×
Ö¿‡}ÅÂ
œ <E Ô «ã¯Ñ •¢¯ã¯ ñ
ø ÿ
üï  lã¯0šü™ÐP
£'¡ ü˜¦üäZŠ˜˜Ï÷\ã¯ÅÂ¾ÊÆÂü\‡}ÅÂÅÂè½  2
ź Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
‡}Å´ö­ã¯|õµ}϶{¯ã¯¼·^ã¯ÊÅÂǯ· ÅÂM  õ
}€¯ýŽ û¹˜°­”ãÕ¬¹–p ò’~ÐPááü™@ ž Øß¤üØ
<pø~rVpË7p‡}T„~
òò·:ôºäõÌäîóðÃÍI’~×Í0M~RpË*ÐPöò Ë*ÐP!)Õ*«üÆ)<yù’~®üòÙó ’~óóÌôÙótÁ*qÌ’~ÀéÙóñy<Ç*®üòÙóÑéÌôŸpóólê) ‡},Ú)üò á)±Êöò üò9ÐPöò8ÐPXa Í*Î*®ÚóóÊ*Àéð ’~ È*üò±Îüòöòͱ5ưÐPôÁÓ2¾üò1a<yù~¿ÖéôÁü­2 qÌ’~íñy̳2¿˜íŸpý–°<Þ(<Å2ôÁt‰2 ‡}Lû1 ¯ñÐPôÁÌ2¿˜Þ(|ôÁ¾2í½ƒìL´2Ì ÛqÐPôÁë5ÅüŠ5a<yù~ƘíüÅ5 qÌ’~üïñyÌË5ƘíŸpfÞ(<Ý5ôÁt¡5 ÀêL“5 ¤SÐPôÁä5ÆåÞ(ôÁÖ5ücìLÌ5Ì ÛT÷;è’~Ä÷¢èílô¾7_
 ¢<Î üÏ;S5yü~d<ýÞ´Bä(l<ý«¸BMœamµ yûXmÚ¸Myƒ,yy¼ílyyàíly
yÅíl
yyáíly©_ëÄy,ç;‡}$Þ;ô¾+õÒ^Ò^è’~Ä÷¢èílô¾7_ J_=ÐüÈ<C˜{~´ï<ý»±?à(\ú<Ä<ša]é±TtùX¿<•_,vt©_ëÄ»_,ß<Àê,Õ<ô¾Ò^£PQ ºPQ»PQ€gPQއPQPQÐ0ë ¼½&öi18?¼á ØÙ'þë3êê;B„±' ½¾%Ýo0öp7>¼À@ vw%vvwóyˆd úxß öËÝÀ\ïÎdk                                         *UVYc±¸¹äŒÀ¾ ª§ý D”
º«·$­
:­
<®à7,Í
½¯à7¾¯*,ŸÒ°üÊOü³OL Mio is a fast, low-level I/O library for Rust focusing on non-blocking APIsÁüƒPM and event notification for building high performance I/O apps with as littleÁüÔ2/ overhead as possible over the OS abstractions.Áú\ # UsageÁúü›OL Using Mio starts by creating a [`Poll`], which reads events from the OS andÁüëMJ puts them into [`Events`]. You can handle I/O events from the OS with it.Á¹úü½" For more detail, see [`Poll`].Áàúüä%" [`Poll`]: ../mio/struct.Poll.htmlÁüŠ/, [`Events`]: ../mio/event/struct.Events.htmlÁºú ## ExamplesÁÎúüÒPM Examples can be found in the `examples` directory of the source code, or [onÁ GitHub].Á°úü´EB [on GitHub]: https://github.com/tokio-rs/mio/tree/master/examplesÁúú ## GuideÁúüA> A getting started guide is available in the [`guide`] module.ÁÑúÌÕ ## Available featuresÁïúüóDA The available features are described in the [`features`] module.Á*UVYc±¸¹äŒÀ7¾8ª§ý 7º«·6:­5<®à74½¯à7E¾¯*4Ò°ÀÃÆT‚ 4† Ķ

 Ï

 Õ
ä
, Ö
 ×
â
, Ø
8÷
& Ý
8÷

ã
*æ
 é
þ
, ó
 ô
÷
+ 
 ƒ
œ
8â
 

8»<ˆ

7Ç L
+ ª
 «
Û
8ä
 ´
Ú
8docsrsÁ
$ »
8Ó½
 À
Ù
8âÁ
 Ä
Ø
8»
Í
7Ç 
, é
8÷
ø
äª

 Ç
¾
 Í
Ü
, Î
 Ï
Ú
, Ð
8÷
& Õ
8÷

Û
*Þ
 á
¼
, ë
 ì
µ
+ ú
 û

8âü
 ÿ
˜
8

 ƒ

8»<„
Œ
7Ç 
, §
8÷

¼æ

 þ
­
 

, 
 

, 
8÷$ˆ
& Œ
8÷$


*
 ˜
«
, ¢
 £
¤
+ ±
 ²
Ê
8â³
 
É
8»
¿
7os-extÁ
+ Ø
 Ù
ˆ
8ä
 â

8Ú‹
$ é
8Óë
 î

8âï
 ò

8»
û
7£
, 
8÷$—
¥
¤Ò

 ç

 í
ü
, î
 ï
ú
, ð
8÷
& õ
8÷

û
*þ
 
Ž
, 
 Œ

+ š
 
°
8âœ
 Ÿ
¯
8»< 
¨
7Ý*
+ ¾
 ¿
ë
8ä
 È
ê
8Ú‹
$ Ï
8ÓÑ
 Ô
é
8âÕ
 Ø
è
8»
á
7Ý*
, ù
8÷
ˆ
Ôþ
l

Š
 Ÿ
®
,  
 ¡
¬
, ¢
8÷
& §
8÷

­
*°
 ³
ˆ
, ½
 ¾
+ Ì
 Í
8âÎ
 Ñ
8ºÒ
 Õ
8»
Þ
7Ý*
$ å
8£ç
 ê
ƒ
8ú
$ ï
8»
ù
7£
+

å
8äD
 ž
ä
8Ú‹
$ ¥
8Ó§
 ª
ã
8â«
 ®
â
8º¯
 ²
á
8»
»
7Ý*
$ Â
8£Ä
 Ç
à
8ú
$ Ì
8»
Ö
7£
, ó
8÷
ÜÝ
 ù
Ô
 ÿ
Ž
,

Œ
,
8÷
&
8÷$ˆ

*

Ò
,
 ž
Ë
+ ¬
 ­
Û
8â®
 ±
Ú
8º²
 µ
Ù
8»
¾
7£
$ È
8»
Ò
7Ý*
+ é
 ê
¯
8ä
 ó
®
8Ú‹
$ ú
8Óü
 ÿ
­
8â
 ƒ
¬
8º

«
8»<ˆ
7£D
$ š
8»
¤
7Ý*
, ½
8÷
Ì
”×
 ê
£
 ð
ú
, ñ
 ò
ø
, ó
8¿ ô
& õ
8¯ö

ù
*ü
 ÿ
¡
8§
 Œ
 

8ˆ
$ 
, 
 

, 
8¿ ˜

š
Œ¦

 ¸
ð
 ¾
È
, ¿
 À
Æ
, Á
8¿ Â
& Ã
8¯Ä

Ç
*Ê
 Í
î
8§×
 Ú
 Û
è
8Õ
$ à
, â
 ã
æ
, ä
8¿ å

ç
”ó
,€
 
¿
 Œ

, 
 Ž

, 
8¿ 
& 
8¯


*˜
 
½
8§¥
 ¨
 ©
·
8
$ ¯
, ±
 ²
µ
, ³
8¿ ´


„Â
Ï
 Ó
À
 Ù
ò
, Ú
8levelÁ
& à
8¼
$ ç
, é
 ê
ð
, ë
8¿ ì
& í
8¯î

ñ
*ô
 ÷
¾
+ 
 

8âƒ
 

8»<‡

7§,
 ¡
¸
8§£
'¦
, ¨
8­¢
 ®
 ¯

, °
 ±
´
, ²
8¿ ³

µ
+ ð
 ñ

8âò
 õ
Š
8
ö
 ù

8»

7§,„
 
¸
8
8 
  

8¢
8 ¦
¨
 ª
³
, ¬
 ­
°
, ®
8¿ ¯

±
% ´
d D“ º» NonZeroU8ÁL¤”×#¤,­
( œ7)+”Ý”úD€Òê”üD‚l›€g !"äñü¯=: Returns a `Interest` set representing readable interests.ÁDû€gä üÎ=: Returns a `Interest` set representing writable interests.ÁDš €gä¸ü¯HE Returns a `Interest` set representing priority completion interests.ÁúlinuxÁœ†ú  ¬›ü…,üü7€gü¨3ü•  Add together two `Interest`.ÁºúüÂDA This does the same thing as the `BitOr` implementation, but is aÁ´‹ constant function.Á¦ú ```Á´º use mio::Interest;ÁÕúüÝKH const INTERESTS: Interest = Interest::READABLE.add(Interest::WRITABLE);Áü­2/ # fn silent_dead_code_warning(_: Interest) { }Áüä)& # silent_dead_code_warning(INTERESTS)Á<̬.üËXHthis returns the result of the operation, without modifying the originalÁµ€g€g€gÔºhM¹
qMü±8ü½+( Removes `other` `Interest` from `self`.ÁíúüõDA Returns `None` if the set would be empty after removing `other`.Á¾ú̬´ÒܬíúüõNK const RW_INTERESTS: Interest = Interest::READABLE.add(Interest::WRITABLE);ÁÈúüÐ=: // As long a one interest remain this will return `Some`.Áü’FC let w_interest = RW_INTERESTS.remove(Interest::READABLE).unwrap();ÁüÝ'$ assert!(!w_interest.is_readable());Áü‰&# assert!(w_interest.is_writable());Á´úü¼>; // Removing all interests from the set will return `None`.Áüÿ<9 assert_eq!(w_interest.remove(Interest::WRITABLE), None);ÁÀúüÈ>; // Its also possible to remove multiple interests at once.Áü‹85 assert_eq!(RW_INTERESTS.remove(RW_INTERESTS), None);Á̬.üÔX×®€g€g×¢
JR¹
SRüŠ&ü»:7 Returns true if the value includes readable readiness.Á.\ú\—€g
žSü´&üå:7 Returns true if the value includes writable readiness.Á.\¤€g
˜UüÚ !ü 63 Returns true if `Interest` contains AIO readiness.Á.\Ê €g
Wüö!!ü«!63 Returns true if `Interest` contains LIO readiness.Á.\æ!4ƒ"€g
!ŒYü—#&üÇ";8 Returns true if `Interest` contains priority readiness.Á.\‡#\¤#€g
"†[äð#€g$%˜ú™ú%\“$4˜$##€güº$#,½$€g€g€g##
%]¹
$]ü%"€g'—˜'ü¸%'d»%à à€g€g& È%&
'$Í%¹
&€g)Àc)ü²&:µ&áâã á€g â c cˆ¢cµ
 `£cÇÊ `àB¤GS
ãÊ( ¹&(
)$º&×À&D  :<Û
,*,à <±«+*-ÎN*.ÿ ,ƪ+*/DurationÁDÆ­Ö*0×Ú¤,*2µãߦ*3Äc*5éøU*6¾*7ª§ý D…º*8«à7,½*9¯à7¾*9¯\
úüë휻ØÔÊ̺¼,鯱¡£|~ik|Zü˜85 Polls for readiness events on all registered values.ÁÑúüÕLI `Poll` allows a program to monitor a large number of [`event::Source`]s,Áü¢OL waiting until one or more become "ready" for some class of operations; e.g.ÁüòNK reading and writing. An event source is considered ready if it is possibleÁüÁFC to immediately perform a corresponding operation; e.g. [`read`] orÁtˆ [`write`].Áúü› NK To use `Poll`, an `event::Source` must first be registered with the `Poll`Áüê HE instance using the [`register`] method on its associated `Register`,Áü³
KH supplying readiness interest. The readiness interest tells `Poll` whichÁüÿ
LI specific operations on the handle to monitor for readiness. A `Token` isÁüÌ MJ also passed to the [`register`] function. When `Poll` returns a readinessÁüš JG event, it will include this token. This associates the event with theÁüå *' event source that generated the event.Á
úü”
0- [`event::Source`]: ./event/trait.Source.html矁
52 [`read`]: ./net/struct.TcpStream.html#method.readÁüû
74 [`write`]: ./net/struct.TcpStream.html#method.writeÁü³63 [`register`]: struct.Registry.html#method.registerÁêú # ExamplesÁýúü=: A basic example -- establishing a `TcpStream` connection.Á¿ú,ÿ```ÁäÖ # use std::error::Error;Áüó/, # fn main() -> Result<(), Box<dyn Error>> {Áü£-* use mio::{Events, Poll, Interest, Token};ÁäÑ use mio::net::TcpStream;Áîúüò%" use std::net::{self, SocketAddr};Á˜úüœ*' // Bind a server socket to connect to.ÁüÇ2/ let addr: SocketAddr = "127.0.0.1:0".parse()?;Áüú/, let server = net::TcpListener::bind(addr)?;Áªúü®MJ // Construct a new `Poll` handle as well as the `Events` we'll store intoÁüü  let mut poll = Poll::new()?;Áü1. let mut events = Events::with_capacity(1024);ÁÏúÌÓ // Connect the streamÁüí?< let mut stream = TcpStream::connect(server.local_addr()?)?;Á­úü±&# // Register the stream with `Poll`ÁüØ^[ poll.registry().register(&mut stream, Token(0), Interest::READABLE | Interest::WRITABLE)?;Á·úü»KH // Wait for the socket to become ready. This has to happen in a loop toÁü‡ // handle spurious wakeups.Á loop {Áü²&# poll.poll(&mut events, None)?;ÁÙúôÝ for event in &events {ÁüüA> if event.token() == Token(0) && event.is_writable() {Áü¾OL // The socket connected (probably, it could still be a spuriousÁÔŽ // wakeup)Áô© return Ok(());Á
 # }Á̬öúŒú # PortabilityÁŒúüLI Using `Poll` provides a portable interface across supported platforms asÁüÝ>; long as the caller takes the following into consideration:Áœú¼  ### Spurious eventsÁ¸úü¼EB [`Poll::poll`] may return readiness events even if the associatedÁü‚EB event source is not actually ready. Given the same code, this mayÁüÈNK happen more on some platforms than others. It is important to never assumeÁü—JG that, just because a readiness event was received, that the associatedÁüâ# operation will succeed as well.ÁúüŠLI If operation fails with [`WouldBlock`], then the caller should not treatÁü×NK this as an error, but instead should wait until another readiness event isÁ
received.Á´úÔ¸ ### Draining readinessÁÓúü×KH Once a readiness event is received, the corresponding operation must beÁü£ NK performed repeatedly until it returns [`WouldBlock`]. Unless this is done,Áüò NK there is no guarantee that another readiness event will be delivered, evenÁüÁ!52 if further data is received for the event source.Á÷!úüû!2/ [`WouldBlock`]: std::io::ErrorKind::WouldBlockÁ®"úä²" ### Readiness operationsÁÏ"úüÓ"JG The only readiness operations that are guaranteed to be present on allÁüž#NK supported platforms are [`readable`] and [`writable`]. All other readinessÁüí#HE operations may have false negatives and as such should be consideredÁü¶$JG **hints**. This means that if a socket is registered with [`readable`]Áü%MJ interest and either an error or close is received, a readiness event willÁüÏ%GD be generated for the socket, but it **may** only include `readable`Áü—&GD readiness. Also note that, given the potential for spurious events,Áüß&NK receiving a readiness event with `read_closed`, `write_closed`, or `error`Áü®'JG doesn't actually mean that a `read` on the socket will return a resultÁüù'! matching the readiness event.Á(úüŸ(PM In other words, portable programs that explicitly check for [`read_closed`],Áüð(EB [`write_closed`], or [`error`] readiness should be doing so as anÁü¶)MJ **optimization** and always be able to handle an error or close situationÁü„*.+ when performing the actual read operation.Á³*úü·*>; [`readable`]: ./event/struct.Event.html#method.is_readableÁüö*>; [`writable`]: ./event/struct.Event.html#method.is_writableÁüµ+85 [`error`]: ./event/struct.Event.html#method.is_errorÁüî+DA [`read_closed`]: ./event/struct.Event.html#method.is_read_closedÁü³,FC [`write_closed`]: ./event/struct.Event.html#method.is_write_closedÁú,úÜþ, ### Registering handlesÁš-úüž-HE Unless otherwise noted, it should be assumed that types implementingÁüç-MJ [`event::Source`] will never become ready unless they are registered withÁ\µ. `Poll`.ÁÁ.ú„Å.
For example:ÁÖ.ú,–/\/äÍäí/óÍœŠ0 # use std::net;Áüž0/™ÎüÎ0%" use mio::{Poll, Interest, Token};Áäô0ˆÏì‘1 use std::net::SocketAddr;Áä¯1 use std::time::Duration;Á¤Ì1 use std::thread;Áá1úüå152 let address: SocketAddr = "127.0.0.1:0".parse()?;Áü›241 let listener = net::TcpListener::bind(address)?;ÁüÐ2?< let mut sock = TcpStream::connect(listener.local_addr()?)?;Á3úü”3*' thread::sleep(Duration::from_secs(1));Á¿3úäÃ3 let poll = Poll::new()?;Áà3úüä3NK // The connect is not guaranteed to have started until it is registered atÁŒ³4 // this pointÁüÅ4\Y poll.registry().register(&mut sock, Token(0), Interest::READABLE | Interest::WRITABLE)?;Á„¢5
# Ok(())Á<³5¤Ù<»5̬Ã5ú¼Ç5 ### Dropping `Poll`Áß5úüã5NK When the `Poll` instance is dropped it may cancel in-flight operations forÁü²6OL the registered [event sources], meaning that no further events for them mayÁü‚7PM be received. It also means operations on the registered event sources may noÁüÓ7MJ longer work. It is up to the user to keep the `Poll` instance alive whileÁü¡8,) registered event sources are being used.ÁÎ8úüÒ8.+ [event sources]: ./event/trait.Source.htmlÁ9úü…9&# ### Accessing raw fd/socket/handleÁ¬9úü°9HE Mio makes it possible for many types to be converted into a raw fileÁüù9NK descriptor (fd, Unix), socket (Windows) or handle (Windows). This makes itÁüÈ:JG possible to support more operations on the type than Mio supports, forÁü“;LI example it makes [mio-aio] possible. However accessing t
 `£cÇÊ `àB¤GS
êÊC ™•C
D$š•× •l‚–èhFHJLNü«µü––;8 Register an [`event::Source`] with the `Poll` instance.ÁÖ–úüÞ–JG Once registered, the `Poll` instance will monitor the event source forÁü­—KH readiness state changes. When it notices a state change, it will returnÁüý—FC a readiness event for the handle the next time [`poll`] is called.ÁȘúüИ0- See [`Poll`] docs for a high level overview.Á…™ú| # ArgumentsÁ¡™úü©™JG `source: &mut S: event::Source`: This is the source of events that theÁüø™?< `Poll` instance should monitor for readiness state changes.Á¼šúüÄšJG `token: Token`: The caller picks a token to associate with the socket.Áü“›JG When [`poll`] returns an event for the handle, this token is included.Áüâ›DA This allows the caller to map the event to its source. The tokenÁü«œEB associated with the `event::Source` can be changed at any time byÁÜõœ calling [`reregister`].ÁúüEB See documentation on [`Token`] for an example showing how to pickÁ¬ç [`Token`] values.Ážúü‰žJG `interest: Interest`: Specifies which operations `Poll` should monitorÁüØžJG for readiness. `Poll` will only return readiness events for operationsÁü§Ÿ specified by this argument.ÁËŸúüÓŸKH If a socket is registered with readable interest and the socket becomesÁü£ 63 writable, no event will be returned from [`poll`].ÁÞ úüæ LI The readiness interest for an `event::Source` can be changed at any timeÁô·¡ by calling [`reregister`].ÁÚ¡ú\â¡Öµò¡úüú¡GD Callers must ensure that if a source being registered with a `Poll`ÁüÆ¢HE instance was previously registered with that `Poll` instance, then aÁü“£EB call to [`deregister`] has already occurred. Consecutive calls toÁüÝ£'$ `register` is unspecified behavior.Á‰¤úü‘¤KH Unless otherwise specified, the caller should assume that once an eventÁüá¤KH source is registered with a `Poll` instance, it is bound to that `Poll`Áü±¥IF instance for the lifetime of the event source. This remains true evenÁüÿ¥DA if the event source is deregistered from the poll instance usingÁœÈ¦ [`deregister`].Áà¦úüè¦0æÊü§*' [`poll`]: struct.Poll.html#method.pollÁü̧:7 [`reregister`]: struct.Registry.html#method.reregisterÁü‹¨:7 [`deregister`]: struct.Registry.html#method.deregisterÁüʨ  [`Token`]: struct.Token.htmlÁï¨út÷¨ëÌŠ©ú,Ω\È©äÍä­ªó͜Ϊ½òüæª/™Îüš«-ÒÎäÌ«ˆÏìí«£óü¬'$ use std::time::{Duration, Instant};Á»¬úüì Òè¬úüð¬5˜ôüª­4×ôüã­A> let mut socket = TcpStream::connect(listener.local_addr()?)?;Á©®úü±®&# // Register the socket with `poll`Áìܮ迤þ® &mut socket,ÁŒ—¯­Àü­¯2ÉÀä¯úüì¯1«Òü¢° let start = Instant::now();Áüư-* let timeout = Duration::from_millis(500);Áø°úT€±ŠÖü±&# let elapsed = start.elapsed();Áº±úü± if elapsed >= timeout {Áüæ±# // Connection timed outÁÔŽ² return Ok(());ÁL­²„Ù»²úüò*' let remaining = timeout - elapsed;Áüò²1. poll.poll(&mut events, Some(remaining))?;Á¨³úô°³ÙÖüÓ³*' if event.token() == Token(0) {Áü‚´?< // Something (probably) happened on the socket.ÁôÆ´ÇØlé´îØLû´„Ù,‰µ–Ù<“µ¤Ù<Ÿµ̬D²µëì ëèh ì˜ÁÝo€gôÁE¤GG ¾µEÎì˜Á »µœ˜ÁlŸ¶
F˜Á$¿
the poll.ÁºÑúüÂÑLÎîü“Ò5¥ïÍÒúüÕÒ?< A handle can be passed back to `register` after it has beenÁü™ÓHE deregistered; however, it must be passed back to the **same** `Poll`ÁüæÓ41 instance, otherwise the behavior is unspecified.ÁŸÔút§Ôë̺Ôú,þÔ\øÔäÍäÝÕóÍœþÕ½òü–Ö/™ÎüÊÖ-ÒÎäüÖˆÏì×£óä¿×Éóà×úüè× ÒØúü•Ø5˜ôüÏØ4×ôüˆÙAÓàÎÙúüÖÙ&¬áìÚ迤£ÚêጼڭÀìÒÚ‚ôôÚúüüÚ-* poll.registry().deregister(&mut socket)?;Á®Ûúü¶Û1«ÒìÛúüôÛGD // Set a timeout because this poll should never receive any events.ÁüÀÜ:7 poll.poll(&mut events, Some(Duration::from_secs(1)))?;ÁüÿÜ assert!(events.is_empty());Á„£Ý²ø<¸Ý¤Ù<ÄÝ̬T×Ýïð ïèh ð˜ÁôÁE¤KK åÝEÑé âÝãél£Þ
J˜Á$æÝíb%'üçà/ü¦ß1. Creates a new independently owned `Registry`.ÁÜßúüäßIF Event sources registered with this `Registry` will be registered withÁü²à0- the original `Registry` and `Poll` instance.ÁLîàñ ñèhÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
èhÅÂE øàE
L$ùàT¿áL<closure_kind>ÁM<closure_signature>ÁM<upvars>ÁMMLM­ièhü¶ç/úÊ”Ñæ¤Ðæ»Ý*|ææüÌæ*üÃæ5DÄçò òèh ò­iE ÍçE
N$ÎçäˆèèhPÀcPü«è:®èóôõ óèh ô c cˆ¢cµ
 `£cÇÊ `àB¤GS
õÊO ²èO
P$³è׹贸ìú$®é¡Åü¼éü»é! úè ŒóéúåŤŽêúŒÆœ¬êúøÅ¬Éêú®¤èêú«Æ”†ëú¼ÆŒ¢ëúŒ ¬½ëú  ”ÜëúæÆ¤øëúùƬ–ìüééÈüåéÍü¨éüŸé˜èhRŽ,RüÕì!,Øìö öèhÎNÎNÐN§&ä+ÑN_phantomÁä+§]òÞ^öQ ÞìQ
R$ßì̹ðú$¯í¡Åü½íü¼í! úè ŒôíúåŤîúŒÆœ­îúøÅ¬Êîú®¤éîú«Æ”‡ïú¼ÆŒ£ïúŒ ¬¾ïú  ”ÝïúæÆ¤ùïúùƬ—ðüêíÈüæíÍü©íü í˜èhT¬+TäÙðLÜð÷ ÷èhS æðS
T$çð « Í¾ $ìϣ*DØÏ«£*ÙÏ«£,×òÏÞ-óÏ·.ÒÏð#,™ ñσ¾òσÄóσ*,Ì6Ôσê'Dͳσ˜)lª7ÈσӘ)ÉÏƒÓ  ½¾ÔÏ'öpXëXäð'$ó'ÝoöpWW
X¹‘L÷ úùÆ¬É úÊ”à üÈ +üÄ 0ü» ; Òé UY[D<Y\®à7,½Y]¯à7¾Y]¯µã-¦Y^,fhY[HJ<(!T­ƒq`büÜB̾ Create a new `Waker`.Áãø øèhÝoÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ƒqÅÂ_ ñ_
`ó<`·ŠaÏŠaìŠaa`a¯jƒqü§$üÁ63 Wake up the [`Poll`] associated with this `Waker`.Áüúô„ [`Poll`]: struct.Poll.htmlÁ$®ù ùƒqôÁ_ ³_
b$´ ü(% Readiness event types and utilities.Á, d|ð#,†Ö¥¾§—9$¬Ú¨Üœ©LM,Qé Udfà7,½dg¯à7¾dg¯×#¤,dh,PRCED·qjklmnopqrsäíôÊ Returns the event's token.Á,ôú ú·qÝoi úi
jüÿ!ü¾:7 Returns true if the event contains readable readiness.Áýú\…ÖµúüB? Out-of-band (OOB) data also triggers readable events. But mostÁüäB? applications don't actually read OOB data, this could leave anÁü«=: application open to a Denial-of-Service (Dos) attack, seeÁüíŒ <https://github.com/sandstorm-io/sandstorm-website/blob/58f93346028c0576e8147627667328eaaf4be9fa/_posts/2015-04-08-osx-security-bug.md>.ÁüþLI However because Mio uses edge-triggers it will not result in an infiniteÁüÏ+( loop as described in the article above.Á\† û û·qi i
k$“ üš
!üÛ :7 Returns true if the event contains writable readiness.Á\¡
ü ü·qi ­
i
l
ôüö
74 Returns true if the event contains error readiness.Á² úüº KH Error events occur when the socket enters an error state. In this case,ÁüŠ IF the socket will also receive a readable or writable event. Reading orÁüØ 2/ writing to the socket will result in an error.Á
ú\—
Öµ§
úü¯
KH Method is available on all platforms, but not all platforms trigger theÁ„ÿ

error event.Áúüœ<9 The table below shows what flags are checked on what OS.ÁÝúüå'$ | [OS selector] | Flag(s) checked |Áü‘'$ |---------------|-----------------|Áü½'$ | [epoll] | `EPOLLERR` |ÁüéIF | [kqueue] | `EV_ERROR` and `EV_EOF` with `fflags` set to `0`. |Á·úü¿;8 [OS selector]: ../struct.Poll.html#implementation-notesÁüÿ?æŸüÃH¯ D—ý ý·qi  i
müº$üæ=: Returns true if the event contains read closed readiness.Á¨úÖµÀúüÈIF Read closed readiness can be expected after any of the following haveÁl
occurred:Áü¨?< * The local stream has shutdown the read half of its socketÁüìIF * The local stream has shutdown both the read half and the write halfÁœº of its socketÁüÒJG * The peer stream has shutdown the write half its socket; this sends aÁü¡=: `FIN` packet that has been received by the local streamÁãúüëHE Method is a best effort implementation. While some platforms may notÁü¸DA return readiness when read half is closed, it is guaranteed thatÁü# false-positives will not occur.Á©úü±<î©òúüú'Àªü¦'ñªüÒ'$ | [epoll] | `EPOLLHUP`, or |Áüþ2/ | | `EPOLLIN` and `EPOLLRDHUP` |Áüµ'$ | [kqueue] | `EV_EOF` |Ááúüé;²¬ü©?æŸüíH¯ þ þ·qi Ði
nü˜&%üœ>; Returns true if the event contains write closed readiness.ÁßúÖµ÷úüÿEB On [epoll] this is essentially a check for `EPOLLHUP` flag as theÁüÉJG local stream shutting down its write half does not trigger this event.Á˜úü DA On [kqueue] the local stream shutting down the write half of itsÁüé# socket will trigger this event.Á úü™ H–²üæ EB return readiness when write half is closed, it is guaranteed thatÁü°!#¶³Ø!úüà!<î©¡"úü©"'ÀªüÕ"'ñªü#'¥´ü­#+( | | only `EPOLLERR`, or |ÁüÝ#1. | | `EPOLLOUT` and `EPOLLERR` |Áü“$'’µ¿$úüÇ$;²¬ü‡%?æŸüË%H¯ |Ÿ&ÿ ÿ·qi ¯&i
o$°&ü«,!üü&:7 Returns true if the event contains priority readiness.Á»'ú\Ã'ÖµÓ'úüÛ'Kô¨œ«( priority event.ÁÃ(úüË(<)úü”)'ÀªüÀ)'ñªüì)'$ | [epoll] | `EPOLLPRI` |Áü˜*'$ | [kqueue] | *Not supported* |ÁÄ*úüÌ*;²¬üŒ+?æŸüÐ+H¯ \², € ·qi ¾,i
p$¿,äÜ2ü‡-52 Returns true if the event contains AIO readiness.ÁÁ-ú\É-ÖµÙ-úüá-LI Method is available on all platforms, but not all platforms support AIO.Á².úüº.<î©û.úüƒ/'Àªü¯/'ñªüÛ/'$ | [epoll] | *Not supported* |Áü‡0+( | [kqueue]<sup>1</sup> | `EVFILT_AIO` |Á·0úü¿0?< 1: Only supported on DragonFly BSD, FreeBSD, iOS and macOS.Áƒ1úü‹1;²¬üË1?æŸü2H¯ 4ã2   ·qi ê2i
q$ë2ä’5ü®352 Returns true if the event contains LIO readiness.Áè3ú\ð3Öµ€4úüˆ4KH Method is available on all platforms, but only FreeBSD supports LIO. OnÁüØ452 FreeBSD this method checks the `EVFILT_LIO` flag.Á4™5  ·qi  5i
r$¡5ü­6B”»6ƒ  ƒ ñÎ ƒ ·qi Ù6iâÖº»žÌ°;üë8JG When the [alternate] flag is enabled this will print platform specificÁü¶9OL details, for example the fields of the `kevent` structure on platforms thatÁü†:KH use `kqueue(2)`. Note however that the output of this implementation isÁüÒ:.+ **not** consider a part of the stable API.Á;úü…;*' [alternate]: fmt::Formatter::alternateÁ·quÀcuüÐ;8Ó; „ ·q  c cˆ¢cµ
 `£cÇÊ `àB¤GS
Êt ×;t
u$Ø;± Þ;dÇ@dŠxxvvwóyˆd úxß öËÝÀŠúxß öËÝÀwy ŠñΕÎŪydáΕÎvv
wŠÔ@tØ@dvváÎüö@$8õq{Àc{ü­A8°Aˆ Š  ˆ õq  c cˆ¢cµ
 `£cÇÊ `àB¤GS
Š Êz ´Az
{8$µA± »ATX4\c€Úð#,Ö|}¥é$U|~×3¤,|œ9T(D.Œ„ ü9%" A collection of readiness events.Á_úücKH `Events` is passed as an argument to [`Poll::poll`] and will be used toÁü¯MJ receive any new readiness events received since the last poll. Usually, aÁüýJG single `Events` instance is created at the same time as a [`Poll`] andÁüÈ*' reused on each call to [`Poll::poll`].Áóúü÷30 See [`Poll`] for more documentation on polling.Á«úü¯30 [`Poll::poll`]: ../struct.Poll.html#method.pollÁüã! [`Poll`]: ../struct.Poll.htmlÁút‰ë̘úäÍäƒóÍü /™ÎäÐ use mio::{Events, Poll};ÁäíÉóŠúüŽ1«ÒüÀ Òüç! # assert!(events.is_empty());Áúü-* // Register `event::Source`s with `poll`.Á»úü¿>; poll.poll(&mut events, Some(Duration::from_millis(100)))?;Áþúü‚  for event in events.iter() {Áü£96 println!("Got an event for {:?}", event.token());Á–Ù„ã²ø¤Ù̬4 ƒs¿ã%£Ç3”œ |³Á\‹ƒsƒˆü¢/üEB Return a new `Events` capable of holding up to `capacity` events.ÁçúëÌú̬¤– use mio::Events;Á¯úü·-* let events = Events::with_capacity(1024);Áüé(% assert_eq!(1024, events.capacity());Á<̬öpƒs
ƒòü–ü³>; Returns the number of `Event` values that `self` can hold.Áöú̬¤ŠÊÛ£úü«-ôÛüÝ(«Ü̬D ‹ ƒsöp ¦
ôÐüá85 Returns `true` if `self` contains no `Event` values.Ážúë̹ú̬¤ÍÊÛæúüî-ôÛü ¸…̬Œ  Œ ƒs à
ôùüš0- Returns an iterator over the `Event` values.ÁÏúëÌêú\’äÍäáóÍü‚/™Î䶆Öä×Éóøúü€1«Òü¶ ÒÛúüã$! // Register handles with `poll`.ÁŒúü”>é××úüß ½Øü„9çØ–Ù„Ì²ø¤Ù̬$€   ƒsÚÚ—9ÜÌ|ݳ9|O9âñ¶ù  
$†¼Å%üë:7 Clearing all `Event` values from container explicitly.ÁªúÖµÂúüÊIF Events are cleared before every `poll`, so it is not required to callÁ”˜  this manually.Á¯ úëÌÊ úäÍäÁ!óÍüâ!/™Îä–"†Öä·"ÉóØ"úüà"1«Òü–# Ò»#úüÃ#$ÿâì#úüô#>é×·$úÄ¿$ // Clear all events.ÁœÜ$ events.clear();Áüô$¸…„˜%²ø<­%¤Ù<¹%̬,Ì%Ž  Ž ƒs Ò%
$×%ü¯&0½&   ƒs  ³Á Á&
ˆ$Æ&üƒ'$ŠŠŠýr‹ŒÈLÉLÊLˆ'L®'$³' Š·qlÉ'DÎ'®rüè'$Lë'ýrýrÉL
Šd¦ô¬(Š®rúMûMÿM€N±(LÑ($Ö(ŽŽÉìüí(($ð(   ®rÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ®rúMŽ õ(Ž
Š$ú(üË*-LÎ* ‘ ®r•ÛŽ Ø*Ž
Š$Ù*¼Ì+,Ï+®röpŽ
 `£cÇÊ `àB¤GS
Ê ¶,
$·,± ½,Td4hý D º˜«D<®à7, ½š¯à7¾š¯µã2¦,uwacNP<-#„Ÿü7=: An event source that may be registered with [`Registry`].Áuúüy?< Types that implement `event::Source` can be registered withÁü¹IF `Registry`. Users of Mio **should not** use the `event::Source` traitÁüƒNK functions directly. Instead, the equivalent functions on `Registry` shouldÁ be used.Áßúüã&# See [`Registry`] for more details.ÁŠúüŽ)& [`Registry`]: ../struct.Registry.htmlÁ¸úü¼" # Implementing `event::Source`ÁßúüãOL Event sources are always backed by system handles, such as sockets or otherÁü³JG system handles. These `event::Source`s will be monitored by the systemÁüþLI selector. An implementation of `Source` will almost always delegate to aÁüËOL lower level handle. Examples of this are [`TcpStream`]s, or the *unix only*ÁŒ› [`SourceFd`].Á­úü±/, [`TcpStream`]: ../net/struct.TcpStream.htmlÁüá.+ [`SourceFd`]: ../unix/struct.SourceFd.htmlÁúü” # Dropping `event::Source`sÁ´úü¸OL All `event::Source`s, unless otherwise specified, need to be [deregistered]ÁüˆNK before being dropped for them to not leak resources. This goes against theÁü×OL normal drop behaviour of types in Rust which cleanup after themselves, e.g.Áü§ KH a `File` will close itself. However since deregistering needs access toÁüó 96 [`Registry`] this cannot be done while being dropped.Á­
úü±
=: [deregistered]: ../struct.Registry.html#method.deregisterÁï
ú
ëÌ úü† :7 Implementing `Source` on a struct containing a socket:ÁÁ ú,  äÍüØ )& use mio::{Interest, Registry, Token};ÁÜ‚
 use mio::event::Source;Áäž
ˆÏ»
ú„¿

use std::io;ÁÐ
úÌÔ
 # #[allow(dead_code)]ÁÌî
 pub struct MySource {ÁÔˆ socket: TcpStream,Á–Ù©úô­ impl Source for MySource {ÁüÌVS fn register(&mut self, registry: &Registry, token: Token, interests: Interest)Áì£ -> io::Result<()>ÁüË74 // Delegate the `register` call to `socket`Áüƒ<9 self.socket.register(registry, token, interests)Á„ÙÊúüÎXU fn reregister(&mut self, registry: &Registry, token: Token, interests: Interest)Á째ƒÞƒüÏ96 // Delegate the `reregister` call to `socket`Áü‰>; self.socket.reregister(registry, token, interests)Á„ÙÒúüÖIF fn deregister(&mut self, registry: &Registry) -> io::Result<()> {Áü 96 // Delegate the `deregister` call to `socket`ÁüÚ,) self.socket.deregister(registry)ÁL‡„Ù,‘–Ù<—̬œœÎìüŸ œ¹Š¹Š žŸžŸŸžüŒˆü¶74 Register `self` with the given `Registry` instance.ÁòúüúKH This function should not be called directly. Use [`Registry::register`]ÁüÊKH instead. Implementors should handle registration by delegating the callÁìš to another `Source` type.Á¼úüÄC@ [`Registry::register`]: ../struct.Registry.html#method.registerÁD • ÁŠ – èhÝo€gôÁœ ¡œ
ÁŠóÖÂüƒŠüš:7 Re-register `self` with the given `Registry` instance.ÁÙúüá41 This function should not be called directly. UseÁüš@= [`Registry::reregister`] instead. Implementors should handleÁüßKH re-registration by either delegating the call to another `Source` type.Á¯úü·GD [`Registry::reregister`]: ../struct.Registry.html#method.reregisterÁT†˜  — ÁŠ ˜ èhÝo€gôÁœ šœ
žÁŠóÖÂüó@ü“96 Deregister `self` from the given `Registry` instance.ÁÑúüÙ4äŽü’@= [`Registry::deregister`] instead. Implementors should handleÁü×C@ deregistration by delegating the call to another `Source` type.ÁŸúü§GD [`Registry::deregister`]: ../struct.Registry.html#method.deregisterÁTöš  ™ ÁŠ š èhôÁœ œ
ŸÁŠ$†ü·7¥¡¡Îìt ¼œtÌs¢£¤žŸ¢£¤79üõœ  › Ìs œ èhÝo€gôÁ  Š  
¢t$ ܯóå¯ÖÂî¯üÀ!‰TÃ! ž   Ìs ž èhÝo€gôÁ  ×! 
£t$Ü!±ó±ÖÂ&±ü#?T#Ÿ    Ÿ Ìs   èhôÁ  # 
¤t$¢#8²”yM>d•B>E>6>9>¤».>ló ÍÍ”Š
¾Í$¦
³Í¶Í¨Í«ÍdÆ
¡Íd˜„ÍdŠÌ Unix only extensions.Áú»£”·Ô°ü§%$’²£*iCØ·Ï«£*‚CÙ·Ï« Unix pipe.Áêúüö/, See the [`new`] function for documentation.Áæ Ê é´¼7DϹµ™74Ùµ„·79)+¤õKD„¡ô¸ # Mio's optional features.ÁÛúüã:7 This document describes the available features in Mio.Á¢úÄÑôË## `os-poll` (enabled)Á¼úüÄJG Mio by default provides only a shell implementation that `panic!`s theÁü“EB moment it is actually run. To run it requires OS support, this is
¸C›D›D€g›D›D›D£  £ €gÁÁ
›DÙDÙDÙD€gÙDÙD€gÅÙÅÙDÙD¤  ¤ €g€gÄŠÄ
ÅÙDTFTF€gÇïßÇTFTF¥ ¦  ¥ €g ¦ €gºŽÆÆ
ÇTF¹
TFHH€gÉ»ÉHH§ ¨  § €g ¨ €gÌŒÈ È
ÉH¹
Hü£j üï\ Return a new `Poll` handle.Á—]úü£]GD This function will make a syscall to the operating system to createÁüó]GD the system selector. If this syscall fails, `Poll::new` will returnÁœÃ^ with the error.Áß^úüë^UR close-on-exec flag is set on the file descriptors used by the selector to preventÁüÉ_FC leaking it to executed processes. However, on some systems such asÁü˜`KH old Linux systems that don't support `epoll_create1` syscall it is doneÁüì`FC non-atomically, so a separate thread executing in parallel to thisÁü»aGD function may accidentally leak the file descriptor if it executes aÁü‹b-* new process before this function returns.ÁÁbúüÍb-* See [struct] level docs for more details.Áƒcúôcå´¶cútÂcëÌÙcú<åc̬äõcóÍüšd/™ÎäÒd use mio::{Poll, Events};Áä÷dÉóœeúü¨e&# let mut poll = match Poll::new() {ÁÌ×e Ok(poll) => poll,ÁüùeHE Err(e) => panic!("failed to create Poll instance; err={:?}", e),Á4Êf };ÁÙfúüåf2/ // Create a structure to receive polled eventsÁü g1«ÒÚgúüæg<9 // Wait for events, but none will be received because noÁü«hGD // `event::Source`s have been registered with this `Poll` instance.Áüûh>; poll.poll(&mut events, Some(Duration::from_millis(500)))?;ÁüÂi¸…„êi²ø<ƒj¤Ù<“j̬»Ç ˜ˆ
Ø
ªjÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
­hÅÂ>>
ÊTëjÊ·ŠËÏŠËìŠËËÊË’Œ­h̨ »Ç ˜$ˆ
Ø$
  Â Ù  Ì Ø , Ú 8! & ß 8¼  ç ÷ , è 8
event_typeÁ & ó 8´õ $ ø , ú 8 & ÿ 8õ
$ $  ,    Æ  ,    § +   ˜ ¦ ,  8ê &   8û 
¨ , ª 8 & ¯ 8¼ '· , º 8flagÁ & ¿ 8¼ $ Ç  È , Ê  Ë Í $ Ì 
Î *Ú  Ý Ò 
8 , ò 8!  ÷ ƒ , ø 8Èî %  8$“ 8ט ' 8p, 8
£ , § 8!  ­ È 8 ¿ 8×  Å ç 
 Æ 8 $ Ë 8± Í & Î  Ð 8Ñ 8×Õ 'Ø 8ˆ  ã :8ä  æ (é 8×ì 'ï 8Í  ø º 8Ž 8 8 written_oneÁ\ ¢ 8  % © , ¿  À  , Ú  Û æ + Ü  Ý å , Þ 8ê 
ç +  ž 8« ˆ 84‰ ' 8 bad_bit_maskÁd  Û ì
8É
, Ì
8
 Ñ
ê
  Ò
8
 ×
7ˆ Ø
$ Ù
 Û
, Ü
8
'â
, å
8ºð
 ì
Ò
8Ž 8†ô\  ž Á  8·3  É  Ê å 8± Ë $ Ì 7û $ Ò 8Ô  Ý  Þ ä , ß 8ºð - æ % ç 8†ô\ 8 $ % Ÿ 8  È ´
8·3  ó  ô
8± õ $ ö 7|{}Á $ ý 8ÔLÿ  ˆ

, Š
8ºð$
-
%
ƒ 8 œ 8†ô\  © ì 8·3  È  É Ö 8± Ê $ Ë 7(empty)Á 8  ó ¨ 8«       % Ó  »Ç ˜%ˆ
Ø%
 ž¬ßò£*D”Ø«£*Ù«ð#žsñƒ¾™sòƒÄ”sóƒ*sÔƒê'Šs³ƒ˜)…sȃӘ)œsɃӤž ³ ¸ ¹ ß, º8 »& ½8¼,¿ Å Ý, Ç È Ó, É8argÁÊ& Í8$ Ô
Õ, × Ø Ú$ Ù
Û*á ä µ å ´+ ï ð 8« ö 8
unused_unsafeÁ88resÁ 8"4™   ¸8'¦, ¨8 © « , ¬ ­ ´, ®8ýý¯$ ²
µ% ¹8Ã8¼ÿÆ Ê7ˆ Ì Î 8Ü ß ÿ8Àà'ã8µãå'ç8ÏÁ'î8
last_os_errorÁ ý þ8$‹  ®8«ž   ¤8¼ÿ¡% T‹ »Ç ˜&ˆ
Ø&
,DÆ Íðñòó³Áµã ¦ÐÑÛ
$,ÐÓà <%«+ÐÔT.ÎNÐÕá L:­+ÐÖÝ<Eö+Ð×ÿ ,Nª+ÐØÇÀ­ÖÐÙEPOLLETÁ<Ä ¨ÐÛEPOLLINÁ<Í šÐÜEPOLLOUTÁDÖ œÐÝEPOLLPRIÁDà ÐÞ
EPOLLRDHUPÁTê ¤Ðßý D„ºÐá«à7,޽Ðâ¯à7¾Ðâ¯*QxÔµ µÐ²˜)ExÈÓ˜)XxÉÓ<Ô\ÆÉ¸»ª­œŸŽƒœ£u_bHK03þñóÜÞl˜,­iäåçê·¹ü¬$³Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
­iÅÂãã
äü/L”©  © ­iéˆã žã
åå·ŠæÏŠæìŠææåæíl­iü‘ V4˜ ª «  ª ­i « ³ÁÂÄôÁã Ÿ ã
ç$  ¥üÄ$™
ç·ŠèÏŠèìŠèèçè‡ÅTç·ŠéÏŠéìŠééçé ³ÁüÓV¬  ¬ ­iÝo€gôÁã ãã
ê§&êóÖÂïê·ŠëÏŠëìŠëëêë´,­iíŽ,íüº!­  ­ ­iÎNÎNÐN§&ä+ÑNÃä+§]òÞ^­ ì Ãì
íÌÿ,­iï¬+ï䟮  ® ­iî ¬î
ïüã1”æÐ€g
ðÖÂñÎ"~³Á,~÷øùúûüýþÿ×ÿ¤,óôð#~ñóõσà7,¯ ½óö¯à7¾óö¯ Ô~d¨ @ü» $¯  ¯ ñÎÝo Ï 
÷Ä1gü!)\!°  ° ñÎ ©!
øÄghüÄ")\Ë"±  ± ñÎ Þ"
ùÄuiü·#&D¾#²  ² ñÎ Î#
úÄmjü§$,t®$³  ³ ñÎ Ä$
ûÄ%lü˜'-|Ÿ'´  ´ ñÎ ¶'
üÄ nüõ*)\ü*µ  µ ñÎ +
ýÄQoüè+ 4ï+ ¶ ñÎ ù+
þÖoüÚ, 4á,·  · ñÎ ë,
ÿ,pü°-Nl·-¸ ¹ º  ¸  c cˆ¢cµ
 `£cÇÊ `àB¤GS