Files
boc/aamos-command-center/target/release/deps/libtower_http-11e7deb9fa645f6a.rlib
T

2468 lines
565 KiB
Plaintext
Raw Normal View History

!<arch>
/ 0 0 0 0 8586 `
`ÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀÚÀ˜¨˜¨˜¨˜¨˜¨˜¨˜¨˜¨_ZN102_$LT$tower_http..classify..grpc_errors_as_failures..GrpcFailureClass$u20$as$u20$core..fmt..Display$GT$3fmt17hd7f321eccf97f7dbE_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h1dfa2cb273e73883E_ZN103_$LT$tower_http..classify..grpc_errors_as_failures.._..InternalBitFlags$u20$as$u20$core..fmt..Debug$GT$3fmt17h41047e3ad64c6b74E_ZN103_$LT$tower_http..classify..grpc_errors_as_failures.._..InternalBitFlags$u20$as$u20$core..fmt..Octal$GT$3fmt17h291f4b9176f48bcbE_ZN104_$LT$tower_http..classify..grpc_errors_as_failures.._..InternalBitFlags$u20$as$u20$core..fmt..Binary$GT$3fmt17h28709d91b4b9007aE_ZN105_$LT$tower_http..classify..grpc_errors_as_failures.._..InternalBitFlags$u20$as$u20$core..fmt..Display$GT$3fmt17h8f758411447b29e9E_ZN106_$LT$tower_http..classify..grpc_errors_as_failures.._..InternalBitFlags$u20$as$u20$core..fmt..LowerHex$GT$3fmt17h6c082a0ba43dd6a2E_ZN106_$LT$tower_http..classify..grpc_errors_as_failures.._..InternalBitFlags$u20$as$u20$core..fmt..UpperHex$GT$3fmt17hed74f61b1ed3140fE_ZN10tower_http15follow_redirect6policy9eq_origin17h63dd0de1a8f4029aE_ZN10tower_http8classify23grpc_errors_as_failures1_109_$LT$impl$u20$core..fmt..Octal$u20$for$u20$tower_http..classify..grpc_errors_as_failures..GrpcCodeBitmask$GT$3fmt17h04e994f992cdca37E_ZN10tower_http8classify23grpc_errors_as_failures1_110_$LT$impl$u20$core..fmt..Binary$u20$for$u20$tower_http..classify..grpc_errors_as_failures..GrpcCodeBitmask$GT$3fmt17h0dd15d379f9c88c6E_ZN10tower_http8classify23grpc_errors_as_failures1_112_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$tower_http..classify..grpc_errors_as_failures..GrpcCodeBitmask$GT$3fmt17h0c2b214a7f40ef59E_ZN10tower_http8classify23grpc_errors_as_failures1_112_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$tower_http..classify..grpc_errors_as_failures..GrpcCodeBitmask$GT$3fmt17hb2462176f0efb6cbE_ZN10tower_http8classify23grpc_errors_as_failures20GrpcErrorsAsFailures12with_success17h5e5b72c6c13f3d1dE_ZN10tower_http8classify23grpc_errors_as_failures22classify_grpc_metadata17h5962694c88c73a8aE_ZN10tower_http8classify24status_in_range_is_error23StatusInRangeAsFailures32new_for_client_and_server_errors17hed4acfac101a5d4bE_ZN10tower_http8classify24status_in_range_is_error23StatusInRangeAsFailures3new17hf852ce2c0d588092E_ZN112_$LT$tower_http..classify..status_in_range_is_error..StatusInRangeFailureClass$u20$as$u20$core..fmt..Display$GT$3fmt17hce6fca9b619d9307E_ZN113_$LT$tower_http..classify..grpc_errors_as_failures.._..InternalBitFlags$u20$as$u20$core..str..traits..FromStr$GT$8from_str17hbdfd41e642fd8f4eE_ZN124_$LT$tower_http..classify..grpc_errors_as_failures..GrpcEosErrorsAsFailures$u20$as$u20$tower_http..classify..ClassifyEos$GT$12classify_eos17h5407d9cbfd0b24afE_ZN141_$LT$tower_http..classify..grpc_errors_as_failures..GrpcCode$u20$as$u20$core..convert..From$LT$core..num..nonzero..NonZero$LT$i32$GT$$GT$$GT$4from17h89a66844b75eb42eE_ZN4core3fmt5Write9write_fmt17ha9f29b0e7cb9112dE_ZN4core3str21_$LT$impl$u20$str$GT$12trim_matches17h31405d6d463caa10E_ZN8bitflags6traits5Flags10intersects17he52798dfe9eddacaE_ZN8bitflags6traits5Flags10iter_names17hbdc14830aae1ad90E_ZN8bitflags6traits5Flags5empty17hde4ae44f65d3a52aE_ZN8bitflags6traits5Flags6insert17h0e2164bc3b731221E_ZN8bitflags6traits5Flags6remove17h050e4910cdfae7d5E_ZN8bitflags6traits5Flags8contains17h391a0425d7d5c7f6E_ZN8bitflags6traits5Flags8is_empty17h236d60f102b3ef12E_ZN8bitflags6traits5Flags9from_name17ha5788b0594376884Eanon.dc9a58cba2e94cdf4a4d11605e3a3918.33.llvm.2366930667568547866anon.dc9a58cba2e94cdf4a4d11605e3a3918.16.llvm.2366930667568547866anon.dc9a58cba2e94cdf4a4d11605e3a3918.17.llvm.2366930667568547866anon.dc9a58cba2e94cdf4a4d11605e3a3918.18.
tower_http-11e7deb9fa645f6a.tower_http.7cceaf390eaba919-cgu.0.rcgu.o/
tower_http-11e7deb9fa645f6a.tower_http.7cceaf390eaba919-cgu.1.rcgu.o/
tower_http-11e7deb9fa645f6a.tower_http.7cceaf390eaba919-cgu.2.rcgu.o/
lib.rmeta/ 0 0 0 644 505768 `
ELF·@@GNUÀ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ÁhttpÁ,ÊbD´ßú^£ò´VÁûÌ-188e6a2896370f81ÁbytesÁ1ž;›¢¥³3t´÷¬-9ab8679fb35a705dÁitoaÁû”­eºùîÉ/Þ ÷ŽÚ<¯-8b71445f6e5565f1Á futures_utilÁ1¡BN[Mä’qŒ0¢è-3af50f1ccacf4a4cÁ futures_coreÁÔ #0€ŒlÏ/œ%áàæ!-54e00c79609f6de3Á futures_taskÁ+ÓÅfÐ4Pú{-¸*1¨-dcd8a3e2825c89abÁ futures_sinkÁݬwÞÚ7Žª _°à\-005b1f0a7b5abe4aÁpin_project_liteÁc:ž“èqPÔ² låî-fa08336265b0d278ÁslabÁ˜ìòͺܓ$® %ãÕ6-940e9d610b73c48bÁ
futures_ioÁµ] óŽe_a€FµwBM-52cc55b2510d5c5fÁì46¯¦ŒïõÅ’Z/¯-a454f505f30bc1f2Á http_bodyÁV)ïF´áÇ–ÒSAù³Ú†-9c184e2d77f3774aÁtowerÁw,tê÷{>ðÏæ2{ó-647c17fe0f2e663cÁtokioÁ~í˜ÑFN­ˆ‘Û&ÕǬ‚F-2e8a35e14ae82399Á parking_lotÁ‘{%#NÕÆÇî×Âó³®-d304a3d2e3fa0badÁlock_apiÁ6JÂÉ–Coó;³u‰‰×}³-a58f13f6ba8e2585Á
scopeguardÁ±hú`Ã+ú=*ž)$ý-14a1bf74f002cc8bÁparking_lot_coreÁ+G÷-)¢3ñ6w ÷-96dda93fe1f45ff2ÁsmallvecÁ¥uÓöù¤_êÛc6ÃèÏ-57e80a5b3ccd3003Á®Ÿ=ê @Êq{0¡¡£ª-c28393f1568b0153Á`ãŒN€ZÛ:õ\-7ce82f3507212cabÁmioÁjUa?{`å3c@½åk«üj-e2adf0334040c489Á tokio_macrosÁÅm6‡Ä”蚬îAôGôâ-d13c5e580899166cÁsocket2ÁŒí”l.,.O¦Ýžw ê¸_-477bf62e8b01439eÁsignal_hook_registryÁóÓêܤÞß\ÏÍZ¤êk1„-0df3f4b575f2ad33ÁerrnoÁAX'2k$~t—üt]-06a2f72be8b8e935Á
tower_serviceÁ_ i²yÆúÕ8'ø6K©-426a99b575f4adedÁ tower_layerÁ?ܰ®¢‚VyJT;Öiæð`-037597086710a3adÁ sync_wrapperÁ€"8Êr'õ´]W-270be0f0464016d7ÁurlÁÈÞ[ã<lì·»’\.ÑO-34f06a7b5be4ba48Áform_urlencodedÁ™Ù¦)ž-´Ï«Bó¹«i8-b21a6453ec4c6027Ápercent_encodingÁÙSõU<Zj€ËfYê±-608213e915e95613ÁidnaÁ0òd7ÞVϤÉVQ^QzT-0b27c80ee15b2052Á idna_adapterÁå.2,
z+&润§;¥-3894fd78d4e7d69cÁicu_normalizerÁÓ¯J}Û‹q3n,BY:6*-1ff97b6300c65a3bÁ icu_providerÁfý ecVoÒ–×%aƲ-26ba06420635a5f4ÁzerotrieÁÖjxÄ’Rðo„u˜¤îm-8213996ed0004d51Á
displaydocÁ¯Ü-{6È€Ûù˜ˆÈ
|-e6cd9a7bbe869315ÁzerofromÁÚwóÌ77¬R„Jzðè-b5e12a50bee7a139Ázerofrom_deriveÁ#/\(Ûåè
•Ø‹
Ì÷-b0a52e57dcf964fcÁyokeÁC6€2N‹¢ ˜ox4å-693d60a54f4f9cdeÁstable_deref_traitÁÃ2¯c!#wõáÖZÛd¿-1053a3f8bccf45f4Á yoke_deriveÁÓ‚. I©]F@šÔ¶€~-2347d6299a9342ddÁzerovecÁj†o!AÒwþý"»c Z[-a26db0a583c313b8Ázerovec_deriveÁšÚ¾#Àµlþk¸Úéìí¨-e1300b4489bd91f1Á writeableÁŠÚZVd^GmÕĉé2ÏÌ`-eeb981e21830c22aÁicu_locale_coreÁóÍ>­‹ñ§  «©,Û
-f42a734f84d1ee3dÁlitemapÁ^¿V4êg"ˬçˆÅ2Qi&-4f065ea63c011d48ÁtinystrÁ¸˜›s-ªsV¯™j-c7a86e007016634eÁicu_collectionsÁ’!]úâ?ëòPÞQà™N-b882f5a5cafdd8d3Á
potential_utfÁP°g®œH rUæ™-b10cb335d8d170deÁ utf8_iterÁK——Ø]áR.ý#k-ed71523c288ce9d1Áicu_normalizer_dataÁð¯O´¥lȃb­_ls^u-2cc53e133ce07707Áicu_propertiesÁlÌ;Øßjyq.ê~žCs(-dc4cdd823550a516Áicu_properties_dataÁ“w‘ŠMXöù\ãmq˜õs-1181beec2790515cÁbitflagsÁ¨7AvÖb,* èh©¯³Ö-765f98ff397854cfÁ test_helpersÁd±6$¦6authÁ$á6»„Æ6
set_headerÁT7»
set-headerÁ´î6propagate_headerÁ„É7»propagate-headerÁä¢7 compressionÁ\ü8»compression-brÁÔë7»compression-deflateÁü‹8»compression-gzipÁä°8»compression-zstdÁäÒ8üå7Œ
add_extensionÁl´9»
add-extensionÁÌ9sensitive_headersÁŒò9»sensitive-headersÁìÊ9
decompressionÁl®;»decompression-brÁä•:»decompression-deflateÁü·:!»decompression-gzipÁôÞ:»decompression-zstdÁô‚;ü:”content_encodingÁ„µ> »ÔÍ;»±üí;»Ñä’<»íä´<»!äÖ<»¬!üø<!»Î!ôŸ=»ì!ôÃ=»fsÁtç=üÇ;çcompression_utilsÁŒõ@»Ô×>»±ü÷>»Ñäœ?»íä¾?»!äà?»¬!ü‚@!»Î!ô©@»ì!ôÍ@üÑ>CompressionLevelÁ„ÍC»Ô˜A»±ü¸A»ÑäÝA»íäÿA»!ä¡B»¬!üÃB!»Î!ôêB»ì!ôŽCü’Amap_response_bodyÁŒŽD»map-response-bodyÁìæCmap_request_bodyÁ„ÏD»map-request-bodyÁä¨DtraceÁ,„E»—&ŒèD testsÁ,š$0²&,â$×K²&,«$ X²&,$~²&,ù²&,ŸA$”A²&,üb$ñblimitÁ,ìE»¼'ŒÐEmetricsÁ<˜F»×'œúEcorsÁ$ÃF»ô'„¨F
request_idÁTñF»
request-idÁ´ÐF catch_panicÁ\¦G» catch-panicÁ¼„G
set_statusÁTÛG»
set-statusÁ´ºGtimeoutÁ<ŒH»Ž)œîGnormalize_pathÁtÁH»normalize-pathÁÔœH
on_early_dropÁlüH»
on-early-dropÁÌØHÀ²&,âY$×Y²&,™  usable_for_retriesÁ”Øe
$Íe
ëredirectÁDÿ »Ü*¤à ëRedirectÁDÎ »Ü*¤ ëŽ#ø »Ž#tß ëServeDirÁD¶ »Ž#tƒ ë ServeFileÁLÀ »Ž# "builderÁ<ÎI»utilÁ„·I service_extÁ\ôI»€,„ÝIServiceBuilderExtÁŒÂJ»€,„ˆJ
ServiceExtÁTâJ»€, "validate_requestÁ„K»validate-requestÁäöJbodyÁ$ M»Ï(¼¿K»!äÜK»¬!üþK!»Î!ô¥L»ì!ôÉL»Ž#tíL»¼'ŒMü¹KÜÀmacrosÁdefine_inner_service_accessorsÁ opaque_bodyÁ
opaque_futureÁfollow_redirectÁpolicyÁµ      æ BdÁ Ô/Ü*
on_requestÁ
clone_bodyÁ 
clone_body_fnÁ$$×''''Ü*'œ0±0--filter_credentialsÁ0000000000 0 BLOCKLISTÁ0<æ <block_cross_originÁ< block_anyÁ<
block_noneÁ<remove_blocklistedÁ<
remove_allÁ< remove_noneÁ0D>0FFFÜ*F0limitedÁKKKKKPæ KR>KTTTÜ*
XXXXXX^^^æ aÔ/aXdÔ/ddddÜ*d0dœ0k  redirect_fnÁmmmmmmss×mvvvvÜ*mê4{{ same_originÁ~~~~~~~æ ~×~Ü* 
  
PolicyÁŸŸŸÜ*Ÿ‹0Ÿœ0¥¥¥¡¥Ü*¥‹0¥œ0¬¬¬¡¬Ü*¬‹0¬œ0 PolicyExtÁ³µ´¡´´³
¸¡¸¸¼¥¼µ¾¡¾¾¼
¡ÂÂStandardÁAttemptÁÇ'aÁÇstatusÁÇmethodÁÇlocationÁÇprevious_methodÁÇpreviousÁÎÔ9ÎÞ9Îì9Îú9Ί:Ρ:Õ is_followÁÕis_stopÁØØØÜ*ÜÜÜÜ* eq_originÁ 
  
 !"#æ ¡ with_policyÁФСŠServiceÁŠlayerÁ¤æ ¯=¤¡ù<layer_with_policyÁ˜ReqBodyÁ˜ResBodyÁ˜¤˜¡˜ResponseÁ˜ErrorÁ˜FutureÁ˜
poll_readyÁ˜Ñ¢¤¢>¢ >¢¡¢°¢Š ¨ ¨ ««takeÁ«try_clone_fromÁ®¡®œ0±¡±± resolve_uriÁclassifyÁgrpc_errors_as_failuresÁÀÀÀÀÀÀÀÀÀÀ À
À ÀÍ into_bitmaskÁÀÏ÷ÀÑ÷ÀÓ try_from_u32ÁÀÕ>À׿ × with_successÁ×make_classifierÁÀÛ FailureClassÁÛ ClassifyEosÁÛclassify_responseÁÞÛclassify_errorÁàÀâÝBâ classify_eosÁâ¥CåÀç×Àclassify_grpc_metadataÁéor_elseÁé map_failure_classÁìììììììììõõõæ ìùùù×ìýýýNewClassÁýÝBýñBý„Cƒý¥CìÃEÝBÐC¥Cstatus_in_range_is_errorÁæ  new_for_client_and_server_errorsÁinto_make_classifierÁÝBñB„C ¥C¢¤× 
  
MakeClassifierÁ°
ClassifierÁ°ÝB°ñB°ÁB´æ ¹¹ÝB¹ñB¹èH¹ÁB¾ClassifyResponseÁÀÝBÀñBÀ„CÃÀ¥CÅÀ³DÇÇÃEñBÊÝBÊÐCÊ¥CÍʳDÏÏÃENeverClassifyEosÁÒ¥Ò
_output_tyÁÒ_neverÁÖ¥ÖÝBÖÐCÖ¥CÚÜ¥Ü×ßæ ßÁBâÝBâñBâ„Cåâ¥Cçé×servicesÁBoxErrorÁ AndÁííí¬í­ òòòƒ öö ùùù× ýýý> CloneBodyFnÁ±ƒ0FilterCredentialsÁƒ2œ2½2Ö2blockedÁ0ƒ0×KLimitedÁ remainingÁKKƒKK×XOrÁ¬­X   ƒX¤¤X§§§×X«««>m
RedirectFnÁ¯¯±m²²ƒmµ~
SameOriginÁ·_privÁ~~ºƒ~~½>ActionÁ¿FollowÁÀ
¿StopÁÂ
Ń 
È×FollowRedirectLayerÁʡʓ/̓͡ С
Ò¡Ò× Õ¡Õ>FollowRedirectÁؤءØinnerÁØ“/ ݤݡ݃
á¤á¡ä¤ä¡ä×get_refÁget_mutÁ
into_innerÁResponseFutureÁë¤ëë¡ëfutureÁëserviceÁë“/ëì9ëuriÁëÄëheadersÁëª-÷¤÷÷¡÷×üý¤ýý¡ü__assert_not_repr_packedÁ¤¡ü
ProjectionÁ'__pinÁ¤¡ŸU­U“/ì9ÌUÄßUª-ü
ProjectionRefÁ‡W¤¡ŸU­U“/ì9ÌUÄßUª-ýprojectÁŸ‡Wý project_refÁ¡‡Wü__OriginÁ£‡W£¤££¡£__dummy_lifetimeÁ£ŸU£­U£“/£ì9£ÌU£Ä£ßU£ª-ü±‡W±¤±±¡üMustNotImplDropÁü·¥ü¹¤¹¹¡
RequestUriÁ½
½ˆÀƒBodyReprÁÂÂÛÄ
ĈÂEmptyÁÇ
婃
ËË×ÀGrpcCodeÁΫÏ
Î CancelledÁÑ
ÎUnknownÁÓ
ÎInvalidArgumentÁÕ
ÎDeadlineExceededÁ×
ÎNotFoundÁÙ
Î
AlreadyExistsÁÛ
ÎPermissionDeniedÁÝ
ÎResourceExhaustedÁß
ÎFailedPreconditionÁá
ÎAbortedÁã
Î
OutOfRangeÁå
Î
UnimplementedÁç
ÎInternalÁé
Î UnavailableÁë
ÎDataLossÁí
ÎUnauthenticatedÁï
À À
òƒÀ À õ×ÀÀGrpcCodeBitmaskÁø
øˆÀ
û×ÀÀþƒÀ÷InternalBitFlagsÁ
ˆ÷÷ƒ÷÷÷÷Ö÷ï
÷÷§ù÷ ÷
FLAGSÁ__bitflags_flag_namesÁBitsÁ´from_bits_retainÁ all_namedÁœ ALL_NAMEDÁOKÁ CANCELLEDÁUNKNOWNÁINVALID_ARGUMENTÁDEADLINE_EXCEEDEDÁ NOT_FOUNDÁALREADY_EXISTSÁPERMISSION_DENIEDÁRESOURCE_EXHAUSTEDÁFAILED_PRECONDITIONÁABORTEDÁ OUT_OF_RANGEÁ
UNIMPLEMENTEDÁINTERNALÁ UNAVAILABLEÁ DATA_LOSSÁUNAUTHENTICATEDÁ»bÅbÖbåbýb–c§c½cÖcðc‹dšd®dÃdÓdæd÷d÷ À PrimitiveÁÀÙ^÷ Ã>÷
Å×÷Ç×÷ÉÉþË ÷ÍÉ÷Ï÷÷Ñbits_mutÁ÷ÓemptyÁÓ£Ó´Ó from_bitsÁÓfrom_bits_truncateÁÓbÓ from_nameÁÚËaÛÓis_emptyÁÓis_allÁÓ
intersectsÁÓcontainsÁÓinsertÁÓremoveÁÓtoggleÁÓsetÁÓ intersectionÁÓCÓ
differenceÁÓsymmetric_differenceÁÓ
complementÁÛ»bÛÅbÛÖbÛåbÛýbÛ–cÛ§cÛ½cÛÖcÛðcÛ‹dÛšdÛ®dÛÃdÛÓdÛædÛ÷d÷û×÷ý×÷ÿ×÷×÷ƒ°ƒ±÷²÷ˆ°ˆµ÷÷°¯÷°÷°Ú÷Û÷ °
÷!šextendÁ¥÷"ùž¥ž÷#¡ù¡
iter_namesÁ÷$¤¤IntoIterÁ¤ê÷%¨§g¨£¨´¨Äg¨Õg¨b¨÷g¨•h¨¥h¨³h¨Åh¨Õh¨ãh¨ñh¨ÿh¨Ši¨C¨¥i¨·i¨Ói÷&½×÷'¿×÷(Á×÷)Ã×÷*Űű÷+Ȳ÷,ʰʵ÷-Í÷.ϰϯ÷/Ò°÷0Ô°ÔÚ÷1×Û÷2Ù°Ù
÷3ÜÃlÝ¥÷4ßùà¥à÷5ãùã€m÷6ææŸmæêÀGrpcErrorsAsFailuresÁê
success_codesÁÀì×ÀîƒÀGrpcEosErrorsAsFailuresÁð©qÀò×ÀôƒÀGrpcFailureClassÁöCodeÁ÷
÷ˆöÏ>ú
úˆÀý×ÀParsedGrpcStatusÁÿSuccessÁ
ÿ
NonSuccessÁ
ˆÿGrpcStatusHeaderMissingÁ
ÿHeaderNotStringÁ
ÿ HeaderNotIntÁ
À×ÀÀŽÀÖìMapFailureClassÁáS±ìƒìStatusInRangeAsFailuresÁžrangeÁ ×¢ƒStatusInRangeFailureClassÁ¤
StatusCodeÁ¥
¥ˆ¤Ï>¨
¨ˆ«×SharedClassifierÁ­­
classifierÁ°°×³³ƒClassifiedResponseÁÝBñBȹ
¹ˆ RequiresEosÁ¼
¼ˆ ¿ÝB¿ñB¿×ServerErrorsAsFailuresÁÃÎQ
Ń Ç× É>ServerErrorsFailureClassÁËŒvÌ
̈ËÏ>Ï
ψ
Ò× LatencyUnitÁÔSecondsÁÕ
ÔMillisÁ×
ÔMicrosÁÙ
ÔNanosÁÛ
߃á×






&
&
&
'
+
+
+
,
,
-
I
I
I
J
J
W
W
W
i
i
i
j
j
k
k
u
u
u
v
v
z
z
z
{
{
ˆ
ˆ
ˆ
Œ
Œ
Œ
¢
¢
¢
£
£
¤
¤
¥
©
©
©
ª
ª
«
«
°
°
°
±
±
²
²
Ð
Ñ
Ò
Ó
Ô
Ö
×
Û
Û
Û
ß
ß
ß
à
à
Ž
 
 
 
¡
¨
¨
¨
¨
­
®
®
®
±
±
µ
µ
Þ
à
ä
å
è
è
è
é
ü
ü
ü
ƒ

Œ

 
¢
¥
¥
¥
´
´
¾
¾
Ã
Å
Ì
Í
Ù
Ú
Þ
Þ
Þ
å
ç
ê
ê
ê
õ
ü
ü
ü






š
š
š
£
ª
ª
ª
´
»
Æ
É
É
É
Ï
Ô
Ô
Ô
à
ç
ç
ç
è
é
û
û
û

Á
Í
Í
Í
ó
ö
ö
ö
ü
ü
ü
ÿ

Š
Š
Œ
Ž
Ž




š
Æ
Æ
Æ
È
È
È
Ë
Î
Ò
Ö
Ú
Ý
Þ
ß
à
á
â
ã
ä
ü
ü
ü
þ
þ
þ







Œ



¢
£
«
¯
°
±
²
³
´
µ

·
¾
¾
¾
À
À
À
Â
Â
Â
Ä
Ä
Ä
É
Î
Ó
Ø
Ý
ä
å
í
í
í
ï
ó
ó
ó
õ
þ
þ
þ
Œ
Œ
Œ



š
¡
¡
¡
£
¬
¬
¬
²
²
²
µ
Â
Â
Â
Æ
È
È
È
Ó
Ó
Ó
à
â
â
â
Ÿ³°ÀÊØííúLð¬ ñ­ Rm$ßáú\Š ¶‡¿c¶‡³¶‡ŸííúLð¬ ñ­ Rm$ßáú\Ô/Ø‹Nƒ±ÅÛDúw²}7Š ùˆ¿cùˆŸùˆô‡ØÍNŠƒ20œ20Œ½20Ö20ކO0ÍôùÃ'>ï¿cÞ‰³Þ‰ŸÞ‰ìˆÛ¬O»OKPy@ wØéŠŠ 銿céŠ³éŠŸéŠØŠìˆØëOž¬XŸ­XPbFßêwfLî‡ô‡Š Ü‹¿cÜ‹³Ü‹ŸëOž¬XŸ­XPbFßêwfLÚˆàˆæˆìˆØ¯¯ûP±±mA• Ézà—\¦‰Š ¿cŸ¯¯ûP±±mA• Ézà—\ØŠìˆÛ··¼Q¸ÎQ~œ´A…ÛÈØ£ŽŠ £Ž³£Ž¿c£ŽŸ£ŽØŠìˆŸ 8¡ô‡щŸžBoxÁ¡ˆˆ¢ˆl }.xÏ¡çEçEèEGlobalÁ ¿±‡§í#؊숳¥Û¿ÀÁ‡RÂÚRû^–¹¿š4ØÀŠ À¿cÀŸÀ؊숟ֿٿڿ«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ÀìˆØŠìˆØÊÊÊRÌ“/_ﶸ)hž¡Š –’¿c–’³–’ÊÊÊRÌ“/_ﶸ)hž¡¤ØØØ»SÛáSÜ“/úZ&"™Ì—[¤“ž“Š ±“¿c±“.ØØ»SÛáSÜ“/úZ&"™Ì—[¤ôôRequestÁöheadÁ¦÷ª-¦ §ŠkÂD‘>¿cëëñTïŸUð­Uñ“/òì9óÌUôÄõßUöª-QbaÉÚ„2¤“ô‡ò“íëëñTïŸUð­Uñ“/òì9óÌUôÄõßUöª-QbaÉÚ„2¤³¡•‚ØëëñTïŸUð­Uñ“/òì9óÌUôÄõßUöª-QbaÉÚ„2¤“‘>ؽ½¾[¿ˆ ¿uBçñ™/'¿cÂÄÅÛÆˆÇÈØ[ÉÊ©û¸½T1TØŠÛÎÏЫÑÒ¨\ÓÔ¾\ÕÖÒ\רî\ÙÚ‹]ÛÜ ]ÝÞº]ßà×]áâõ] ã
忍^ çè¿^ éêÙ^
ëìî^íî†_ïð›_lo§-9àî:Øø™Š ø™¿cø™éø™éø™ô ô õ ¨÷ ˆÐ  mjçítoé¿cøøùâ_úˆÀ Dµ³W;ÄúÛØŠ Ûª`ƒˆÀ ôx°æ³õ·EØîŠ îÐìîµßîîîíßîîºîšeîK{³î¿cîÄcîïyîàîéîÈcîÆcîÊcîÌcî–úîîî¶ûîî̘îîöøîîÞ—îîïîîœöîî•!îÐLîîÃLîîÇLîÈcÆcÊcÌc–ú•˜¶û̘öøÞ—ïœö•!ÐLÃLÇL¿cêêqë©qÀª€ýà @&ا£³§£À§£¿cððØqñ©qÀŽüÑ‘v¨xØý£Êý£¿cö÷ø±rùˆúûÏ>üˆ*^uEÄcȤ¿cÿ„sƒ˜sˆ·sˆÛsŠ÷s¢Ý”Ä,Ž‚)Ð좥µß¢¥¢¥¢¥Ø¼táSì±ì…Zd{z¢·DŠ Á¦¿cÁ¦ÀÁ¦ÊÁ¦¿cžž¥uŸÄuP›íÆûDغ§Àº§¿c¤¥¦Œv§ˆ¨©Ï>ªˆQ¶ˆ¨{¤Äc…¨¿c­­Ív¯ív2?eùæ×KÙû¦Øߨ°ߨ¿c¹ºÈ»ˆ¼½èw¾ˆI5";¿D¹ÝBñBÊÒÒ„KÔ¤KÕ¶K6’\Pä1gÕ³¿c‰ªØÃÃ¥xÄÎQå$ñ˜w"P¿cÙª³ÙªÀÙª¿cËÌÍŒvΈÏÐÏ>Ñˆà›ºÂé…U#Äc¯«Š ÔÕÖÚyרîyÙÚzÛÜ”zÉŬSyÀôÙÛ‰¬Ø‰¬¿c‰¬òí ²¯º·Å¿ÍÊÝØÀ½òÎþøîêô𢞳­ÅÃßÔö혤µ¯¼·Ç¿ÐÊáØôÎøÝÔùí$§s¯·È¿ÒÊäØ÷ëËÂõÎûøÅìêòðýöÿù ž«¤°­¿ÜÒÇÃÒËáÔýíDR«½·ÕÊÃÕêÉÃí'FTdv¯·¥
¬Ø¿ÜÖ¿¹·Ä¿ñÎýøÞÔ¼ŠÊ˜Ø±ë·¹ë¢ëÏÎÑÎψÿŽÿÿøÀøÇçö¤¤éËÉÍû½øý¿øÿÁøÃøƒÅøÈøˆÊøÍøÏøÒøÔø×øÙøšÜøßø¤æøÛêýžâÃâðÖÒ¹­Ø¸Š ¿cb³ Ÿ =ÛF³1/Ú.“í‚Ø
éÐìµßíߺšeK{ÄcïyàÈcÆcÊcÌc–ú•˜¶û̘öøÞ—ïœö•!ÐLÃLÇLÀʰ
 î‡
Ùî‡3;
 ô‡?
Ùô‡4=(
Ô íî‡ô‡
Ø 
ÙNõ\¶‡h ¶‡sî‡û î‡ô‡Ð ô‡Û£­Ç·7‡¸ÿ  î‡ ¿c  ô‡!-˜º(áª
ûc¾ (͉»«°à‰»ŽVå æüÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ŸÈŸÈ ÈÏ> O˜éBL¹
  c cˆ¢cµ
 `£cbufÁ `àB¤GS
T˜ºÒ ¹Û˜º¯ ´¹»´¹Äޱœ§ ¹˜º*Ù½˜ºÿóºÆ  
´î‡&  ®
´ô‡'8è íî‡ô‡î ïN\¶‡hî‡Åô‡£;Þ÷¾ºî‡s íî‡ô‡Æü»¶‡î‡ Ôô‡ Ú¬­G
ăڈ%
¢Úˆæˆìˆ=<“ŒŠ šbôý  æ 똫ÀA àˆÄÀÔ
¢àˆæˆìˆ?ŒÇ × üý!ü°Í ±‘Œá ¢ˆ ÇÇÅ9ÉÞ9Êì9Ëú9ÌŠ:Í¡:>ѦòF¾P䱑÷ Úˆû”ª àˆb¢attemptÁR¬ÌäÁ`ñ‘P±‘WÚˆÔÁ
£Úˆæˆìˆ?œÈ ÚàˆÔåò
£àˆæˆìˆ?œì þüƒƒ¶ÄL‘ ôôÙ“ö铦÷ª-¦ §ŠkÂD戰Å=ÌÎÅñtrequestÁ?«߯a»Ç ¼ÄÚˆ$, 
¤Úˆæˆìˆ<„Ë ÚÔä , æˆìˆÚˆàˆÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙæˆ  ¢ˆ  æˆ åüÄ;4

×TæˆæˆìˆÚˆàˆòÊÃËd üÜ# þüŒy÷ÊÇËÐË÷ÊÆ ڈʇÌzÅ˃ÎËŒEª-HuõÉýËöÅË$àˆÎË¼çŠ 
¤àˆæˆìˆxG„î ýþm÷Êæ‡Ì àˆÇÅ˘ÇË¡Î˪Ð˳$›Å˪-uÎËßÓÎË
_ref__selfÁ
_ref__bodyÁ Ñ  ¦‰ 
Ù¦‰5=(£ ¦‰§ ¨ 7ùˆC ùˆN¦‰ ¦‰¢jtÞпìÉ R

÷c É h
 ‰» ÜË FÜÿ Ô€ ýåü&`
­&¦‰‰»‰»2>˜ºüÉR é

Ù`¿ÿ
‰»ú üô'  š üÉh 8
à`j   · &ü†± ý«üb`«&¦‰ü ï» ¾Ñ, ÷¼   Í`Í` DebugStructÁÐ`×µ`Ñ` µ`Ò`
has_fieldsÁµ`ã¹q·Ù›ß¨9ûÔæýÔ¥ ‰»±‰»²¬±¯óÏ­&¦‰‰»‰»›ÒMýÕ˜º²ÓºÔr”Ø Ö¿ÀщÊÀð +ü‘_ Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ÀщŒ¼ ùˆL ÃÄ ¨  ¦‰  º
’"¦‰´¹O:B ¹ À ,üöJ Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙô‡ ¾Ñ,„ ´¹$‹ ÑÑñÙß%ª-(šƒÙ Œ­ ¦‰À -üÒn ùˆ ¦‰ í ± /(ÌÑ"Þ‰. Þ‰9BL
ÙÀþ²Üxœ²ÜÀ±²ÜϲÜhåÀþ ˜ºxœ ˜ºÀ± ˜ºÏ 
 
˜ºhå  

 
+  ˜º(Ó
d ª‰»'¸‰»!Í ‰» ≻ñöõ
‰»Ú ß
‰»Ã È×
   !ØÐï»Ü‘Üä÷¼ì˜ºÚ 䘺ÃÊà̘º«Êà´˜ºÊàœ˜º{ ÊàÊà\±juÊà˜ºiÊà˜ºIÊà˜º)Êà˜º “ᘺéßÞ²ü˜T ; ëë
HeaderNameÁìáSÃ.àƒ
Iivƒ 
²â ëü÷v;Ÿã¯âίâÖ±âü™S²â¬Ÿ²â²âÜίâg*Á²â,ϲâ.ä²â^fÁ²âiqϲât|ä²â¨ ²âœ«;¯âDZâò²âï²âí²âëï Á²âϲâä²âü¥Â š¥°í=ü†çÞ‰$–ü€ ´>ü¼xÞ‰Þ‰ýC¬¨ Ñ ?üûVÞ‰$™ Þ‰ .´Ä
õ  ˆ @ü–
r>Ìé
Þ‰
Þ‰
 =ü·

ë
Aüó xÞ‰
Þ‰D
4—
ýC´é$‰Bü»XÞ‰Þ‰ .¼‘ ˜ÖCüâtAÌ·Þ‰$‚Þ‰ = )4?J³Eüƒ0¢=Þ‰$“'üÇm0ÔE¼æü‚1lÄ3 ¸¸UriÁ¹schemeÁŒ º authorityÁŒ »path_and_queryÁŒ ªª¡•¦Jl¯1êïª
à”Œ” »üåOÙü2 ²8 ³{ü¸|*”¾ Ö¿ÀìˆYÀÖIüëëü˜3?ÔT”üƒ1?Ò ±‘Œœ Þ‰ÃÄ<20ôÔêï3êï5CêÄG óð

µºqûûPartsÁüì9ýÌUþÄÿßU
extensionsÁÎQ¦¶^Èëý‘ƒæ
æ
HeaderMapÁè
maskÁé
indicesÁê
entriesÁë
extra_valuesÁì
dangerÁ_V$ð.
¡œºº HeaderValueÁ»áS¾¼ is_sensitiveÁ¾®>úžëÁ|Ø
5šö< <•¼´é 
 ;Ÿã,

őe 
ŸX%  Å•X%  § ïíe¼îËè¿*¡ã^emÇš% ýÕ€$%
  ¡ã½Çš%  ²â
Ýš% ý½š"%
 § ïíe¼îËè¿*²âŠ
¯eÍÌe e ˜
°ùý¾ºO€!
âe N  ²â
äe ýô.e
 Äl²â
Ø! PhantomDataÁFu\»Ÿ ²âÕÜ
 øÑÞQ &-4;¼2iÐùç2iêúùƒÁ;CiùƒÈ;<i Ðùæ °ùu¿¤% °ùý®¤%
̤%k  œ  Ñ® ü ¼üèÕ ü™®
 ÆÍ ƒÈ<iT[bip{ ü±ŒA—>iý¯Î(% Ó#ý¥Î3% Ðù
×Î%©ƒŒ>iÐù ƒ >iÕÏŠ%!Mè'O# êúåÍŠ%!
èŠ%!¹ƒ±@i Û¼ÒûX_fmtâ
ÛÒûœ‰ 
Ã$
kšöÒû<‰
˜ \‘J$üÜñü·ÝäýópcÓØŠýú=e½l²â"ý’G,“t²âeý¢eÔl²â5ýÜÖeýû·eýý¯e ý®W‡% ¡ãaý²™µ%¯¡ã²âý†~û% ª¡ãEÌš% ýŒÌ`N ´²â½­eýÚÙN¸²âåÎÌNQ ª²âeýí¯ø
O é²âeùƒó0õi‡Í²âLùƒ²2¶iùƒÖ2’iùƒí4µiý¥.çZâ²â‚5iý˜@ZÛ²âe÷1Zų̀ڡ!»Õƒú8iý¬*ñFšî$Fùõ¬Þ[ÿÝùõ“á4¸²âùƒß8,iý¤R%û²âê²âE³¤%˜ª²âEŤ%ý—ËÉ%µ²â›>i̪²âEÇÎ%ý߈%«²â¼@i!ª²âEÔŠ%!ý´'CO!ȲâeÝŠ%!Žøò ôôÙ“ö铦÷ª-¦ §ŠkÂDØŠ;
”õÔ³ÄlÄlIterÁÇlµ ™lÈl
end_or_lenÁ™lÉl_markerÁ™lŒœjSž²âÐÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÒû Òû¬Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙšöâŸã~ ÐùÿeÀøb êúUe °ùy°ùy ¡ãmŸX% °ù ›ù1 Ðùƒ¶2iêúÚ2iƒÐùÐùqÒû‰ƒ¶@i°ùm®¤%°ù°ùêú2!I–ÈßU ùh
keyÁü
ªs
;Ÿãe²âÉ4i²â¡÷
Œ1Šä
Ús²âe
³Öéýˆ%F("'éŠ4 éŠ?HR®  ,˜º(½+
ùcÑ+ ‰»'ß+ ‰»tyB šhï»tŽ|÷¼˜ºË  ؊઱·Áˆ˜º
ÕÔÄ äQü›I銦maxÁ1g-銌SüÒºvQ„öéŠ'”„t„ ‹-A œ¥Î-”Æ Ö¿Àìˆý-Àüi„ö Ö¿Àìˆ9.À< WüºÜ±‘Œå éŠÃÄ Ñ88$K Š î‡ä.Ç·/7  ô‡/‡¸/8(Ò î‡ô‡Ö ×N£\Ü‹h Ü‹sî‡ò ¹úô‡Ç´¹Ïœ¦Ç·'‡¸óî‡ Š î‡˜º  ô‡!-˜º(ßu0óº…0
‰»#“0‰»¢¦0‰»Qã äª}ï»è–÷¼˜º
 ¹˜ºóÙ½û´¹Í±Úä ¹˜º]Ù½˜º;óº Š ‹1;   ¯1÷¾!8æ î‡ô‡ì íN®\Ü‹hô‡;Ò÷¾´î‡s î‡ô‡Áaü·ŠÜ‹î‡ Ðô‡ Ö¬­G
ÄýÚˆ%3äÁ/<Œ„ Tô÷  ç 슫ÀA àˆÄÁÁ3Ã1ŒÈ Ø ýþ!üªÔ i±‘ŒÛ ÄŒÃı‘°Å„¤ÎÅôAêÄE¬WŸäÁÜñ‘豑îÚˆÔ 5߯1œÉ ÛàˆÔæY5»Ç1œí ÿjü„ƒ·• LÈ<¼°Åá}ÎÅ¢3–È7d߯þ»Ç¼ÅÚˆ$<6õÉ.$×„Ì ÛÔå , læˆìˆÚˆàˆòÊ  ÄŒÎË æüÅ;ã6
×TæˆlæˆìˆÚˆàˆòÊø¤üÝ# ÿküy÷Êü¤,›ÐË÷Êd‘Íe¶¥#ú¤,ÎË5Bª-Erõɳ¬¥òú¤$àˆÎ˼è58ÓÎj9„ï þÿl÷Êç¶¥°Ïú¤0ü¤9ÎËBÐËKú¤ª-aÎËwÓκšÏ§Ï Î
 ¦‰9ÞÐ/7(¡
¯¦‰¥
¦
´7C N¦‰ÑÑgqÞÐäÅ
Ñ9›Ò Å
ã9
‰»
ÔÇ
BÜú
Ôû
{,„,­&¦‰‰»‰»/;˜ºüÅQ
a:²Ó²q:‰»õ
xüï'
 
üÅg
ª:Ô^
 ±
²
uü‚°
l,«&¦‰é ï»
Àª,‰
÷¼ 
ûÔËûÔpýÔy˜º3ýÕ<‰»=J±MÕ-­&¦‰‰»‰»›ÒÔýÕ˜º²ÓHÔ
ŽŽŒí
 ë;
•"ŽŽÃÄP:B ý

zü d
±‘ŒÑ
á
ÃÄ
 ŽŽ³¾¯ (êÄ,\´¯Ë„Ì
¯¦‰Þ
{üß
l
¦‰ ø
± /»(Œ£Ž £Ž )3  ¾8 ™ù­5/‹êH ¿£Ž&-¼üˆ4V¾]‹êW£Ž6üÔ1ú!êï”!êï/=>óð”Þ”òRX”” Ö¿À숋>ÀüÑ„Ä Ö¿ÀìˆÁ>À6 ÝäŒü„àz!Ôx!Ò±‘Œµ £ŽLÃÄ<›;êïêï.êÄ2óðyÏ£ü™6Ì  ôôÙ“ö铦÷ª-¦ §ŠkÂDô‡T_requestÁ $“ Û¼ô‡¤üÜAÑÙLÿ ù¶´¹_bodyÁMÔ¾Û@
¢ô‡щ2ŒÇÞ©üñm¶×Œ¢  ÃÄ÷¹êÄ!T¤¹§ä¡A
£ô‡щ2œªÃªüä_õ¹…·÷¹–È!M溠DÿÌÿkB
¤ô‡щE$“„ˆ ž«üÉUÑÙ ÷¹´¹ §÷¹(ª-+[´¼D¿UniqueÁ žŒˆ8Åá™-Ýñò§ ïíe¼îËè¿*ò  òžÔ¿ÚC
¢òØŠìˆÐŒÈ Øß°üòm±‘Œ£ ±ÃÄ<‰ ò2€¿ þ(1êÄ5e£¿Àý½þ €¿-ä¢âD
£òØŠìˆ_œ« ½Ä±üå_ü¿à‡“Àº€¿þ$-–È1]«Á¸D€ý½þ €¿-Ì€áE
¤òØŠìˆ^$”„‰ ˜Ÿ²üÊUÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙØŠ ± ØŠ ò€¿#þ+4ª-4¬ªÃ„B í³ž“à(¾üÀ' B³ž“¯—¬Å(ííúLð¬ ñ­ Rm$ßáú\³ž“dã'³$Ð'ž“,Ö'¹
£m ³ž“ƒ*Âüæ(va³ž“¯—‚Ƥé)ëOž¬XŸ­XPbFßêwfL³ž“\ˆ)³$õ(ž“,û(¹
¡\µ/œŒvˆÖ SÝ2§:ùãÆ/Ðüˆ/>…ÉT /ÃÄ,–/ .\´0 ¥¥¦MethodÁ§ˆÔ _\æØ†ÆØ×Å0Ñü‡0>•ÊTŸ0ÃÄ,•0 .L-êïÂ1Òl,êï<1ÃÄ,“1 ˜,¤Ç2•Êá2Óü‘2P•ÊT²2ÃÄ,¨2 .†.êï×3ÔB-êï<²3ÃÄ,¨3 n-(!5!‡5Æ"À. À9BL(#5 (.K‰»#“5N¯K‰» mËK
êcƒˆP#”5ɭﻹóÍÁ÷¼É‰»ÑØá±îø”Ï$Ä7t³7LŽ8Öü‚7ŒäÉ7$7óÍ,“7\<$Œ9dý8
MÖ9×üÎ8ˆä‘9$ç8óÍ,Ý8\<,Í:LÊ: Ö¿Àìˆ Ò:Ù:Ûüƒ:V±‘Œ®: ÀL:ÃÄ š:À}C<ñ;%Â÷U¼÷39þ;=
ý÷ìˆM‡ø ™N
Ùìˆ
‡ø=‰øMá÷Ì«ÀmÞ÷ Ö¿Àìˆ
ê÷ uƒø Ö¿Àìˆ
ø ßü¥;Yýš÷ˆ \ÀìˆVµÕ÷Åù÷ŽÆ=ã÷±‘ŒÐ; ±‘L±;ÃÄ ¼;-Õ÷À ìˆqìˆ_>©âÔ}H$—! Ã’3P
ÙÃ’5=($Æ  ÊÃ’Ï7–’C –’NÃ’ Ã’¢jtü׿H&—! Ã’!-˜º(&Ó #Q3Q‰»#AQ‰»qv>&×  Ôdï»pÜØx÷¼˜ºÈ ïØÓïØÛ¤±±»êÚ˜ºÏH'—! R
´Ã’&8'Ú  ÊÃ’×7–’CÃ’uRÎÛôú# ÊÃ’ž$üÊ#T–’$ë#Ã’4Ý#“/ /,ô%œû%\û%ž“$,S
Ùž“4<‡& &ü€-  ؤ“ž“ Ž&•&ü£%r%Ž!üÆ,`¤“ž“üØ%7±“lÀ% ñ’,¬%¤“,³%¤“ ž“ ž“3áS6ŸõÝ8¤“Ê@(÷' ¤“oT
Ù¤“5=H(…( ž“°TõÝ/8((±' ؤ“ž“(µ' (¶'Nà\±“h ±“s¤“ø ¤“ž“ËÌßÓ ª¸à1õÝ÷¤“Ÿ@*÷' ¤“˜ºH*…( ž“!-˜º(*¾'
VóºV‰»#(V‰»¢;V‰»Q*Â' *Ã'ç}ï»ùá÷¼˜º
Œâ˜ºó ÌßþÌßбÝçŒâ˜º`ü䘺>óº,¼)œÃ)
5W
´ííúLð¬ ñ­ Rm$ßáú\éŠÞ‰b6 ؤ“„æ Ö)Ý)üƒ)Z%!4¤“„æüª)-ØØ»SÛáSÜ“/úZ&"™Ì—[¤“„æ$›)¤“,Ž)¤“I„æ?áS´þå^¤“ßÔ™+ŸX
¹+üé*PÊÊÊRÌ“/_ﶸ)hž„æœû*Eèè~Ë Ø¤“ž“¦-±“$ñ,¤“,Ù,ž“4ã,áS“/ß! Êž“Ö/üà.v(ž“ü¨/(ñ’´‡/ž“4ù.“/ DX+¼¤“èø+’?Œâùá(+¡ 1x+ͤ“éø+›K ¤“0+¸ ±“H+ª 7P+Ú¤“ž“êø+¯?¤“±“ 1ž“cT»3Ŕ̻3C[
. Ŕϔ:Ñ3tÆ3 Ó3Ú3 üá2yœØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤ÃÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ŕϔ.
ì“3 Lï2 ÌÌkÎwakerÁ¸Ï local_wakerÁ¸ÐextÁ¸ÑŒˆ¸Ò_marker2Á¸f'EwÚ]¾åú2 Ŕ§cxÁ&|ìîÓ!<¬4C[T¶4Å””¶4C[
ÙÅ”6<Á4 Ç4\Ö4ý&XÅ”ç†XÅ”T˜5\¥5œ¥5C[
Ù6
<±5 ·5DÆ5tÑ5C[ ”•$é5

U²z ”•<‰6 üé5(C[
®”•Ìð
\ Tý5 ? üî5# 6
46D­6Ü›6C[
£”•ÌðH8
¤¢6 µ6¤å6
   Š 
©ô—ʲ ³´OptionsÁµGetÁ·¸PostÁ¹ºPutÁ»¼DeleteÁ½¾HeadÁ¿ÀTraceÁÁÂConnectÁÃÄPatchÁÅÆExtensionInlineÁ LjÔÈÉExtensionAllocatedÁ
ʈÔ0Â5*õ͵G
 
l´7Øg©ôóóôVersionÁõˆ²  <éè––FܬØ7•Ôm©ô”õ#C[
Ù”õlØ7
<æ7
$û7C[ü•8Œ¢8<¢8¯8C[EC[
.
ŔϔXHLª8 ²8 ²HŔϔ.  è èOneshotÁ ëº ¼dfÛ_ý†ÏŔϔ ³8<Â84×8üÀ6¨ ëÅ””• ç8 &, í8î8R b
r `
püà3ŽŒ œ ¬¼  Ü   ¥ çà  ŒŒ7ub©ôìï#C[
ÙìïLŒ7 <7÷
‘Šª
 ! #IÈ?
"
#©ô—Êñöæ÷
ååæAllocatedExtensionÁ爚 ªZƒ× ·-‡ž¿Ž¡ˆˆ¢ˆl }.xÏ
ø¼
C[
ÙÙ#Ô" Ýð ©ô—Êñö ŠŽ 

 ²-
5
 ²I
Q
 ²e
m
 ²

 ²
¥
 ²¹
Á
 ²Õ
Ý
 ²ñ
ù
 ²

)Ú>
! å" Þ>
"; #@  ²
!H !Q
¡:ü¨4ÆüÒ4œü”5ÚüÂ5¬ýîÿXÛÅ”üä4&ý‚†Xýz3Ö”•46ý›\AÌ”•Dé6k©<ò6 Ì 



  é-
«= Ûã 
ýìa8Δ•,7ý­gBД•L¸7ý™mSÒ”•LÜ7$ëëñTïŸUð­Uñ“/òì9óÌUôÄõßUöª-QbaÉÚ„2Å””•d‘4àðLè3Ï”<ó3Å”M  Å”D Å” Ö
¤½×
ÂÄÅÛÆˆÇÈØ[ÉÊ©û¸½T1T”•ä

 ·‰Æ
”•q
¤½²
=
÷¹l
 ϔc
—Ê
ìïdêï2Ýùµ”õi ”õ:·‰2²HµH¶HLeftÁ·Hˆ¸H¹HRightÁºHˆ«‹°@mþ%v¡ü¯üj¡üjýñkÏ”_Å”œ"ñöð
ç
ò
Ùê
Ùö
ïreqÁö­UG
­Uñ “/Ê ª- 'üòN
„ôÍ ¡õ8 öÒ ®€ÙÄúÊ áûV ·‰”õìï#—Ê*ÿÅ”·‰
Ï”­À
ÙÑŒ«>
ÙŒÇ>((3¾9á3“» ²HµH¶H§Š·Hˆ¸H¹HÄŠºHˆ«‹°@mþ%v¤“‡·.  è è¹û ëº ¼dfÛ_ý†Ï¤“‡·¨˜º¹¿ ¤“Ñ ˜ºâ
è òú
 ˜º  
—Ê% 
˜º7>ìïQ˜ºcjÝù}˜º”õ©˜º»ÂÉÂÄÅÛÆˆÇÈØ[ÉÊ©û¸½T1Tô‡-:˜ºU ˜º
3Â9  !
'-®» 
˜ºÑØäû¤“ô‡ò ‰» 
‰»C[
ƒd0C[‰»?EKTÞäê3Ã9û~ï» ¡•¥÷¼®©”· ˜ºÑž–Ú˜ºÚ 昺ïŒâø˜ºâÄ
˜º•ʘº%êï.˜º7 ÝùC˜ºL„‹U˜º^  Á’mΗv± Ñ ®´û¤“ô‡òÛ”¼ÒÛ È–˜ºàŒâ˜ºêâĘºô•ʘºþê¥—˜º„‹˜ºÌ—˜º&…•69B‰»N\e‰»qˆ‰»¢ «‰»· ŠΉ»Ú
 è
ñ‰»ý 
 ‰» 7 ‰»<‰»
 fuû۔ݔ‰»‰»¤‰»­‰»‰»¿‰»È‰»Ñ‰»Ú‰»ã‰»ì‰»õ‰»þ‰»‰»!
!Ióˆ  ¡•1Iåˆ  ¤“+ ò> —ÊQ ìïd Ýùw ”õŠ  Á’ùJùî-
}¥ž
„¾ ùI—‰é ¤“ô‡ò
 IÿŠ
I˜‹ŸùI•‡ƒùI؈ýÁ÷UŒY¡•iIøˆýß[öXìžÓ õVŠŸU­UŒ“/ì9ŽÌUÄßUª-£Ô vÁ$¤“ô‡òùI‡ˆ)„¾„¾PinÁ†¾ ˜X$]È=„kt•©!IŇìžM…íV“À_ —Êk ìïw Ýùƒ°ˆŒ Á’˜„¾„¾Ä †¾ ˜X$]È=„kt•ìž6©ô ¦ŸUó­Uÿ“/ ì9ÌU#Ä/ßU;ª-G )x&Dˆ?$“?® ×—L˜?z{|}~ &-²z®²HµH¶H§Š·Hˆ¸H¹HÄŠºHˆ«‹°@mþ%v¤“ôôÙ“ö铦÷ª-¦ §ŠkÂDÕ˜.  è è¹û ëº ¼dfÛ_ý†Ï¤“Ä¥Ž{®¤“£|®¸}®—ÊÍ~®ìïâ®Ýù÷®”õ
®ÂÄÅÛÆˆÇÈØ[ÉÊ©û¸½T1TÕ˜×Ó „¾ ó¤zÑ ¤“Õ˜{|}~Î_gov~}}|{z<¯?ðÒÀ?ìÀ?¤À?DÌ?ƒ%õY€ƒ„¾„¾Ä †¾ ˜X$]È=„kt•½¨½¨å „¾½¨ƒpƒC[
„Øó¤šÚ?DÕ? Ü?ÉÐ×Þˆ%Õ=óUÏ=óQRC[ Ÿ@ä…@
½  @üé?9C[
¡
æ˜ ¤é?
B Püþ?$ ¡@
 ¢@ P |±@\Ã@W”¢1#9#0$WñöD$ 
`_^]\[ZYXWV <¹J ¼J  xC[ .  Ö¿ˆˆ¿>Šé“ª-gd™&¶ð¸R >¤“Ä¥.
 ¿J ¤­J œØÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ü­½® ÀJ  ÌJ ¯C[ <ŒÑC ® ¬çF ¯ ôÏI ³
ôðI ´äòG dòG X”¢dH T
¨¤“Õ˜·®•ÊuM"*
+ +Xñö+&+Tñö;+C[
·ßñöñöY_”bEiä‚E dE Y”¢dE U
¨¤“Õ˜·®•ʯ,¶,YñöÉ,˜Ð,˜Uñöå,C[¿±ø˜þcEdµE Z”¢ Z# [”¢3 [\ÄEâ—Ê|òE   ÂÕ˜TåE \ ϧ \Ž ]”¢ž ]kâ—ÊEU ^û³e ^ €F ¤—F  ü—F" d¬F `°ˆ  `* C[
’"©¤“Õ˜·® ”õ°ˆ|E _û³' _Å E ¸F  üÿDÍ  ËF 
d¥H a”¢ a# b”¢3 b\´Hâ—ÊüïGc W c”¢g c4â—Ê E ÑH |ðH   ÂÕ˜TãH dû³ d# eû³3 e þH ¤‘I  ü‘I" d¦I g°ˆ  g* C[¯µPAEJ© fû³¹ fˆ E ²I  ü€G  ¯$ÛJ „öJ  LöJ hû³ C[
­Õ˜h, E4€KC ! TéJ ! $îJ " " ÛÕ˜$•K wC[ " ¢K " ÝK  DìK
%ü÷K6
&D-'³óÞ9ÄßUåóÎQ(3ª>r°˜”õt
C[
9šöÒû'Ô÷KL£L¨¤“Õ˜·®Òû&DtŸL <ÊK #ÍK $ xC[ $. # Ö¿ü­½®$ ÐK $¤¾K œØê®# ÑK #H  C[ ;üÄLA
)
)
( ª¤“Õ˜·® šöÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙìï õVŠŸU­UŒ“/ì9ŽÌUÄßUª-£Ô vÁ$¤“Õ˜) ÈL
)ü»LK

š%ĸ1.&U¾¸1.de«M,,%ÛìïÉM*, ÕM ,<ŸN
/dÇN
0…‡800Ê»…É\éN
1
iӢ
1iLŒO
2*„´O
3DÜO
4
j ¢
4jü©NÆ
/ Ç01234 îO
4
1
0ø×ÿO5ôÿO6\ÿOk÷¹D”P7/*C[
¢Õ˜½®kB756"C”‹P
<ýM -€N . xC[ .. - Ö¿ü­½®. ƒN .¤ñM œØê®- „N - ëU *
% ;Eýœ ž%ã¶1œ6Uݶ1œhg <ÓURÖUSxC[S.R Ö¿ü­½®S ÙUS¤ÇU œØê®R ÚURÑ
/Ù *wADÝP;vC[;*LÑPl ¢l%&#m ¢3m; äP;L÷Poû³,Q=d—Q>÷¹ü÷P-C[
®Õ˜÷¹½®oX=K>B<'KüQ#¹n ¢Én;˜K<»Q?$ÒQ@wC[@”ÅQC[
ÊÕ˜@B?(K# ÖQyC[@„úQADúQBp ¢Bp/C[®€B9A)I<ƒR ‰RBtéQ?©ôìï*+?©ôìïA9Aœ°RC\°Rq”¢ð)8¤ø)8¥ï)9¥qñö*9¥ 
tsrqponmlkj?©ôìïA¸I ŒœR?©ô—ÊC ÂRClêRDr¬¢DrüÕR"?©ôÝùD öRD¤žSEdžSFs°ˆFs/C[ÄúF9E.I<«S³?©ô—ÊC³I ±SF”‰S?©ô”õ/0?©ô”õE9E\ÄSt÷¹DÛSH?üÄS C[
£Õ˜½®tFH9G1I¤ÐS?©ô”õE°I\öSJJƒªü›T6Kü©T'L¤¶TMd¶TNu…íNu/C[¸àN9M2I<ÃT ÉTNÌTOyC[O?ýœ " A©" Aª
Aª ۼĥOÝÝ" B© ¤“Ä¥Mª
»" Aªýÿ
H" AL  褓ĥ©
Æ" A© ÏTOM'K ²H½¥‡¦L ÐTLüöS\C[
üX½¨JƒKoI3Iü—T; ÑTKJ]ºVôCQ ããWakerÁä„ð¸ È
4åêé‚lðT­ýæ•ôD«
D­Q½Ø½ØRawWakerÁ¾ØdataÁ¸¿ØvtableÁ¸Ã?+ž´D
 ÅØÅØRawWakerVTableÁÆØƒ¸ÇØwakeÁ¸ÈØ wake_by_refÁ¸ÉØã¸³èúÕ@ú+êD«­ }†–ôD¬ D¬Q¼ÒÔýæ•D«¬8PvI< E5NT]x6Glsz5ìU@Œ *
%œ 8B« ´9NÃÌ:Úáè5C[@ù C[ < =P $ ? ß?C[?> E C[@Õ` wBLq N *DE¤ Pü°>¼Á 6 ©U?KyKHó *A
vAJ
B&
F7
xFMH
FY
xFOäÈê®ìTS m—?óŠ Š œØü­ý?$ó •¢Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ˆê)?ÈXM´­½®œØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤Ãü­Š
¤?óŠîˆöþÒÝ?ôÀ? lâÚÙe‰ î œØê®¿>
Á>óˆÈꮽ®5Û>ó  Ö¿ÇÚ½®ˆÕÈ>ó •¢ùÙâÚ
á>óЈØàèâÓÝ?[ùÙŽ
ÉAó=ÃAóŽC[% Ž
ÝA󌽮•ïAó   Ö¿ü­½®ŒýãAó œØê®
 ËŽÓC[>
÷=óÈꮫü­u”>ó  œØü­ýþ=%ó •¢ùÙâÚ
¢>ó_ˆgowqn lâÚ
î
 
Èü­
îxC[
#
Y± ͱN" Ê»ºº
ExtensionsÁ»Ø
{¡:¯·p&
@D@V ¢V/C[®€9P<™@"6#”1# ¥1#dC ¯þ)¯Ê»…Éô ô õ ¨÷ ˆÐ  mjçítoéµÅµÅ¶ÅNonZeroU16InnerÁ·Åˆ¢  9ª»ûg¦‰k ÿÿ°  ¯ì±C ­  2&2&
2'2'Wñöæ÷
Ù92'C[­M2aPX2l7%Wñöt1$U‰7$ ²ž7$U¦7$ ²»7$UÃ7$ ²Ø7$Uà7$ ²õ7$Uý7$ ²8$U8$ ²/8$U78$ ²L8$UT8$ ²i8$Uq8$ ²†8$Uy1' åw1'¯3&µ8& ²
¿2&É2$U Š
+ +}€M"*
ŽM"*7 >,˜E, 
%ü¸1.% Û¼ìï
š
 …M
&D”M *L¦M!
ܸ1.š&Û´¾%â¸1/ / š/C[
™"ª¤“Õ˜·®¯¾†¿²¾(
â¸1_%fDh
å¸1/J
šR
½
&» *D²M+%Å+ !
©·1ž6½®5·3Ÿ 3Ÿ Ö¿ÇÚ½®žÕ¯·35 •¢ùÙÀŸ
È·3ŸÃžËÓœ×P6ØP85[ùÙþ £q4 8n4£ C[4 £l4¡8½®i5¢q5¢ Ö¿ü­½®¡g5 œØê®¢c5¢©£± Ú
/ã *7A
ù¶16«ÀÅÿ¶25 •¢ùÙÀžœK6üÿO95lÀ:9üùO%:$#o<8¥á78C ¥¤Þ78¤A?©ô—Ê,-¡7;¦©7;¨ 7<§¨7<¨qñöæ÷
ÙÏ7<C[­¨ã7§uIî7=:¤qñö
79i=9¤ ²4=9i<=9¤ ²Q=9iY=9¤ ²n=9iv=9¤ ²=9i“=9¤ ²¨=9i°=9¤ ²Å=9iÍ=9¤ ²â=9iê=9¤ ²ÿ=9i>9¤ ²>9i7<¦ å§
7<§E9;¨K>;¤ ²
¦U8;¦_89i
•–ôD¬ D«Æ­lU œØê®ý
?Õ
/Ü *ã
%ì 4ô *û
% 4B¨Efü„?èü«?Á  § ®  ùeª
ü­@¿üà@Œü×J•  ä‡K üèK„

ü Ü»M ü›NÑ
£ª±pü·Qó(+Ÿ¤“Õ˜è(7+2+ŒY×—.+++öX½¨ú+ýß±ÜúX½¨w&W+öX½¨ý³&ýÉY6€ú!ó¤m¥³ýˆ=®ó¤ü­½®ã&ýè=;óý±>1óýý@–ó©ü­½®½®'ýÙA)óýáè$W ½®móAóýóM]§·®„í?Q<©<Ï@æ@#ÌA#ö@$$þ@$$ñ9&é<$æ8%Ûâ8$ýÚ7C  ·®DšCýÔLA" ¸ß—Ê—Ê~$ã *¬M†M"* ¬é#ýÒCS
¤·®LˆLý³·Þ1
ÑT´¾ìïŸêç}׸1..˜
 ·®DËNý–¶Ä÷\À½®ïýö¶!11ý¥·$11Ž©ü­½®½®#445½®4ýçdHÏÕ˜LîQÏ=©<¼RdB8Ì€B8tB99|B99o;;é=9d::Û`:9ý¡_QÍÕ˜d¡Rý¹jTÑÕ˜lÚRN}ÓÕ˜lŽSýÊ
ƒ"  Ó¤“Ä¥
ýž`" A ʤ“Ä¥ Aý‰VBôÖ<èTýˆ”ô개؞؟ØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤Ãê®”ç>„¾„¾Ä †¾ ˜X$]È=„kt•§¤$¸>íðÎ>Š¿--ü­*•¢˜¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜ùÙâÚÑ*¤ýÐ*ƒªÑ*ùÙöâÚÝü­bÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙæ˜* Ùá*æ˜E*ìï!êï"—Êî)µµ¤ä@~'ϧ&û% µµ&èµ&d(ϧ¶$F$ú€c$èµX$ê®þ)ü­ÿ)Õ˜Ý# Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÕ˜#$Ü#Õ˜Ó# ê®Ä"ü­Å"º¾ #
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ´¾æ#„‹`#Ÿê¯"ˆ¿¸"ìï÷ õ ìïv!ê® ü­ ÅÄ^!
…É_!•ÊH!êï,!•Ê'!êï"!•¢˜¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜ùÙÀ!Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
À½®m!ÃÄ\!ùÙ¥ Àf t­PìïßE Õ˜t½oÄ¥Õ˜ìï¡êÊ$ÝùŽ”õS„‹T Ä¥±ë ƒª_ó¤N‡¦N¤“NŒâOÄ¥ÄåTÝÑTåTê®A!ü­B!•Ê—+ •Êç*  ¢à1”¢é1”¢ò1”¢û1”¢2”¢
2û³2”¢2û³(2û³12°ˆ:2”¢C2”¢L2”¢U2û³^2û³g2û³p2°ˆy2û³‚2”¢‹2 ¢”2÷¹2 ¢¦2 ¢¯2 ¢¸2û³Á2 ¢Ê2”¢Ó2¬¢Ü2°ˆå2÷¹î2…í÷2Þ"å"ì""½¨|6…í…6÷¹Ž6”¢—6 ¢ 6¬¢©6°ˆ²6û³»6ƒª'6½¨ì -ô=ó•è=óü­èâÚ˽®ùÙoâÚý5ÙA󽮨ê®çñö§J#žJ$©E$Ù¡E'ÕŒªE'¨-* ñöª-+œŒ³-+œŒ¼-,œŒÅ-,=׸1.´¾{.²¾i.-ö¶1ÀM1½®Õ1ùÙÄ1Á4½®e4ê®T4¤4ñödK8[K9fF9Ù^F<ÕŒgF< ˜NotReadyÁsvcÁ ¼ šò‹ ¼CalledÁ œfutÁ ¼  žDoneÁµz¹ˆøê¤“Ä¥AÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÄ¥ÊAšÔDÔŽDÓ-›”ôD§¤³5«äFµ™ñºthisÁï5resÁG3Ž U¹? ¿Ç
Š:á1drop_payload_headersÁ
 C[µµª-+
ª-"+ "ú9à* %ú9Ñ
*locÁN(,êÄ((/Ž 8¹K9ò‹»$?úä/ã—Ê0/â—Ê=/â—ÊÄ0æ—ʆ-â—Ê“-â—ÊD¤Lß²â9íªm4®€5™¬I3Òÿ3—ÊÝ/ϧ|/¯µö.—Ê!.ϧ}-¯µ)-¡º,°¼â+Õ˜j'‘ÃE(ìïx'ìïr&ÇÇý%ØÈr%®€7%ìïä$—Ê6$ÄúÚ#”õi#ÝÍ#¸àž"šÑi!—ÊÌ'Õ˜Ó'—ÊÚ'ü­á'—Êè'—Êï'ìïö'Õ˜ý'—Ê(ìï (Õ˜(ü­(”õã#—ʤ$ìï%Ä¥dìï<(Õ˜C(ü­J(ü­Q(­"JªŽOCÈŽFC¿±$2¿±+2™ê¹Ÿê
¹1­‚VJªŽƒCÈŽzCšÔ«´ß²â¯,¾,¨rÒûÛ,²â÷ì,ß²â3
3æ—Ê3*3¨ê•ÊG3—ÊP3X3]3æ—ʹ2Â2ã—ÊÐ2ß2¨X•Êü2—Ê3
33ã—Ê%Ïb* ü±A“©¤“Õ˜·®<closure_kind>Á<closure_signature>Á<upvars>Á ²âŸã„{„{
”{ ”{
£{
²{ 
Àø”{
ø{|
 |  ›ù!|
°ù6|
@|
 Ðùø{ˆ| ‘| š|  |  °ù²|  C[Ö| |
 êúð| ù| Äl²â
C[¡û„{
„{
Ùb*øÔ£AÙøÔ±A“ $¦}Ðù»}êúÐ}Ü} Ðù | °ù~ | °ù~/~Ð} íBÔûBâ­~ãéïõû8†C­~ô~ÿ~ÿ~C[) Ðù=GÐù\gq! êúƒž Û¼Òû»ÂÉÐ×4§AÛÒû´×B
C[Œ<×B4æBtßB©"üû@GNý£b=*•*²âjŠ€“t²â5Ôb*¤€Ôl²â„{¾€Ê€Ö€â€ ¡ã”{ú€¯¡ã²âø{
ª¡ã*
2´²âEL ¸²â` ª²âv}é²â˜‡Í²âT´ÂÐÞâ²âñúÛ²â»Õ)‚2‚šA‚J‚ÿÝ\‚L¸²âv‚€‚û²âÐ}ª²â§‚ª²â¾‚Æ‚µ²âÚ‚ª²âò‚ú‚«²âƒª²âȲâ”Aú€b°ˆ<ü@Óˆ¦¹‰¯ÒûÚŠËŸãÐùë„Àø”{êúÿ„°ù‘|°ùš|˜‹°ù!|
›ù|
Ðù;…êúH…Ð}ÐùÜ}Ðùô~Òûn…°ù{…°ù~°ùÿ~êúgßUÙùheaderÁldÄAβâtâAɲℂBDz⌤Bö²âõ…²â²âŒ
ŠS³<†ÂH†Î²âŽÉ²âDzâœö²âü²A’ ²âAP©”™m–™R²â-²â(²â#²â¡UβâTɲâSDzâRö²â
øÕÖL$üÖL#ôÖLE®¡ 
 ÂÂBytesÁõ £Ä£ÅÚÑ£ÆìÑ£ÂÚÍàÜä E¸¡


Ъý¸)$b ýî#)^ ˜‚
ý¶)&b 
Û)b 
À¡

 ëC[
¶vtåL $õL%íÎUçÎC[ „M …M V øLÕùLž¥EÓå1uÍå1C[# %òå1 Û¼ìï·¯
ƒÏ«‰»=‰Ï Û¼‰»2Ýa
§á1Û‰»Å­á1 •¢Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÇÚ‰»è[üÖL$l‰»DüL 
ˆ¿
 ¢)  üÊL;C[
µg T$ª™9ÖùL
œý”E=áTéLýÉR=åEÃEý«­9ôEøRýé `áUÔ­ý¸#¬bërý˜¡)2 šî$F J
ÿÝ\
ýÞjKX Àu¥'b ý»•MX Ê}Ô'b ý»µpN ÄÁ ýà"¹^·˜‚ÍNýòÍËÖ[‰»ÅÏÅÏ Utf8ErrorÁÆÏ valid_up_toÁ¯vÇÏ error_lenÁ¯vlÅooÛÜ èâ…€ÏýÂàÂ1”V‰»'ý¢á#1ýƒå1—VìïKº¾ÉLŸêƒ;´¾ÅL•¢˜¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜²¯‰»ÄÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ‰»Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
‰»dzY ˜‚f²¯‰»êÀ< ¢É<ª«% ˜‚ -€Ï‰»¹‰»w%êå17ŸùŽ$Œ?ˆ¿Ž £C[²¯¹<^=ý‡k Xýå•!X§¬Yñ°.
Ï麈%F´¶
¼Ï
_ref__thisÁ8f©X ìïC[®€/7(fX ½fXfXÁ3æ˜? æ˜Jìïêïcm®€²(g½X$,C[”Ï>C[‰»LTZC[”ÏlC[‰»zgáX ÛØŠ!'3˜ºÌC[
‡dâC[‰»ðoýgÁX gÂXÍ,2ï»@ œ™L÷¼U]ÕÄà˜ºè ÕÄó±__self_0Á ¯”Ϻ”ÏÁñ½˜ºEÖ¼Ò üäY"t÷Y ÂØŠÛeÒe …ZHüÞY(k$Ò[ ۼ؊|òZ ÂØŠ,êZ$¤ZÛØŠT­Z ۼ؊ ¶ZO €[d˜[
C[
´ØŠ%Œü´Y³”“[ ۼ؊ ¤[
 æ[ç[­Pü•Z"^Ûœ™¸ ^ùÃLÊY œ™L¼Yœ™âœ™â¤•ZØŠ;œ™tØŠû@ª-c㜙†Á+ $Ý\T×\%ÄÞ]
C[
±ž“ØŠщ4é]$ñ];?TÑ]$Ö]ÛØŠ¤•^ ÂØŠ,^ ¨^üÊ]r1üí[íÚ^ É^
®-ü÷]E ¥\®ÂL…\ÕÄ$\Ìß4š\Œð\ùÃHØŠüœ™ìIª-L“/Oª-4Äè䜙
üÓ_#ÄÓ_„Ó_
C[
.ô‡$Ó_\Ø_<ä_õû
U€ mø’1 Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙò’1 
 õ_d†`
C[÷¾` Û¼ô‡ ’`üÐ_v`f¼©`C[
¤Ã’ô‡щ4©`$»`„°` Å`È`„È
Ýk´ P   5æ + C[ ¿1†ÝÞ"
 
„ÈÛy†ÔÞ"
âÞ"
 )†ÔÞ"   ÛZ C[d  ¿Î ×±üÞ^êýË
¼ýê‘Ç1³UËõ”“1ù†¯Þ6"‹àEª“1=³UL62‹à+
ÑÙLŽ_ïØ4õ^´¹$_„ÈiiSizeHintÁjlowerÁkupperÁ$Ø®¯mg‹Ìô‡£¢=ž“1÷=•“1«“/¯ª-²V°Ç7÷¾iÝÉ<ï_ Û¼ ô_+9±Ã „ÈX„È`g(hÿh„ó"ø™. ø™9BL(jŒ 

FLC[ ‰»jlC[!‰» C[" ‰»=¦C[#‰»ZÃC[$
‰»wàC[%
‰»ýC[&‰»±C['‰»Ï8C[(‰»íVC[)‰» uC[*
‰»*C[+‰»I³C[,‰»hÒC[-‰»ñC[.‰»¦C[/ ‰»Å/C[0‰»äPC[”Ïcirj‘öﻞ‘ѧ÷¼°‰»¹Á˱Ùä”Ïï

ŒøC[ø™ÌËC[ø™”¥C[ø™¬üC[ø™”ÖC[
ø™¼«C[ ø™¤ƒC[ ø™ŒÞC[
ø™ä®C[ ø™Ü€C[ø™ÔÓC[ø™¼©C[ø™”„C[ø™Ô×C[ø™Ì«C[ø™Œ‡C[ø™œáC[ø™C[ø™šÐüýø™$”,…» /ùm¥=K î#/˜º(m²C[Ö¼C[1‰»#j0 üVï»b m÷¼u˜º¿  îͼÞÕœ±©³ºÞ˜ºÖ¼Ç(n¹ÿ"'4ŸÞ<EO)qìKK$)î6¼Þ>GQK
 0K
sKŠIsùK¼Þ¼Þˆ5¹
BLt†KŒt„K ¼Þ&0
ùßÝ€3"" " E ß" ùߨ€9" Û¼¿ßÀßÁßLessÁÂßÃßÄß~Å߯ßÇßGreaterÁÈßåºÝÈnûê7 ß"uKŽQuˆKùߊ€"ƒáKÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙàão¼Þw¼ÞàãŒs¡¹
®¸£„" ª„" ùßþƒ3" ß°„" v—Kv”KùßÀƒƒ"…áKàã*¼Þ2¼Þ:µ Q¹
^h‡ÑL ‘áûÐLC[
§eùûÐLIÑL áŒÑLwK!w™Kùá¼ÐcLÐÊÐèK,¼Þ4 Ðè?ÁOº\fÊèÍñxóŒK
 ±xóŒK
®œ˜9ùxÛŒ7Kž!xìŒK,
z¬êœÑ¬sŸmç
îâ¬êœŠ Ü êÖýP
XM¬êœÃ H¡WDlÀ
Ƚ¬êœü ð¸¢Ç´Ü0
8-¬êœµ! `(£7$L 
¨¬êœî!@И¤§¼

¬êœ§"@¥,
ˆ}¬êœà"°x¦tœð
øí¬êœ™# è§÷ä `
h]¬êœÒ#X¨gT|Ð
ØÍ¬êœ‹$È©×Äì@
H=¬êœÄ$p8ªG4\°
¸­¬êœý$ ਫ·¤Ì 
(¬êœ¶%@P¬'<
˜¬êœï%Àˆ­¬
ý¬êœ¨&0ø®ôùx‹’ûK
 FlagÁÐ Kf»Kfüá|"qúvƒ 
©ù x…šK x“šKùx… Kžúùx’(K¦ùì¦ùô¨ùùxŒ’úK©ùšêK©ùšêK©ùšêK©ùšêK©ùšêK©ùšêK©ùšêK©ùšêK©ùšêK©ùšêK©ùšêK©ùšêK©ùšêK©ùšêK©ùšêK©ùšêK©ùšêK¦ùùD#©x‡•K¯‰»yx¥•Kž"°‰»Ÿ:±‰»5 R²‰»M¡j³‰»e¢´‰»}£šµ‰»¤²‰»­¥Ê·‰»Å¦â¸‰»Ý§ú¹‰»õ¨º‰»©,»‰»(ªF¼‰»B«`½‰»\¬z¾‰»v­¿‰»®´¦ùùxõ”GK‰xõ”K
Kv»ûîžûGMGë€+°‰»8+Ÿ8Šë€h±‰»uh uÁÇÁ뀥²‰»²¥¡²þÿë€ã³‰»ðã¢ð<C>ë€#´‰»0#£0|ƒ~ë€cµ‰»pc¤p¼Ã¾ë€£‰»°£¥° üþë€ã·‰»ðã¦ð
 <C> ë€#¸‰»0#§0 
|ƒ~
ë€c¹‰»pc¨p  ¼Ã¾ 뀣º‰»°£©°
 üþ ë€ã»‰»ðãªð
<C>
ë€#¼‰»0#«0|ƒ~ë€c½‰»pc¬p¼Ã¾ë€£¾‰»°£­°üþë€ã¿‰»ðã®ð< ©ù 
  
Ve¸¦ù¨ù©ù©ù©ù©ùz©ùu©ùp©ùk©ùf©ùa©ù\©ùW©ùR©ùM©ùH©ùC©ù>©ù9, "+¯‰»'žE°‰»AŸ_±‰»[ y²‰»u¡³‰»¢­´‰»©£Çµ‰»Ã¤á‰»Ý¥û·‰»÷¦¸‰»§/¹‰»+¨Iº‰»E©c»‰»_ª}¼‰»y«½‰»¬±¾‰»­­Ë¿‰»Ç®2‰»"OK"Á3 ‰» "CANCELLED"Á4‰» "UNKNOWN"Á5‰»"INVALID_ARGUMENT"Á6‰»"DEADLINE_EXCEEDED"Á7 ‰» "NOT_FOUND"Á8‰»"ALREADY_EXISTS"Á9‰»"PERMISSION_DENIED"Á:‰»"RESOURCE_EXHAUSTED"Á;‰»"FAILED_PRECONDITION"Á<‰» "ABORTED"Á= ‰»"OUT_OF_RANGE"Á>
‰»"UNIMPLEMENTED"Á?‰»
"INTERNAL"Á@ ‰»
"UNAVAILABLE"ÁA ‰» "DATA_LOSS"ÁB‰»"UNAUTHENTICATED"Á1•ã*KîxKšùxÀšPKù’¹•:K«ÙxçšKù–¹•:KÖ1‘ KîŸÞ)xÈšKfù‘)KQ•¢/K ù‘/K ø ´Kx–œKùxž›xKù’­šWK®ùxá›'Kù–­šWKÙyx¿›K!x²›Kî¹´n·C[ÿÿx™£Kœùx¤œõK«®ùxߢ,K¤Ù2yx¶œKAIx£K ixˆKÙx˜K
)xÍKK
šêK!x¤ŸKùx¬Ÿ)K K|žú xÖŸK ùx¬Ÿ,K# ùx«Ÿ-K xØŸKùxûŸK yxþŸK
!xþŸK   #
*Axƒ K
Ky :
Qxƒ KX
 xŒ K IxÀ K   ™xÌ K
axÌ K !xÌ K )
0)xÑ K
Kx:9xÑ K\ x× K
!xÙ K
«
1xÙ K xÞ Kùx´ +K
 
 
& xß KùxŽ tK ' x‚¡K 
¸ x¡K
  1x¤¡K x©¡K* *
PùxþžËK xÈ¡K  ñŸêKšêK K|žú    þùõïëò 
êù˜
â6 ßÛâØÔÛÑØ÷
ÿБš È Å@
HÃÜšP
¾º
ÑØ³¯¸=Ò«´`¨¯¥ ¡Ç  È
ï  ©¢ óŸêKšêK!£"Ÿ#¦#¯K|žúœ$£$%#¦&$%¸ &%$"#$$'(ƒ)Š)"£
«ù˜)³(zÎ( w)s*z*p+l,s-i.p."
h‘š.-`¸,-].Ø
à[Üš,è+VR,N
*+i+p*K-G'PÕj)C'Lø@(G'=/9_ /`
/8!A3#:" õŸêK!šêK0;172>2GK|žú43;3142>534P 543.123)3%678"81;
Cù˜8K7f7 8 99:; <==1'
/‘š=1<øP;<õ=p
xóÜš;:îê;æ
9::9ã<ß6èm  8Û6ä Ø7ß6Õ>Ñ÷ >ø
>Ð0ÙË2Ò1 ÷ŸêK0šêK?Ó
@Ï
AÖ
Aß
K|žúÌ
BÓ
BÉ
CAÖ
DBCè
 DCB!Æ
@ABÁ
B½
E·
F³
Gº
G@Ó

Û
²
ù˜Gã
F"ª
þ
F&# §
G£
Hª
H 
Iœ
J£
K
L 
L@¿

Ç
˜
‘šLÉ
K$
è
JK
L 
 
ÜšJ I%

J~

HI
I 
H{
Kw
E
 'š Gs
E|
( 'p
Fw
Em
Mi

 M
(
·
Mh
?q
c
Aj
@ ùŸêK?šêKNk
Og
Pn
Pw
K|žúd
Qk
Qa
RPn
SQR
 SRQ)^
OPQY
QU
TO
UK
VR
VOk

s
J
ù˜V{
U*B

U.+ ?
V;
WB
W8
X4
Y;
Z1
[8
[OW

_
0
‘š[a
Z,(

YZ%
[ 

¨
#
ÜšY°
X-

Y

WX1
X8
W
Z
T
/2V
T
À/
U
T
\
'
 \(
0
O
\
N
û P
O ûŸêKNšêK]^ÿ__K|žúü``ùa_b`a ba`1ö^_`ñ`í cç dã eê e^
  âù˜ed2Ú. d63 × eÓ fÚ fÐ gÌ hÓ iÉ jÐ j^ï
÷ È‘šjùi4À hi½ j8
@ »ÜšhHg5² h® 
fgÉ gÐ f« i§ c°5 7Ê e£ c¬X 7  d§ c k¿ kÀ8
ç k˜]¡_š^ ýŸêK]1ÿšêKlmnžn§K|žúoopnžqop° qpo9Žmnoo
r
s{
t
tm
£
zù˜t«s:rÆ
s>; o
tk
ur
uh
vd
wk
xa
yh
ym

`‘šyx<X°
wxU
yÐ
Ø
SÜšwàv=NJ
wF

uva
vh
uC
x?
rHÍ
?b
t;
rDð
?8
s?
r5
z1W
zX@

z0l9+n2m ÿŸêKl1šêK{3|/}6}?K|žú,~3~)}6~I ~A(|}~#~   ƒ ƒ|9
A ù˜ƒJBf FC  ƒ
        ˆ ˆ|0
8  ‘šˆ;D[  ˆ~
 ÜšEþú ÷ 
  ø õ ÿ G ƒó ý© Gñ ù ð í H
< î{÷é}ð| ŸêK{šêKŠòïŒ÷ŒK|žúîö펌üŽ ŽIòŒðí è å í 
 çù˜Já5 NK ß Ü ä Û Ø à × ß 
 Ù‘š LÓ+ Ò N
V ÑÜš_MÎÊ Ç 
ä ì È Å ÏT Oé à Íy OÁ É À ˜½ã ˜åP
  ˜¾ŠÈºŒÂ ƒŸêKŠ1…šêKÆšÃËÕK|žúœʜÁОœå žœQÆšœÄœÁ
Ÿ¼
 ¹
¡Á
¡šÜ
ä
»ù˜¡í Rµ 
 VS ³
¡°
¢¸
¢¯
£¬
¤´
¥«
¦³
¦šÔ
Ü
­‘š¦ß¥T§ÿ
¤¥¦
¦"
*
¥Üš¤3£U¢ž
¤

¢£¸
£À
¢œ
¥
Ÿ£(
W½
¡
Ÿ¡M
W
 
Ÿ
§·
§¹X
à
§œŽšŸêK1‡šêK¨š©ªŸª©K|žú«ž«¬ª¤­«¬¹ ­¬«Yš©ª«˜«®¯°°©°
¸ù˜°Á¯Zݯ^[ °±Œ±ƒ²³ˆ´µµ©¨
°‘šµ³´\{Ó³´zµö
þyÜš³²]vr³o
±²Œ²±p´m®wü_°k®u!_i¯q®he `
´f¨pbªj©ŸêK¨1‰šêK·n ¸k ¹s ¹} K|žúj ºr ºi »¹x ¼º»  ¼»ºan ¸¹ºl ºi ½d ¾a ¿i ¿¸
Œ c ù˜¿• ¾b] ± ¾fc [ ¿X À` ÀW ÁT Â\ ÃS Ä[ ĸ| 
U ‘šÄ‡ ÃdO § ÂÃN ÄÊ 
Ò M ÜšÂÛ ÁeJ F ÂC 
ÀÁ` Áh ÀD ÃA ½K Ð!ge!¿? ½I õ!g= ¾E ½< Å9 _  Åa h
ˆ Å: ·D 6 ¹> ¸ŸêK·1‹šêKÆB#Ç?#ÈG#ÈQ#K|žú>#ÉF#É=#ÊÈL#ËÉÊa# ËÊÉiB#ÇÈÉ@#É=#Ì8#Í5#Î=#ÎÇX#
`#7#ù˜Îi#Íj1#…#Ínk /#Î,#Ï4#Ï+#Ð(#Ñ0#Ò'#Ó/#ÓÇP#
X#)#‘šÓ[#Òl##{#ÑÒ"#Óž#
¦#!#ܚѯ#Ðm##Ñ#
ÏÐ4#Ð<#Ï#Ò#Ì#¤$o9$Î#Ì#É$o#Í#Ì#Ô
#3# Ô5#p
\#Ô#Æ#
#È#ÇŸêKÆ1šêKÕ&Ö&×&×%&K|žú&Ø&Ø&Ù× &ÚØÙ5& ÚÙØq&Öר&Ø&Û &Ü &Ý&ÝÖ,&
4& &ù˜Ý=&Ür&Y&Üvs &Ý&Þ&Þÿ%ßü%à&áû%â&âÖ$&
,&ý%‘šâ/&át÷%O&àáö%âr&
z&õ%Üšàƒ&ßuò%î%àë%
Þß&ß&Þì%áé%Ûó%x'w
'Ýç%Ûñ%'wå%Üí%Ûä%ãá%& ã &x
0&ãâ%Õì%Þ%׿%Ö ŸêKÕ1šêKäê(åç(æï(æù(K|žúæ(çî(çå(èæô(éçè ) éèçyê(åæçè(çå(êà(ëÝ(ìå(ìå)
)ß(ù˜ìzÙ(-)ë~{ ×(ìÔ(íÜ(íÓ(îÐ(ïØ(ðÏ(ñ×(ñåø(
)Ñ(‘šñ|Ë(#)ïðÊ(ñF)
N)É(ÜšïW)î}Æ(Â(ï¿(
íîÜ(îä(íÀ(ð½(êÇ(L*á)ì»(êÅ(q*¹(ëÁ(ê¸(òµ(Û( òÝ(
)ò·(äÁ(³(æ»(å ŸêKä1‘šêKó¿+ô¼+õÄ+õÎ+K|žú»+öÃ+öº+÷õÉ+øö÷Þ+ ø÷öÀ+ôõö¾+ö»+ù¶+ú³+û»+ûôÖ+
Þ+µ+ù˜ûç+ú°+,úƒ °+û­+üµ+ü¬+ý©+þ±+ÿ¨+°+ôÑ+
Ù+ª+‘šÜ+ÿ¥+ý+þÿ¤+ ,
(,£+Üšþ1,ý¡++þš+
üý·+ý¿+ü›+ÿ˜+ù¢+'-½,û—+ù¡+M-–+úž+ù•+’+¸+ º+ˆâ+”+óž++õ˜+ôŸêKóIx±¢K xË¢K ùxØœõKùx„ÈKùxɃKùx Ÿ©K
%+17=CIOU[agùx’¢:K^1Ë/¬/³, ©ùŠ/žúˆ/l/^/e///›ö/±.£.ŸÞ¡.ŸÞª.›ö¢.Œ-5-›ö 0žú0ë/Ý/ä/–//›öŽ/0/"/ŸÞ /ŸÞ)/›ö!/Š÷ .²-›ö†0žú„0h0Z0a00
0›ö 0­/Ÿ/ŸÞ/ŸÞ¦/›öž/Š÷†./.›ö1žú1å0×0Þ00Š0›öˆ0*00ŸÞ0ŸÞ#0›ö0Š÷/¬.›ö€1žú~1b1T1[1
11›ö1§0™0ŸÞ—0ŸÞ 0›ö˜0Š÷€/)/›öý1žúû1ß1Ñ1Ø1Š1„1›ö1$11ŸÞ1ŸÞ1›ö1Š÷ý/¦/›öz2žúx2\2N2U222›öÿ1¡1“1ŸÞ‘1ŸÞš1›ö’1Š÷z0#0›ö÷2žúõ2Ù2Ë2Ò2„2~2›ö|222ŸÞ2ŸÞ2›ö2Š÷÷0 0›öt3žúr3V3H3O33û2›öù2›22ŸÞ‹2ŸÞ”2›öŒ2Š÷t11›öñ3žúï3Ó3Å3Ì3~3x3›öv33
3ŸÞ3ŸÞ3›ö 3Š÷ñ1š1›ön4žúl4P4B4I4û3õ3›öó3•3‡3ŸÞ…3ŸÞŽ3›ö†3Š÷n22›öë4žúé4Í4¿4Æ4x4r4›öp444ŸÞ4ŸÞ 4›ö4Š÷ë2”2›öh5žúf5J5<5C5õ4ï4›öí444ŸÞ4ŸÞˆ4›ö€4Š÷h33›öå5žúã5Ç5¹5À5r5l5›öj5 5þ4ŸÞü4ŸÞ5›öý4Š÷å3Ž3›öb6žú`6D666=6ï5é5›öç5‰5{5ŸÞy5ŸÞ‚5›öz5Š÷b4 4›öß6žúÝ6Á6³6º6l6f6›öd66ø5ŸÞö5ŸÞÿ5›ö÷5Š÷ß4ˆ4›ö\7žúZ7>70777é6ã6›öá6ƒ6u6ŸÞs6ŸÞ|6›öt6Š÷\5 truncatedÁ98´8flagÁø7І8І8"І81І,8@І98OІF8 ^ІS8
mІ`8 |Іm8 І{8
šІ‰8©І—8¸І¥8ÇІ³8ÖІÁ8åІÏ8ô'
09â8K|žúò8K|žú9K|žú9K|žú"9K|žú29K|žúB9K|žúR9K|žúb9K|žúr9K|žú‚9K|žú’9K|žú¢9K|žú²9K|žúÂ9K|žúÒ9K|žúâ9K|žúù•×$!KC[îÁKÄù’òOKù–»’8KÔÑ’Kî!’K7Ù•Ü$K9’ÅKÚKÎù’?K ¯K¼Þ)’¥K9Ç< ˜KÐù’ÂVK„<Ùá’îKî!’×K!’ÊK´JC[îó’KÔsî!–Ó’Kbé pÔÝîjñÆÙ•Ï%KC[)•„&KŒ&KC[ù•â')K K|žúŒ(Kù•â',KC[' C[ J˜?î(KI•Ì(K á•À(K
Û(K1•þ(KC[   K|žú  
 C[' 
C[  K
  š@
î þú
 õðC[÷þK|žúôðC[ C[ 6…Aîíéðæ
âÞC[æíöK|žúãßC[ C[ %tB îÜØßÕ
ÑÍC[ÕÜåK|žúÒÎC[ð C[ cC#îËÇ Î Ä
 À ¼C[Ä#Ë#ÔK|žúÁ$½%$C[ß %C[$ "#$RD&!"îº#&½&³
&!¯&«C[³)º)ÃK|žú°*¬+*C[Î +C[* ò()*AE)'(î©)¥ ,¬ ,¢ 
,'ž ,š C[¢/©/²K|žúŸ010C[½ 1C[0 á./00F,-.î˜/
2
2

2-
2
C[5˜5¡K|žúŽ6Š76C[¬ 7C[6 Ð456G/34î5ƒ 8Š 8 
83| 8x C[;;K|žú}<y=<C[ =C[<
¿:;<H29:îv;r >y >o 
>9k >g C[o Av A K|žúl Bh CBC[Š  CC[B ® @ABýH5?@îe Aa
Dh
D^

D?Z
DV
C[^
Ge
Gn
K|žú[
HW
IHC[y
 IC[H 
FGHìI8EFîT
GP
JW
JM

JEI
JE
C[M MT M] K|žúJ NF ONC[h  OC[N
Œ LMNÛJ;KLîC M? PF P< 
PK8 P4 C[< SC SL K|žú9 T5 UTC[W  UC[T { RSTÊK>QRî2 S. V5 V+ 
VQ' V# C[+
Y2
Y;
K|žú(
Z$
[ZC[F
 [C[Z j
XYZ¹LAWXî!
Y
\$
\

\W
\
C[_!_*K|žú`a`C[5 aC[` Y^_`¨MD]^î_ bb 
b]bC[ eeK|žúfgfC[$ gC[f
Hdef—NGcdîÿeûhhø
hcôhðC[y•*K «*K†”KÕHù–Ò“4Kù•»%ñKù•€&¬Kù•×K
%+17=CIOU[agù•ì)@Kýç;KKx9•(K»O«1•—(KµOÖ¯O<Kx8îO«3ãOÖÝOjKxfP«aPÖ P˜KxJP«?PÖ9PÆKxÂxP«½mP"ÖgP"ôKxð¦P«ëP%Ö•P%"KxÖP«ÌP(ÖÆP(SKxPQ«LýP+Ö÷P+Kx8Q«}.Q.Ö(Q.µKx²iQ«®_Q1ÖYQ1æKxãšQ«ßQ4ÖŠQ4KxËQ«ÁQ7Ö»Q7HKxEüQ«AòQ:ÖìQ:yKxv-R«r#R=ÖR=ªKx§^R«£TR@ÖNR@ÛKxØR«Ô…RCÖRC Kx ÀR«¶RFÖ°RFiî!è“Ki•¿%KY!•Û'K›öžúL0'°5›ö?žú|`Wàe›öožú¬›öŸžúÜÀ·@Å›öÏžú ðçpõ›öÿžú<  %›ö0žúmQHÑV›öažúžy›öžúϳª3¸›öÞúäÛdé›öôžú1 ›ö%žúbF=ÆK›öVžúwn÷|›öžúĨŸ(­›ö¸žúõÙÐYÞ›öéžú&
Š›öžúW;2»é…X´±І]Іj ІwІІІž!І« 'І¸
-ІÅ 3ІÒ 9Іß
?ІìEІùKІQІWІ ]І-c:¸K|žúK|žú K|žú°K|žúÀK|žúÐK|žúàK|žúðK|žúK|žúK|žú K|žú0K|žú@K|žúPK|žú`K|žúpK|žúK|žú4xèñåáêšêK³ù•â'4K Î K|žú 
  
 
(  
< 
)•(K‘šiÄ »•(Kù•â';K

!•—(KÜšöù œ(KV ]d` g !•Ø(K
 
s
 
o
v rƒ)Kù•µ'îK¢)K ˜ŸêKšêKÏÖÔÛäK|žúÑØÔáó [
cÍ‘š2 ÊÆ
ÎÂÜš´¸ ¿"»Â+
'.*¸´½¯ šŸêKšêK- zDK|žú|ƒ Œ! ž ! ²
x‘šÝ8
/uq
ymÜš_ c
j¼ÃÊÆ"Í"f#m#Ö
"#Ò#Ù"Õc_hZ œŸêKšêK$Ø
%%&,'ï(*)1):K|žú'*.**+)7,*+I ,+*
]()*±
¹#‘š(ˆ' ãÚ&' (
$Üš&
% &g*n)u'q-x-..%
-.}.-
$% žŸêK$1 šêK/ƒ 0Ð1×2š 3Õ 4Ü 4å K|žúÒ 5Ù 5Õ 64â 756ô  765
!345\
dΑš33!2Ž12Ë3Ç
ÏÃÜš1µ0¹À1!5!4 !2!8#!8¼9Ã90,!
89(!9/!8+!¹µ/¾°0  ŸêK/šêK:.;{<=E">€"?‡"?"K|žú}"@„"@€"A?"B@AŸ" BA@³">?@ 
 y‘š>Þ"=90 <=v>r
znÜš<` ;dk<½"@Ä"?Ë"=Ç"CÎ"CgDnD;×"
CDÓ"DÚ"CÖ"d`:i[; ¢ŸêK:šêKEÙF&
G-
Hð#I+$J2$J;$K|žú($K/$K+$LJ8$MKLJ$ MLK^$IJK²

º
$
‘šI‰$HäÛ
GH!
I

%

ÜšG F
Gh$Ko$Jv$Hr$ Ny$ N
O
OF$ 
NO~$ O…$ N$ 

E

F ¤ŸêKEšêKPQÑ RØ S%TÖ%UÝ%Uæ%K|žúÓ%VÚ%VÖ%WUã%XVWõ% XWV &TUV] 
e Ï ‘šT4&S RSÌ TÈ 
Ð Ä ÜšR QºÁ R&V&U!&S&
Y$&
Y½
ZÄ
ZQ-&

YZ)&
Z0&
Y,&
º  P¿ ± Q ¦ŸêKPšêK[/\|
]ƒ
^F'_'`ˆ'`'K|žú~'a…'a'b`Ž'cab ' cba´'_`a
z
‘š_ß'^:1]^w
_s

{
o
Üš]a\el
]¾'aÅ'`Ì'^È' dÏ' dh
eo
e\Ø' 
deÔ' eÛ' d×' e
a
[j
\
\ ¨ŸêK[šêKfÚg'h.iñ(j,)k3)k<)K|žú))l0)l,)mk9)nlmK) nml_)jkl³
»%‘šjŠ)iåÜhi"j
&Üšh ghi)lp)kw)is) oz) o p pgƒ) 
op) p†) o)  fg ªŸêKfšêKqrÒsÙtœ*u×*vÞ*vç*K|žúÔ*wÛ*w×*xvä*ywxö* yxw
+uvw^
fБšu5+t stÍuÉ
ÑÅÜšs·r!»Âs+w+v"+t+
z%+
z¾
{Å
{r.+

z{*+
{1+
z-+
»·qÀ²r ¬ŸêKqšêK|0}}~G,ƒ,,•,K|žú‚,Š,‡,ƒ–,ƒ«, ƒ"Â,
!‘šñ,#LC~
ŽÜš~t}$x~Ñ,Ù,á,Ý,å,}ñ,
ï,÷,ô,~|y} ®ŸêK|šêKøˆFNŠ.N.ŒV.Œ`.K|žúM.U.R.ŽŒa.Žv. Ž%.Œä
ìV‘š¼.Š&ŠWT
\PÜšCˆ'HO¢.ª.Œ².Н.·.QYˆÄ.
Â.Ê.Ç.UQ[Mˆ °ŸêKšêKÎ$è/$0,060K|žú#0˜+0˜(070š˜L0 š˜(c0˜º
Â,‘š’0•)îå-*
2&Üš* %x0˜€0ˆ0…00'œ/œš0
œ˜0œ 00+'1# ²ŸêKšêK¤žòŸú ¾1¡ú1¢2¢ 2K|žúù1£2£þ1¤¢
2¥£¤"2 ¥¤£+92¡¢£
˜‘š¡h2 ,Ä!»Ÿ ¡
üÜšŸïž-ô!ûŸN2£V2¢^2 [2¦c2¦ý§§žp2
¦§n2§v2¦s2ýùž ´ŸêKšêK¨z©ÈªÐ«”3¬Ð3­Ø3­â3K|žúÏ3®×3®Ô3¯­ã3°®¯ø3 °¯®.4¬­®f
nØ‘š¬>4«/š#ª«Ù¬Ö
ÞÒÜšªÅ©0Ê#Ѫ$4®,4­44«14±94±Ó²Û²©F4
±²D4²L4±I4×Ó¨ÝÏ©ŸêK¨šêK³P!´žµ¦j5·¦5¸®5¸¸5K|žú¥5¹­5¹ª5º¸¹5»¹ºÎ5 »º¹1å5·¸¹<
D®‘š·2p%gµ¯·¬
´¨Üšµ´3 %§µú5¹6¸
66¼6¼©½±½´6
¼½6½"6¼6­©³³¥´ ¸ŸêK³I•*K¾ ¾o' ¾™*K¾x''{'Õv'p'j'd'k'r'y'€'‡'Ž'•'œ'£'ª'±'¸'¿'Æ'Í'Ô'n'¿î-$($}8Ü,$ŸÞ{ŸÞ›öI8žú†8j8b8i8ò77‡$ŸÞÖŸÞß›ö¤8žúá8Å8½8Ä8M8ââ$ŸÞ1ŸÞ:›öÿ8žú<9 999¨8=í=%ŸÞŒŸÞ›öZ9žú—9{9s9z99˜H˜%ŸÞçŸÞð›öµ9žúò9Ö9Î9Õ9^9ó£ó%ŸÞB ŸÞK ›ö:žúM:1:):0:¹9NþN&ŸÞ ŸÞ¦ ›ök:žú¨:Œ:„:‹::©Y©&ŸÞø ŸÞ!›öÆ:žú;ç:ß:æ:o: ´'ŸÞS!ŸÞ\!›ö!;žú^;B;:;A;Ê:_  _'ŸÞ®!ŸÞ·!›ö|;žú¹;;•;œ;%;º j º'ŸÞ "ŸÞ"›ö×;žú<ø;ð;÷;€;!Å (ŸÞd"ŸÞm"›ö2<žúo<S<K<R<Û;p! !p(ŸÞ¿"ŸÞÈ"›ö<žúÊ<®<¦<­<6<Ë!{!Ë(ŸÞ#ŸÞ##›öè<žú%= ===<&"Ö!&)ŸÞu#ŸÞ~#›öC=žú€=d=\=c=ì<"1")ŸÞÐ#ŸÞÙ#›öž=žúÛ=¿=·=¾=G=Ü"Œ"Ü)ŸÞ+$ŸÞ4$›öù=žú6>>>>¢=7#é…O*´¨>ІT*Іa*Іn*І{*%Іˆ*0І•*;І¢* FІ¯*
QІ¼* \ІÉ* gІÖ*
rІã*}Іð*ˆІþ*І +žІ+©І(+´6/´?|?K|žúŒ?K|žúœ?K|žú¬?K|žú¼?K|žúÌ?K|žúÜ?K|žúì?K|žúü?K|žú @K|žú@K|žú,@K|žú<@K|žúL@K|žú\@K|žúl@K|žú|@K|žú ó•KÖt`¼Þ1–Ë•K¢dÖÒ¾¼Þ^gúI•º+Kñ•Æ+K!•ß+K !
(祮+K
Ø5Hã+Kù•Æ+ Kæ+K‰•€,KI•€,K !•,K 7H,K Q•Ú,K!•ß,K   !  ã,K ù•¬,9K Û¼îä,Kù•ý+áKù•›--K Û¼î8Ý-Kï-K˜K×ù–ž—rKù•¶+ºK
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙîù–×-K)–µ—K@î>;ÖÓÅQé…Û¡•¹.Ki•À.KY•À.K
C[
Õ$3M Ì.KÑ•´.K Í.Kß.KÖ™KØù–û˜[Kî!–©™K)–›™KÙÕîÒ´&PÞ˜ð!•¹.K "%
-I•À.KÞ˜GWr &-) %!Øî
áÒåîã´8cp„ „›KÙ#„î!–ÙšK)–ËšK´W„!•§/K ô„ «/KÙ¬„îƒa´Û„2‰»"OK"Á3 ‰» "CANCELLED"Á4‰» "UNKNOWN"Á5‰»"INVALID_ARGUMENT"Á6‰»"DEADLINE_EXCEEDED"Á7 ‰» "NOT_FOUND"Á8‰»"ALREADY_EXISTS"Á9‰»"PERMISSION_DENIED"Á:‰»"RESOURCE_EXHAUSTED"Á;‰»"FAILED_PRECONDITION"Á<‰» "ABORTED"Á= ‰»"OUT_OF_RANGE"Á>
‰»"UNIMPLEMENTED"Á?‰»
"INTERNAL"Á@ ‰»
"UNAVAILABLE"ÁA ‰» "DATA_LOSS"ÁB‰»"UNAUTHENTICATED"Á1•—:K ù•—:%KÙ•¡:K»:K’ŸKÝù–ΞDK!–ïžK¼Þù–Ì•ž KAz±•¦<Ki•¦<KY•¦<K
I•¦<KÞ˜+ :1•¶<K o
»<K 1•À<K ù•¦< KÅ<K ×<Kº KÞù–úŸ@K!–™ K¼Þù–Ì•È
Kîä°8a
œ=K1•œ=K 9•¥=K @ «=K ù•œ=/KÙ•°=KÊ=Kü¡Kßù–¦¡VK!–סK¼Þù–Ì•ø Kî1–Æ¡KãßË4¹
1j£
Ÿ>K1•Ÿ>K 9•¨>K @ ®>K 9•³>K Ù•Ÿ>K¹>K º£Kàù–è¢RK!–—£K¼Þù–Ì•¸
Kî1–†£KñíÙ¦;¹
8q É•˜?K1•?K)•«?KçDK 
±•âDK ÷DKù•?!K°?Kê¤Káù–¦¤DKù–Ê­KKæa•¥?KͤK îù–Ì•òKî1–À¤KîÿûÙô<¹
9 ñ•@K1••@K)•¨@K‰•ÒEKA•ÛEK " âEK¹•ÍEK ãEKù•ˆ@&K­@Kä§Kâù– §DKù–ç°UK牕@KǧKͬù–Ì•ìKî1–º§KîúöF¹
C ù•A(K1•AK)•¯AKÈFK  ±•ÃFK ØFKù•…A0K´AKž©Kãù–Ú¨DKù–ʲiKèÙ•šAK©Kͬù–Ì•¦Kî1–ô¨KîýøÖñ<¹
9Œ
DK1•DK 9•ŠDK ? DK ±•üCK ‘DKƬKåù–í«YKî!–Ÿ¬Kîù–Ì•ÀKî1–ެK×ÓÀ4¹
1l
 H 
 ÿåùîòîìîäµ² ¹
O
²1•çDK 9•ðDK í
öDK ô ð•®KæÃî!–õ­Kîù–Ì•Kî1–ä­KxÇ´5¹
2*
 ë
þî êúæ·îôîîîæX§¹

V1•ÒEK l9•ÜEK t¬ Ž Š¼±Kç]î!–—±Kîù–Ì•¸Kî1–†±K4ß8Í=¹
:Ì
z$+!(«Ê ©°¬ ¨çvîîî
<çAÖG¹
EØ
1•ÈFK 9•ÑFK S ×FK Z V³³Kè)î!–„³Kîù–Ì•¥Kî1–ó²KÞÇ´5¹
2
 Q þT Púèîôîîîæ¾§¹
t9•ÀGK1•ÁGK %ÆGKb^ZcC[Þ˜y¤ XT PLÇGKµKéù–È´GK_Øù•§G!Kî!–ê´Kîù–Ì•KSPîN:yÞ˜lgcja©
°Á•§GKÊ“Ï éîèîâ÷ôû:gK¨gKø
ÿ

õ
 ñ
޼gKùŽÜf`KÎ
æ¢gKî†gKîåfKîëfKÃ1¹
1z ÛiKÔiK
ý ùõðjŽðiKùŽ•i[KüáþæøŽ¼iKͬ¥iKî°iKîìéÈ<¹
<¦lKÀlKx

 u
 q
ŽÔlKŠùŽïkeKN
èÙŽ«lKîlKîùkKîÿkK Ã1¹
1z ÿnKønK˜ } yupjŽ”oKŒùޏn\K|ã~èxŽànKͬÉnKîÔnKîmiH<¹
<ÁqKÓqKœ£ T PŽçqKùŽŠq]KV噎ÆqKîªqKî”qKîšqK/Ã1¹
1z ùŽ…t7K¯Ÿ¶tKž¥ V RùŽýs?K Ž»tKŽËtKùŽÂs‰KòŸÖ¡tKÙùŽ…t#K噎©tKŽêsKͬÓsKîÞsKî œtKŠ@¹
@°¿xKÏxKc_f~ ]Y UŽãxKùŽ‹xXK2牎ÄxKî¨xKî’xKî˜xKæÙ9¹
9Ì|KÅ|Kª¦ŽŠ© ˆ |wŽá|KùŽˆ|YKƒâ玭|Kͬ–|Kî¡|Kîqn*D¹
DKY `  C[Þ˜ª º Õ    } 1 ŽªKùŽä~FK7 éK Ø> îô~Kîë~KS !~!î|!/7ƒÞ˜¢!
¤‚KC[
ÊL³¤‚K48>ùNKY_nC[
ûM³ÉL𦏠œ‚K ÛîÈ‚K kg O
V

L 
H
D?k ïå‚K+1Žô‚KG ùŽø€üKv}«áü­æ§ Ž…‚KͬÐK³ëKóÜóÜ&ä–/ óÜ;øîÍÊ©¦mûlùˆ÷Öî ÿܯíÜóÜnóÜu˜†K+kC[îĆK ¹ŽĆKC[
ÒLîî³AÒ†KŽˆK ŽÚ†Kí†K Ž€‡KŽKžùŽÈ„¹KùŽ”†mK½kÔ¥†KîÁ…K³£…KîÛͬþû( :øk•â³Ã øýá8KýÀgK Kù·M)KK|žúC[ýÇvK K C[
¼K‰OK¢ ù¨LáKÖ1NKͨ®ùöM.KǨÙ¬©Ö1áNK©®ùºN.Kþ¨Ù©ýàãKKùúLKýÙÔKK$=K K ݇K
áSKKdoneÁKmlA!ßtùÄL#K¼Þ)ºLKÞîKK IterNamesÁKflagsÁKKidxÁKKsourceÁKK»OK+ÁüŠ“(
ŒK|žúY˜NK!˜NK #
*!NK
Ö7å ¢NKâ
êùöM!K¬êz
 £NKãYÜNK!ÜNK #
*!áNKÔé5E æNKB
JùºN!K¬êxj çNKO
WùúL'K
KrK|žú뺘 úNK O¢K™çk¼Þf@À¼Þ¾#A¼Þ?¤ª"K|žúù«S.KYÍSK!ÍSK #
*!ÒSKÔé51ÒSK ×SKh
où«S!K¬êzŽ ØSKùïS.KYTK!TK #
*!TKÔé51TK TKh
oùïS!K¬êzŽ œTKùªR†K
ùªR,K
K$ùìR)KK|žú}æQ ¯TK ¾TK£ùÍQñKþçùïQ(K¼Þ)åQKãß¼ÞÝ`\¼ÞZBmÃK|žú1áVK¯ ø»¸  KµK|žúC[° K C[­õVK§
ù¥VPK¼¢ÁÖ¾ˆ¯®»Ù
°Ö·¸¯®´®¯Ù°K¬§K$à™çq»VKî!²VKGþç ÝK|žúù‘Å KC[ó’K©ù’»’8KótÔÑ‘Ê K!’Ó’K3ît9?
FÁ‘Ê K
Ôa° øä K±©«î¨ÆÁ‘­
K
±‘­
KÞ˜+ñ‘¨
K ø Å
K†”Kªù’Ò“4K!’è“KîŠ(³îó•K«³í²Öç²ⲟÞ1’Ë•K1 K îi K
 !‘ KÔé? K¹«³³†³ŸÞ¤¼Þµã³ù‘ï "K!Œ K "
)á‘ï K
×5I  KXù‘é (K|ù‘ç
-K Û¼
!‘Ú K ÛîQ‘
K!
K ! ø š
Kù‘ã 9K Û¼
K ¼K˜K¬ù’ž—rKù‘¬ pKÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙù’×-K)’µ—Kä–âÞù‘¬ 3KîYAî?´I´ƒÑù‘+K!‘¬K "
)ù‘%KÊ“4H°Kù‘1K ø±KÖ™K­ù’û˜[K!’©™K)’›™KîÀ»´I¯¶ª¶ ¦¶ ø¡¶„›K®“¶Ù·!’ÙšK)’ËšKî´ß¶!‘¯K 
ù‘#K
Ù8Ÿ·³KŠ· ø…·ä®ÏÉî÷· ´ã©·1‘K K
 A˜K
ÝAQ‘˜K¡K’ŸK°ù’ΞDK!’ïžKŸÞù’Ì•ž K¼Þ¢B1íK îy‘íK
 1ôK
ÞAA‘ôKûKº K±ù’úŸ@K!’™ KŸÞù’Ì•È
K¼Þ¢B1ÒK î9‘äK îÑ‘ÒK
 QÙK
ß\D™‘ÙKëK ü¡K²ù’¦¡VK!’סKŸÞù’Ì•ø K1’Æ¡K¼ÞÖîÁ/¹
,e1ÀK î9‘ÐK îÁ‘ÀK
 AÇK
à\D‰‘ÇK×K º£K³ù’è¢RK!’—£KŸÞù’Ì•¸
K1’†£K¼ÞÖîÁ/¹
,e 9‘¼KîyµK=090î&0-0
#0 00î0tê¤K´ù’¦¤DK)0á§+0æ%0ͤK ù’Ì•òK1’À¤Kî!11ý0 @¹
=˜9‘¨Kîy¡KJ0F0î30/060N0 -0)0 %0!0î!0ä§Kµù’ §DK/0âÂ10ç+0ǧKïŒù’Ì•ìK1’º§KîF1C1"11@H¹
E 9‘KîyKN0I0î60=0 30 /0+0î+0tž©Kù’Ú¨DK90ã§;0è50©KïŒù’Ì•¦K1’ô¨Kî/1+1
1@¹
= á‘ìK1‘ìKî9‘Kîs0z0 +0 '0ù‘ç"K øˆKƬK¸ù’í«YKT0å©‘óK!’Ÿ¬Kù’Ì•ÀK1’ެKîý:1ð>¹
;B>Eî=Dîy
aóK
å|ç K N øIE¸@'"îîîP¹
N ©‘ÞK1‘ÞKî9‘ëKî…6Œ6
6 ~6Ù‘ÙK øóK•®K¹ù’Ê­KK6æq‘åK!’õ­Kù’Ì•K1’ä­KîüK7ï>¹
;A=Dî<Cîx
)‘åK
æŽ{çòK M øIE¹@'"îîîP¹
N Ñ‘ÎK1‘ÎKî9‘àKî—7“7š7²7 77 ‰7ù‘É K øèK¼±Kºù’ç°UK7癑ÕK!’—±Kù’Ì•¸K1’†±Kîz8w8%H¹
Egcjîbiîž
¦Q‘ÕK
ç´¡ñçK X øSOºJ1,%î8î6î&Z¹
X§ ù‘Í$K1‘ÍKî9‘éKî¦8­8 £8 Ÿ8ù‘È*K øñK³³K»ù’ʲiK£8èé‘ÔK!’„³Kù’Ì•¥K1’ó²Kîþm9ð>¹
;C>Eî=Dîz
¡‘ÔK
è|ç ðK N øIE»@'"îîîP¹
N™‘ÅK1‘ÅKîä1ë1GGGGC[Þ˜5G EG`G GG  GG¼1É‘ÀK øØKµK¼ù’È´GKè1éa‘ÌKNGØï1!’ê´Kù’Ì•KîI3?H<Hî:HgCÞ˜`Hžîº
ÂQ‘ÌK
éÐØ×K8 ø40¼+ýî>î<g !“gKî)“¨gKîà @@
@  @  ø¼gKÇù“Üf`K ¹a“¢gK@æ !“†gK!“åfK)“ëfKîŠ
Ú@ ø;¹
; )“ÛiKî4mAiAîVA]A
SA OAKAîKA¤ðiKÉù“•i[K;´i“ÔiKkAáéoAæiA¼iKïŒI“¥iK)“°iKî]BZB9B(<¹
<¤ !“¦lKî)“ÀlKîú?@ ÷? ó?T øOÔlKÌù“ïkeKU»Ù“«lKÿ?è\!“lK!“ùkK)“ÿkKîRÂ@ ø;¹
; )“ÿnKî VAQAî>AEA ;A 7A3Aî3A|”oKÎù“¸n\Ki“ønKSAãÁWAèQAànKïŒI“ÉnK)“ÔnKîFBBB!B(<¹
<¤ !“ÁqKî)“ÓqKîI†AA >A :A øçqKÑù“Šq]K¸™“ÆqKoAå!“ªqK!“”qK)“šqKîNB ø;¹
; ù“…t7KÏÒî)“¶tKîÏBÖB ‡B ƒB\ øWù“ýs?K»tKËtKÓù“Âs‰K«1“¡tKÖ§Ò®ù“…t#K¡ÒÙ¸™“©tKCåÉêsKïŒI“ÓsK)“ÞsKfY“œtKîÒDiI¹
Ié !“¿xKî)“ÏxKîúFöFýFG ôFðF ìFc ø^ãxKÖù“‹xXKdº‰“ÄxKøFçk!“¨xK!“’xK)“˜xKî{ÝGÚG,D¹
D)“Ì|Kî3yHuHîbH^HeH}H \HXH THPHîPH¾á|KØù“ˆ|YK:µi“Å|KpHâtHçnH­|KïŒI“–|K)“¡|Kî„II`I]IKD¹
D¬!“Kî
T?[?ŽTŠT†TTC[Þ˜¥T µTÐT „T€T |TxT,?p
 øl
ªKÛù“ä~FKr
¼a“Ka?éy
ÄTØe?!“ô~K!“ë~K@±U®Uî¬Up@œÞ˜ÒU
¤‚KC[ÜA“¤‚K.28ùñ˜‚NKSYhC[íÜzƒ¥ !“œ‚K ÛîO ˆM„M îqM
xM

nM 
jM
fMîfM¿ ñå‚K+1ô‚KG ù“ø€üKÝt{´a“È‚KçMáeëMæåM …‚KïŒI“ÐK³A“ëKóÜ+óÜ4Õý=¨àF îOOäNÄjûiù÷ôî ÜÀíÜÇóÜóÜŽQ“˜†K{*C[1“ĆK ¹“ĆKC[
ÒL³AA“Ò†KˆKÚ†K1“í†K€‡KKàù“È„¹Kù“”†mK+©i“¥†K Ô+!“Á…K³A“£…K#ëïŒû) KÖÊ-³ÔŽÜ=4 :4
 Kù”·M)KK|žúC[74 K C[44 ‰OKä ù”¨LáKÀÝ«1”NKºÝÖ´ÝÝ®ù”öM.K ÝÙ˜ÝÞ«1”áNKÞÖûÝ®ù”ºN.KÙßÝR4Kù”úLKN4 K$‡5 ™çù”ÄL#KŸÞ)”ºLK­þç¶5 vK|žúèY”˜NK!”˜NK #
*!”NKÜš5Y¢NKF
Nù”öM!K¬êxn£NK7Y”ÜNK!”ÜNK #
*!”áNKÜš5©æNK
žù”ºN!K¬êx¾çNK§
¯ù”úL'KÞëÜK|žúìJ ëúNK ¾äº™çûŸÞöŸ¹ŸÞ·r<ŸÞ:4ŒK|žúù”«S.KY”ÍSK!”ÍSK #
*!”ÒSKÜš51”ÒSK×SKh
où”«S!K¬êzŽØSKù”ïS.KY”TK!”TK #
*!”TKÜš51”TKTKh
où”ïS!K¬êzŽœTKù”ªR†K
ù”ªR,KŠðù”ìR)KK|žúxáL¯TK ¾TKåù”ÍQñKþçù”ïQ(KŸÞ)”åQKÞÚŸÞØ[WŸÞUBmÃK|žú7:
4:  KúK|žúC[,:
K C[):
õVKé ù”¥VPKä1”áVKÇ㫾ãÖ¸ãã® ãÙ˜ãä«þãÖøã®ýÙØãK:KùB:
K${;
™çq”»VK!”²VKþç¡;
ù`K|žúð•à1
".˜º(•«1C[C[C‰»$C[D
‰»sx?¯1
°1ígï»s §£~÷¼˜ºÏ ŸÞÚŸÞ⪱·ÁûݘºÕ(–²1·1ï$çÿÿð–à1ùÿ§£JàÝR[eüÑ3@C[§£ß2Öü¯20ü²3eØ\Î2§£$¿2*œó3žtC[§£—4Øi§£$Â3~\žœâ
C[­­Ív¯ív2?eùæ×KÙ§££<Úü¾;eûØ\<üƒx
¸§£üû;"¡á´Ú;>žüÌ>9Ê»”õ”ò>5C[
élã>/X\üÆ>?ƒü¯Bb  ðü Ȥý£ ‘C 
4Ú@˜sØœü‘A# ô•A

ö% Ö¿Ȥ
³A
ü÷@> Ȥý£ ´A  ÂA4¨@ Ö¿ȤC[üŽ@! Ȥý£ ®@
 ¯C°CÞü·=ùü½@†¤ØŠLç> ¹ºÈ»ˆ¼½èw¾ˆI5";¿D¹Ȥý£ü‚>9§£$Ø= ˆˆ¿>Šé“ª-gd™&¶ð¸RØŠæ=¢¥µ„‹u¦Ì”?Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ȤÀØœ\”èMȤMý£Åõ»Þ9œžÿâŒÅD
C[
˜6,ÅD\ËDü­D* ö ÖDÝDàü¶C§Ȥ”ßC§£$ËC íé,ÑCúHúHßûHÁ‘4Ý­f‰úM÷ÀJerrorÁOçéïð—ØE
".˜º(— EC[C[E‰»$C[D
‰»sx?¤E
¥Eógï»s ý£~÷¼˜ºÏûÝןÞß§±´¾ûݘº Ò§E˜¬Eõ$ˆÿð˜ØEý£L„íT]gŒ®L
C[çé,®L\´Lü–L* ö ¿LÆLåüŸK§Ȥ”ÈKý£$´K×ê,ºKäê¦ê!Oçé(™‡M#0™…O
Ï>äê"( 4 ˜ºpC[Ö¼C[F‰»l ™‡N
±rØœ"(4˜ºèC[Ö¼úC[G‰»mM
'ŒMþ]cj
ï»x Ȥ÷¼ Øœ˜º  »ó ä꘺¢ Üó®á±ï›½]›½âñó˜ºùÖ¼)Ðó˜ºÖ¼: ßW)1C[”ÏCC[H ‰»QY_C[”ÏqC[I‰»C[”ÏŸC[J‰»­µµX
˜sØœ"(4˜ºC[Ö¼C[K
‰»"o07C[”ÏJC[L‰»Yb¡ãW
¡äWŒšï»¨ ¢¥´÷¼½Å»ó˜ºÐó'ê±ø›½N”Ï”Ï"”Ï)Ðó˜ºzÖ¼:”ÏAæW 1? P ^C[szC[ %¥8E ˜sØœ˜sØœ) ˜sØœý×%E 
®8E -³8E   ˜sØœ<
 
½8E 
¢îW ¢ïW[ rxý¡žU"ŒØœØœµXýø7LE
åО"ýéx E·
-ª8E·
-¹8EúšàÍ¥8E
”ø”ø (07»ó˜»ó U¥8EØœÄ]³8EØœ{t~¹
Œ __self_discrÁ¦ __arg1_discrÁ¾›½#__arg1_0Á7è£óW£ñW ”ø&0î
û¦C[
Ùû¦6> ¤ü
§C[
Ù§6?¹ û¦§¤½
¤¾Qš_Á¦k Á¦vû¦ û¦§Ö §á§±¨€ @ê€ û¦¦Üã û¦§øü¬XÁ¦û¦§ ˰@±Füš! C[›Ò šC[M‰»Œ©üœDû¦˜ºüšJC[²ÓC[‰»WÜÉ% ãüý/ ø¦þ. Ô‘
ãh
ãh­&§‰»‰»Ðâ 
øâþ.âŒ
ù—æÇ$ù—"$£{ @| § ïíe¼îËè¿*ù—šì$Ã!$C[
Åc‰» ‰»  c cˆ¢cµ
 `£c˜¼ `àB¤GS
ﻹ—Û$ Æ  c cˆ¢cµ
 `£c˜¼ `àB¤GS
ï»W òÇC[¯úFu\»Ÿ ¬ $ ù—»
ý$ ‚È· $õü ‚È‚ÈArgumentÁ„È´ÀbökÏ®ÝWj´â«aűù 
 C[N § ïíe¼îËè¿*¥Ñù 
 § ïíe¼îËè¿*‡Š ý›ùL äÈ
æù 

 Ÿ 
˜ºüšC[²ÓC[‰»ø ßüò; ¬ üš©C[Ô\ È
 Éü
ü×òÄi«&§[ýé t$Æb‰»1ù—°Ö$†‰»Ù—$ú€¯‰»1—µ$ª‰»*ýÅ÷ª«cÃï»\„ó ÷¼ åûÔûÔûÔ
ýÔ˜ºÎ‡‚ טºm äÈäÈ ArgumentsÁæÈtemplateÁ `çÈÀ `üöMõô]TdÆ ÆýÕ‰»Í‡Š ­‡Š « ‹‘ ÂòÇôÇ PlaceholderÁõÇ»ÀböÇ formatterÁÀb÷Ç _lifetimeÁÀbøÇùÇCountÁúLjÀb©¡â] å.Ê4Æ 0ˆ 㟇 ´$ ‰» Ö‹ À ñÇÀ·ýÕýÕ ÀÎÙãh­&§‰»‰»›Ò‡‚ ˜º¿²Ó ˜º]²Ó±Ôr–‡ 
üÑ ! C[û¦6C[
Ãû¦àˆ6î ´Ü  ñ püË 'C[d…  èwû¦Â   §š 
Ï• § ë  üþ 4 ÃE¼táSì±ì…Zd{z¢·DÏ• §
 ¿ 4
ÈÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
û¦Á´À

 C[§

%üŒ
UöŒ

 Ï Ð ü¼ §5 u{
Õ
ü¦
1 ¬– ²–  Ö


¯ê— ¹
% 4C[
™"§ê— HW `-˜ Ö¿¬– C[
Ï 
½
 Ö¿¬– 
¾  ƒuü
Vüå
Ûü¨ ˜z øÏ• §ü *ýð‹àç[ê— ¬– §u¥«¹ºÈ»ˆ¼½èw¾ˆI5";¿D¹¬– ²– ü‡ 9Á¦ ˆˆ¿>Šé“ª-gd™&¶ð¸Ràˆë¹ºÈ»ˆ¼½èw¾ˆI5";¿D¹ê— Ï• 1û¦ü
!™— ëÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¬– Õ§ÖÏ• !²– œ¬ §œ-ê— )¬– §Ú +y@ ÇÐC mapped_classify_eosÁ
ä” g§7¹š ž§
C[§üÒ
*üÛ

û¦#C[
Åû¦‚Æ6
¾
 ú
f sC[ˆC[¹š ÅŸ¨ û
üÖ ¬,<2¬– ”ÿ Á¦  ‚Æ §VÚ 4ê— 4û¦4¡B¦êC¢¢ o¹š §Ú
ü!C[Tû¦6C[
Ìû¦2´› °C[§ÖÓü° Ƨ_e ÀÇM©û¦Ë­ ª
±
Ç Î ÞC[
™"§œ§ 
ó   
® Ö¿¬– C[«¨ ¯
¦ Ö¿¬–  £ ¬ŒXkç[œ§ ¬– §¦fc õž ôçÁ¦Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ„‹Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
œ§  û¦ù§²Tœ§ ¼¬– ¬§«î§ ¾ùtrailersÁ¿µ¨¥ §»ä§  §{C[§üÉ*üÒ û¦#C[
Íû¦‚Æ6¬Ý ñf sC[ˆC[ä§ ÅŸ¨ òùüͬ,<2¬– ”öÁ¦ð£ §Sî§ 1œ§ 1û¦1ž?¦êCŸï¬ lä§ |§×Ч§

½£½£¾¿£¹À£þÁ£ exhaustedÁ1¥œMu7·Pr~˜ºï C[C[O‰»$C[P‰»ÃÈ?§ó 
§ô ¡gï»s º§~÷¼˜º  ä¯ .ì± 7°±½Çê± ˜ºeÛШ§

ä¯ C[
Ùä¯ 6>ö ž¨ú ¨û £6º§Bα Jä¯ ì± œcmæ² ¹v) ­º§  œü¹g 9)¸º§Üÿ ­­Ív¯ív2?eùæ×KÙº§´Þ º§  püå+  ä¯ ¬ú à Ê»…ɯãh ´ù ý“…0xC[
¨#ä¯ %¸…x%¾…x8
  àÊ»…Éü«3  ¤ Ý T†   Ö¿…¨üì%  …¨ÒÒ„KÔ¤KÕ¶K6’\Pä1gÕ…¨   üâø Þä 

Ö¿…¨C[ü¯! …¨Ò· 
Ï 
j Ù à ù üÍ üŸ| ýû ØŠ ý„>áD‡ y·
ýøƒÑx#üð ýû ØŠ ¹ºÈ»ˆ¼½èw¾ˆI5";¿D¹…¨Ò· üž9 º§ ¨çü þì± þ ½ø…¨ …É~Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
…¨šÞ» ¯ã ¸¼classÁ¡¼¡¶ rŒƒ 
C[çé \‰ üâ3 ¤   ¢üæµ …¨ º§ ×ê, äê¦ê!Oçéß #Ø 
Ï>äê"( 4 ˜ºpC[Ö¼C[F‰»lé 
Œv…É"(4˜ºèC[Ö¼úC[Q
‰»m²ã 
'²ä ¬]cj
ï»x …¨÷¼ …ɘº  êÁ Ü󘺟ñó¨Û±é›½W›½Üñó˜ºóÖ¼#ÿÁ ˜ºŒÖ¼4Œ

û¦".˜ºØ
C[C[R‰»$C[S
‰»sx?·Ü

·Ý
²gï»s ߨ~÷¼˜ºÏ ‡‚ Ú‡‚ ⪱·ÁãÄ ˜ºÕŒ

û¦C[¨€ 08(¸ß
­û¦¸ã
¸ä
µ:ߨFÈÄ Nû¦‡‚ šgq¨€ ·è2 ­û¦û
¸£2ߨ
û¦
ív Ð2|“
û¦¼“
C[¨€ 0
 ©
°
¾üÅk
û¦„ø
ÈÄ 
‡·
‡‚ ˆ _reqÁ$T¨€ šE# ù¶§øB
Çü«AÍ
M#øù¶§ìÕB
¼táSì±ì…Zd{z¢·Dù¶§ÄÜA
ù¶$ÍA
§ ÓA
±œ#$ ù¶§àJ
Ïü“IÍ
+$øù¶§ì½J
ôÉ ÄÄI
ù¶$µI
§ »I
±^“K
#“M

èwü©"( 4 ˜ºpC[Ö¼C[T ‰»lÀ¹šL

ÈÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ö©sy˜º9C[Ö¼LC[U‰»[Ài¹—K

'¹˜K
°½
ï»Ë ®©×÷¼àè ÚÍ S˜º\ ˆÐ h ü©ì˜ºõ ©Ð 4±B›½°›½5g¾Ð ˜ºLÖ¼|Ð ˜ºåÖ¼ù¼÷D#C[
àWC[V(‰»ù¼*#0ÙüÁPË
Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
³ôùP
‰ª$ÑP
Ï© L×P
¹C[‰ª _trailersÁ.­ÇÑ óù¿÷D#C[ÇÑ C[V(‰»ù¿*#.Úü’Râ
³”¼R
‰ª$§R
š×4­R
fC[‰ª_errorÁ+YÇÑ üìT"
 C[›Ò ìT
C[W‰»”ûT
üîT
DüìT+
C[ÔhDU
 U
 œU
U
Þü©Tt
ï»\ÖT
‰ª,°T
÷¼ ·T
ûÔÈýÔÐ%±(X›ÒúÔ­À×V
ÆÒV
Ùª Ùª$.
ÙW
W

!-˜ºÙV
C[C[X‰»$C[Y‰»rw?ÁÝV

ÁÞV
Ègï»s‘× {÷¼ƒ˜ºË °‰ Ö°‰ Þ§±´¾˜Ù ˜º ÒÂçV
ÊàV
Á˜‹ê’W
Ùª#*§X
àüóW4
SÊ|X
Á˜‹êYÙª$ƒX
7¹Z
áüÔYe
`à\§Z
ºÊgÁ˜‹ê¿Ö<¸Ùªü‘Z"
­­Ív¯ív2?eùæ×KÙÙª´ðY
ˆôü\
à
Ê»…ɯ㌉]
e¡0 ß0 
m 0 ýÆ0xC[
¨#££¹ƒ£¹„£þ-'ºˆÉ¬gŒ0è žÝ xx
üÃ]7
üÇ]2
dì]
àÊ»…É( Ë ø]
M Ö¿¯« ù]
ü©]R
¯«ÒÒ„KÔ¤KÕ¶K6’\Pä1gÕ¯« ú]
üù\Ë
4³^
 Ö¿¯«C[ü™^!
¯«’ß  ¹^
^ Ã^
Ê^

³0 5åüê[à
ýû ØŠD€]
ýÜ/XèS32·
-¨0ý«Ñxï"½—0ýû ØŠDð]
¹ºÈ»ˆ¼½èw¾ˆI5";¿D¹¯«’ß üµ\9
Ùª$\
¨ç™\
0Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¯«²¯«²…ɲéâ  jНãdü\
¬C[Ùª·˜Ý ŸŒç_

C[çé,ç_
\í_
üÇ_2
Ë ø_
ÿ_
çüÐ^¯
¯«”ù^
Ùª$å^
×ê,ë^
äêC[Ùª¦ê(Vçé½Â`
#ºb

Ï>äê"( 4 ˜ºpC[Ö¼C[F‰»lËa

Œv…É"(4˜ºèC[Ö¼úC[Q
‰»mÃÆ`

'ÃÇ`
Ó]cj
ï»x ¯«÷¼êÁ ý˜ºÿÁ Ü󘺘ñó¡Ô±â›½P›½Õñó˜ºìÖ¼ÿÁ ˜ºÖ¼-…NÉŠNà$‰¬0 ‰¬;DNŒN
-3C[Z‰»ÊNTC[[‰»!qC[\‰»>ŽC[]‰»[­C[”Ï¿ÄÌÊ‘Nâêï»öéê þ÷¼‰»!±/:”ÏE¬“X ½¾%æ˜1ìï9@$ÜX ÂØŠÅ)œ™5ØŠ=Dùl‰[K øù(4î<CùpÅ"K (î4;B$N öø%Ȥ1Øœ9@,ÿN öû%Ȥ1äê9@TªX ÿƒ%¢¥1Øœ9@ ¤¦%…¨1…É9@ ¤©%…¨1äê9@,”L
ö©ü© º-®©9ÚÍ AH\‡M
ö©ü© ½-®©9ü©AHTÀa
ËÍ%¯«1…É9@,´b
ËÐ%¯«1äê9@  
      
                   
   
       ëìÔÀü¥Pü:7 `async fn(HttpRequest) -> Result<HttpResponse, Error>`Á;út? # OverviewÁNúüR`] tower-http is a library that provides HTTP-specific middleware and utilities built on top ofÁ [tower].ÁÀúüÄ^[ All middleware uses the [http] and [http-body] crates as the HTTP abstractions. That meansÁü£YV they're compatible with any library or framework that also uses those crates, such asÁüý! [hyper], [tonic], and [warp].ÁŸú¤£ # Example serverÁ¸úü¼^[ This example shows how to apply middleware from `tower-http` to a [`Service`] and then runÁü›0- that service using [hyper] and [hyper-util].ÁÌú”Ð ```rust,no_runÁ¬ã use tower_http::{Áüù&# compression::CompressionLayer,ÁÔ  trace::TraceLayer,Á };ÁüÂ63 use tower::{ServiceBuilder, service_fn, BoxError};Áüù" use http::{Request, Response};Áüœ)& use std::net::{SocketAddr, Ipv6Addr};Á¬Æ use bytes::Bytes;ÁìÜ use http_body_util::Full;Áüú1. use hyper_util::rt::{TokioIo, TokioExecutor};Áü¬1. use hyper_util::service::TowerToHyperService;ÁÞúüâfc # async fn handler(_: Request<hyper::body::Incoming>) -> Result<Response<Full<Bytes>>, BoxError> {ÁüÉ<9 # Ok(Response::new(Full::new(Bytes::from("hello"))))Á<†  # }ÁŽ ú”’  #[tokio::main]Áü¥ -* async fn main() -> Result<(), BoxError> {ÁüÓ A> let addr = SocketAddr::from((Ipv6Addr::LOCALHOST, 8000));Áü•
B? let listener = tokio::net::TcpListener::bind(addr).await?;矯
1. println!("Listening on http://{}", addr);ÁŠ ú loop {Áü 74 let (socket, _) = listener.accept().await?;ÁÕ úüÙ %" tokio::spawn(async move {Áüÿ 2/ let socket = TokioIo::new(socket);Á² úü¶ -* // Build our middleware stackÁüä 30 let service = ServiceBuilder::new()Áü˜
63 .layer(TraceLayer::new_for_http())ÁüÏ
30 .layer(CompressionLayer::new())Áüƒ)& .service_fn(handler);Á­úü±$! // Wrap it for hyperÁüÖFC let hyper_service = TowerToHyperService::new(service);Áúü¡da if let Err(err) = hyper_util::server::conn::auto::Builder::new(TokioExecutor::new())Áü†<9 .serve_connection(socket, hyper_service)ÁÔà .awaitÁŒÞüðEB eprintln!("failed to serve connection: {err:#}");ÁŒ¶ });Á ```ÁðúüôSP Keep in mind that while this example uses [hyper], tower-http supports any HTTPÁüÈMJ client/server implementation that uses the [http] and [http-body] crates.Áú¤š # Example clientÁ¯úü³>; tower-http middleware can also be applied to HTTP clients:Áòú”öÝþ ¬‰øþ üŸ*' decompression::DecompressionLayer,ÁüÊ*' set_header::SetRequestHeaderLayer,ÁÔõÆÿ ü*' classify::StatusInRangeAsFailures,Áéÿ üÂ52 use tower::{ServiceBuilder, Service, ServiceExt};Áüø@= use hyper_util::{rt::TokioExecutor, client::legacy::Client};Áì¹µ
¬×
üí96 use http::{Request, HeaderValue, header::USER_AGENT};Á§ú”«¯„
¬¾ async fn main() {ÁüÔDA let client = Client::builder(TokioExecutor::new()).build_http();Áü™.+ let mut client = ServiceBuilder::new()ÁüÈ@= // Add tracing and consider server errors and clientÁü‰" // errors as failures.Áü¬# .layer(TraceLayer::new(ÁüÐNK StatusInRangeAsFailures::new(400..=599).into_make_classifier()Á ))Áü®96 // Set a `User-Agent` header on all requests.Áüè52 .layer(SetRequestHeaderLayer::overriding(ÁÜž USER_AGENT,Áüº;8 HeaderValue::from_static("tower-http demo")Á͘
ü…)& // Decompress response bodiesÁü¯-* .layer(DecompressionLayer::new())ÁüÝ74 // Wrap a `Client` in our middleware stack.Áü•;8 // This is possible because `Client` implementsÁüÑ  // `tower::Service`.Áìò .service(client);ÁúÌ” // Make a requestÁü®(% let request = Request::builder()Áü×&# .uri("http://example.com")Áüþ+( .body(Full::<Bytes>::default())Á´ª .unwrap();ÁÁúìÅ let response = clientÁ¤ã .ready()Á”ø .awaitÁ¬‹  .unwrap()ÁÔ¡  .call(request)Á”¼ ÏŸ
´Ï áž
øŽ

ô úœø  # Feature FlagsÁŒ!úü!UR All middleware are disabled by default and can be enabled using [cargo features].Áæ!úüê!TQ For example, to enable the [`Trace`] middleware, add the "trace" feature flag inÁ´¿" your `Cargo.toml`:ÁÖ"ú\Ú" ```tomlÁüæ":7 tower-http = { version = "0.1", features = ["trace"] }Á<¡#
©#úü­#.+ You can use `"full"` to enable everything:ÁÜ#ú\à#‡£
üì#96 tower-http = { version = "0.1", features = ["full"] }Á<¦$
®$ú”²$ # Getting HelpÁÅ$úüÉ$a^ If you're new to tower its [guides] might help. In the tower-http repo we also have a [numberÁü«%`] of examples][examples] showing how to put everything together. You're also welcome to ask inÁüŒ&OL the [`#tower` Discord channel][chat] or open an [issue] with your question.ÁÜ&úüà&+( [tower]: https://crates.io/crates/towerÁüŒ')& [http]: https://crates.io/crates/httpÁü¶'30 [http-body]: https://crates.io/crates/http-bodyÁüê'+( [hyper]: https://crates.io/crates/hyperÁü–(52 [hyper-util]: https://crates.io/crates/hyper-utilÁüÌ(B? [guides]: https://github.com/tower-rs/tower/tree/master/guidesÁü)+( [tonic]: https://crates.io/crates/tonicÁü»))& [warp]: https://crates.io/crates/warpÁüå)MJ [cargo features]: https://doc.rust-lang.org/cargo/reference/features.htmlÁü³*85 [`AddExtension`]: crate::add_extension::AddExtensionÁüì*FC [`Service`]: https://docs.rs/tower/latest/tower/trait.Service.htmlÁü³+$! [chat]: https://discord.gg/tokioÁüØ+>; [issue]: https://github.com/tower-rs/tower-http/issues/newÁü—," [`Trace`]: crate::trace::TraceÁüº,KH [examples]: https://github.com/tower-rs/tower-http/tree/master/examplesÁëìÔÀLZ]`¬ˆ64—6ü+ô% D ö J K*M P ó<, Gets a reference to the underlying service.ÁüZ/88 8ÂT<™   ¦ ¡8(¨ «8¤ ¬ ® Ð ¼8 Á8áS<4 Gets a mutable reference to the underlying service.ÁüÛ788 Ÿ8ÑT © ³ ª8«8(µ ¸8¹8¤ ½ ¿ å Í8Î8 Ö8áS,×<3 Consumes `self`, returning the underlying service.Áüð68¯8 ³8àT À Å8(Ç8¤ Ê Ì í8 Þ8áS% ôÄ‘ ª ž ° â, ± ² ½+ ³ ´ ¼, µ8¸ & ·8û$¸
¾8À8!, É8Ð & Î8¼ Õ, ×8actualÁ& Þ8´ß% á*ä ç À8×. ü þ º
, Œ  + Ž  , 8¸ 
88!, Ÿ8Ð  ¤ ¥ §, ©8¥¶
% °% Á È , É Ê Õ+ Ë Ì Ô, Í8¸ Î& Ï8û
Ö8Ø8!, á8Ð & æ8¼ ì, í î û, ï8paramÁ& õ8¼$ ü
ý þ , 8¥¶
& 8´Š% Œ*  )8 
„œ'¬8 pin_projectÁ ¹ » Ö, É Ê Ð+ Ë Ì Ï, Í8¸ Î
Ñ8ß8, ê8Ð  ï, ð ñ ø, ò8Ù¹
$ ù
ú û ý Ì+   8ÿ
8¦ © ¯88áS& , ¸8¥¶
8 å, æ ç î, è8Ù¹
$ ï
ð ñ, ó8Ð  ø, ù ú , û8Ù¹
$ 
ƒ   õ8  8,˜8 Ÿ8æ ¢ ¥ ´8áS& «, ­8¥¶
(8 ¾ ë8 Õ Ý8áS,×8$€  ,   , 8Ù¹
,ˆ $ Ž 
 8â L ' 8BodyÁ$ 8
¢ , ¦ 8Ð  « , ¬  ­  ´ , ® 8Ù¹
$ µ 
 ·  ¹  M8!8DataÁ Ñ  Ó , Ô 8¥¶
8Ü 8â 'è 8åÀ
 î 'ï 8êÁ
% õ 8!
8Ï>,ˆ
 Ž

,
8¥¶
4
8
8â
'¥
8åÀ
 «
'¬
8Ï>
% ³
+ Â
 Ã
 Ê
8Ý
8 Ø
8
poll_frameÁ
 å
 Ô 8
& û
8Àý
' 8ÿ
 ' 8Ä   Š  8Œ 8$  $ 8™ñ§ & ©  « 8¬ 8À° '³ 8taskÁ '¹ 8k   :8à  Å $ Æ (Ö 8ÀÙ 'Ü 8ÓÅ
'â 8·  è 8¬  ï 8Í  ö 8â ' 8FrameÁ,  8$ˆ 'Œ 8êÁ
 $ 8$• ' 8Ï>,    ¢  ¤  æ  8  º 8âX  Â  Ã  Ä 8áS  Ê 8ŠÄ
 Õ  Ø 8™ñÖ + õ  ö  ý 8Ý 8 
8
is_end_streamÁ

 ¡
 œ
8$
(£
8º
 «
 õ
8â
'Æ
8åÀ
'Ì
8É
 Û
 ç
 Ü
8
 á
8áS
+   Œ8Ý4†8 š8 size_hintÁL ¦ ¬ §8(®8â 'º8©Í Å 8â L×'à8åÀ
'æ8îÊ
 ñ ý ò8 ÷8áS% œÔ¹ Ô Ë Ú Ÿ, Û Ü ç+ Ý Þ æ, ß8¸ à& á8û
è8ê8!, ó8Ð & ø8¼ þ, ÿ  , 8Ù¹
,& 8¼,ˆ$ Ž   , 8¥¶
4•& 8´œ% ž*¡ ¤ ÉK8 
„®'¾8éº
 Ë Í Ý, Û Ü â+ Ý Þ á, ß8¸ à
ã8ñ8, ü8Ð  ,  ƒ Š, 8Ù¹
,…$  Œ   Ó+ ¡ ¢ ¦8ÿ
£8áS,¸& ½, ¿8¥¶
8 ì, í î õ, ï8Ù¹
$ ö ÷ ø, ú8Ð  ÿ,   ˆ, 8Ù¹
$  Š    8 ž ¤88 ¦8æ © ¬ »8áS,­& ², ´8¥¶
(½8 Å 8 Ü ˆ8áS8 ¯, ° ± ¸, ²8Ù¹
$ ¹ º »8À½'À8×Â'Å8p8
Í, Ñ8Ð  Ö, × Ø ß, Ù8Ù¹
$ à á â ä £
8 ò8×õ ø Ÿ ù8$ þ8± &  ƒ88Àˆ'8×'8ˆL :8œ ž(¡8À¤'§8ש'¬8Í µ 
8± Ç È8 debug_tupleÁ Ô æ8Ô Þ ß å, à8Ð  ç8Â í  î8ë ú û 7...Á ƒ8finishÁ4„ Š 8 ², ³ ´ », µ8Ù¹
$ ¼ ½ ¾8ÀÀ'Ã8ŸU'Ë8Ü>8
Ô, Ø8Ð  Ý, Þ ß æ, à8Ù¹
$ ç è é8$, 8¥¶
4†& Œ8ÀŽ'8ŸU4“'8Ü>4$ ¡ « Ã!8!8° Å Ç, È8¥¶
8Ð8ÀÓ'Ö8ŸU'Þ8Ü> æ'ç8°% ï+ ý þ 8Ý4ÿ8 8Š $– š Ú8$& Ÿ8À¡'¤8ÿ
¦'©8Ä « ® ¯8°8 ¸$ ¹8™ñ»& ½ ¿8À8ÀÄ'Ç8ÓÅ
'Í8k Ö:8× Ù(Ü8Àß'â8ÓÅ
'è8· î8'ó8° û ý ¹ 8$ 8âX<”  œ 8áS £8Š  ¨ «8™ñ©¼°Eü*' Middleware for following redirections.Á+út/Øù >úüB`] The [`FollowRedirect`] middleware retries requests with the inner [`Service`] to follow HTTPÁŒ£ redirections.Áµúü¹\Y The middleware tries to clone the original [`Request`] when making a redirected request.Áü–]Z However, since [`Extensions`][http::Extensions] are `!Clone`, any extensions set by outerÁüôZW middleware will be discarded. Also, the request body cannot always be cloned. When theÁüÏ\Y original body is known to be empty by [`Body::size_hint`], the middleware uses `Default`Áü¬b_ implementation of the body type to create a new request body. If you know that the body can beÁü\Y cloned in some way, you can tell the middleware to clone it by configuring a [`policy`].Áìú # ExamplesÁÿú”ƒ ## Basic usageÁú
ü¢"¹€

ìÛµ
üù52 use tower::{Service, ServiceBuilder, ServiceExt};Áü¯GD use tower_http::follow_redirect::{FollowRedirectLayer, RequestUri};Á÷ú¤û # #[tokio::main]Áü?< # async fn main() -> Result<(), std::convert::Infallible> {ÁüÐHE # let http_client = tower::service_fn(|req: Request<_>| async move {Áü™ 2/ # let dest = "https://www.rust-lang.org/";ÁüÌ 2/ # let mut res = http::Response::builder();Áüÿ  # if req.uri() != dest {Á¼ 
 # res = resÁü¸
>; # .status(http::StatusCode::MOVED_PERMANENTLY)Áü÷
85 # .header(http::header::LOCATION, dest);Á  # }Áü¼ XU # Ok::<_, std::convert::Infallible>(res.body(Full::<Bytes>::default()).unwrap())ÁL•  # });ÁüŸ *' let mut client = ServiceBuilder::new()ÁüÊ *' .layer(FollowRedirectLayer::new())Áôõ  .service(http_client);Á
úü˜
$! let request = Request::builder()Áü½
&# .uri("https://rust-lang.org/")Áüä
'$ .body(Full::<Bytes>::default())Á”Œ .unwrap();ÁŸúü£>; let response = client.ready().await?.call(request).await?;Áüâ! // Get the final request URI.Áü„c` assert_eq!(response.extensions().get::<RequestUri>().unwrap().0, "https://www.rust-lang.org/");Á # Ok(())Á“„

úü‰ ## Customizing the `Policy`Á©úü­XU You can use a [`Policy`] value to customize how the middleware handles redirections.Áú
ü’"¹€
ìµµ
¬Ó
üé5Ùè
üŸ&# use tower_http::follow_redirect::{ÁüÆ" policy::{self, PolicyExt},Áäé FollowRedirectLayer,Á4†éÿ ú¤‘ #[derive(Debug)]Á”¦ enum MyError {Á̹ TooManyRedirects,ÁüÓ Other(tower::BoxError),ÁøŽ
ùú¤ýôé
ü’.+ # async fn main() -> Result<(), MyError> {Á¼Á # let http_client =ÁüÙmj # tower::service_fn(|_: Request<Full<Bytes>>| async { Ok(Response::new(Full::<Bytes>::default())) });ÁüÇZW let policy = policy::Limited::new(10) // Set the maximum number of redirections to 10.Áü¢63 // Return an error when the limit was reached.ÁüÙPM .or::<_, (), _>(policy::redirect_fn(|_| Err(MyError::TooManyRedirects)))Áüª_\ // Do not follow cross-origin redirections, and return the redirection responses as-is.ÁüŠ41 .and::<_, (), _>(policy::SameOrigin::new());Á¿úüÃ*ï
üî85 .layer(FollowRedirectLayer::with_policy(policy))Áü§  .map_err(MyError::Other)ÁôÈèï
çú // ...ÁüöDA # let _ = client.ready().await?.call(Request::default()).await?;Á±ó
“„

»follow-redirectÁÜ’EüŒE#|¸E±µÊØëü½¾ÂùQ4ý¿âÅ9<…Çãý64ŽŸä¶9D–ÆåEitherÁ4»²HæCONTENT_ENCODINGÁ„Û ÇèCONTENT_LENGTHÁtõ Éé CONTENT_TYPEÁd ÎêLOCATIONÁD£ ßëTRANSFER_ENCODINGÁŒ¹ öìžôæ
í¤õºî¥É¥ïÙ“ôð¿>DõˆñŒvTÿòöî¸óëø<”óôåÀ
)õéº
öíðøÜ>4…‚ØùíëúÄ Ÿ„¾ûɨ™3üreadyÁ,¸¥‚þk<¿Ìÿ·œØ¹û èLayerÁ,ý =<—.ƒUrlÁ©1…üa^ Tools for customizing the behavior of a [`FollowRedirect`][super::FollowRedirect] middleware.Á 0KXm~Ÿ³ÆÇà¿úLè펱0l -N\ÍNŒ¶¬O<ÖëOçê4\ý {ûPTН¼QT¨·˜SchemeÁ4Èš¥É¥Ù“ôœŒvTáöîí¸ž<cgíùQ4 ¿  Å9<Ç  ý64Ÿ 
Ù“<0ô ,IK;=-/l*!¤ Íìî‡ ¥Íìô‡ ¨¶‡ü»jÉî‡ô‡¶‡Ô/ÍìÔ/ÍÍì‚Æ џŒ ‚ÆŸô‡’Œ ‚Æl—
î‡ô‡’Œ ‚Ƭø_­`giceüÊ_Ô/ÍìæˆÏÍììˆ ÓÍìÚˆ ÖÍìàˆ ÙŸÚˆæˆìˆl…Ÿàˆæˆìˆl›¢ˆ¢£¤ˆ~z|ü°Bãäå 㢈 äÇÇÅ9ÉÞ9Êì9Ëú9ÌŠ:Í¡:>ѦòF¾Pä屑 ¼
æˆìˆÚˆàˆêÄ!büƒ3T†æç 梈 çŸÈ 
æˆìˆÚˆàˆ$––ÈàcüŒ-Tèé 袈 éæˆ÷Ê š
æˆìˆÚˆàˆdgª-fäÛ—ï—ˆ˜‡ÌŒllp-ùQ4 ¿ Å9< Ç!ý64 Ÿ"×/ ¤,#, HJ:<,.D* !üÚ% %%Í즉 ß ùˆ&Àc&ü†8  êëì êùˆ ë c cˆ¢cµ
 `£c˜¼ `àB¤GS
ìï»$  $
&¦‰ ±õiü»O ()**()í¦‰ íô‡˜"ÑÙL€ ƒ‹ à Íìщ Æ í"¦‰ö– œö Ó” À ùˆ+,¢¤,+Y[UWü‘< D” îïð îùˆ ïÇÇÅ9ÉÞ9Êì9Ëú9ÌŠ:Í¡:>ѦòF¾Päð¶×'  '
+¦‰ô‡щ £küö+  ñò ñùˆ òô‡ÑÙ'  '
,¦‰ô‡щ$… ª-®lüÒT üÄP M Create a new redirection [`Policy`] from a closure `F: Fn(&B) -> Option<B>`.Á úü™_ \ [`clone_body`][Policy::clone_body] method of the returned `Policy` delegates to the wrappedÁüùX U closure and [`redirect`][Policy::redirect] method always returns [`Action::Follow`].ÁlÙ ¦‰ùˆ././Ó” ç ƒ‹ ê ó"¦‰ óô‡œ’ ó¦‰û ˜"ÑÙ
-¦‰ô‡±:m`beg´”ƒ;‰À;L  à02ùQ4¿03Å9<Ç04ý64(Ÿ05ö¥$J08¼áTPë09Ù“<aô0:,rtdfVX$5”5M4A@B13ô÷0 ¡ã´ïÞ‰=>?@ABC¤†üŒ_\ Create a new [`FilterCredentials`] that removes blocklisted request headers in cross-originÁŒð¾â
Þ‰<<
=ü¼9üóDA Configure `self` to mark cross-origin redirections as "blocked".Á”ÃÞ‰Þ‰<<
>ý‡süû"üº<9 Configure `self` to mark every redirection as "blocked".ÁL Þ‰Þ‰<<
?$ ü–
#ü× :7 Configure `self` to mark no redirections as "blocked".ÁT
Þ‰Þ‰<<
@
üó 9üŽ MJ Configure `self` to remove blocklisted headers in "blocked" redirections.Áà úüè 1. The blocklist includes the following headers:Áž ú¬¦  - `Authorization`Á  - `Cookie`ÁÜÓ  - `Proxy-Authorization`Á”ú Þ‰Þ‰<<
A$
ýuü»#üñ
EB Configure `self` to remove all headers in "blocked" redirections.ÁTÂÞ‰Þ‰<<
Büâ$ü™DA Configure `self` to remove no headers in "blocked" redirections.Á\éÞ‰Þ‰<<
CüÚ"Þ‰E´E¤ƒ<†Þ‰DD
Eü·-GHHGÍìØŠ ¼î ¿Þ‰IJ¢£JI"$')üëBôõö ôÞ‰ õÇÇÅ9ÉÞ9Êì9Ëú9ÌŠ:Í¡:>ѦòF¾Päö±‘F ÷F
IØŠìˆêÄ yüÜ2÷ø ÷Þ‰ øâ‡F êF
J؊숖ȣƒ\—<›ùQ4 ¿KMÅ9<ÇKNý64ŸKO,68(*éŠQô›üÖ@= Create a new [`Limited`] with a limit of `max` redirections.Á¢éŠPP
Q¡ˆÄèéŠS´S¤Òü‡FC Returns the default [`Limited`] with a limit of `20` redirections.Á<ÕéŠRR
Sü#UVVUêª î ˜éŠW¢W üº<ùúû ùéŠ úÇÇÅ9ÉÞ9Êì9Ëú9ÌŠ:Í¡:>ѦòF¾Päû±‘T ÆT
WØŠìˆÒ‰4¤¨ùQ4 ¿XZÅ9<ÇX[ý64ŸX\Ù“<0ôX],IK;=-/l*_``_òŠ ¢ƒ‹ ¥Ü‹aü·jÅî‡ô‡Ü‹^Ô/bcbc^ŠŒ ÉŒ Í®Œ ÆŒ l“
aî‡ô‡’Œ ‚Ƭó­ý>@CEüÅ^Ô/efghgehfÝ Êî Îÿ ÑŽ Ô¡Ž lÿ¹Ž l•ÄŒijk¢£¤ikjKMPRUWZ\üªBD­üýþ üÄŒ ýÇÇÅ9ÉÞ9Êì9Ëú9ÌŠ:Í¡:>ѦòF¾Päþ±‘d d
iæˆìˆÚˆàˆêĦü„3T‡ÿ ÿÄŒ € ŸÈd d
jæˆìˆÚˆàˆ$—–Èúü-T   ÄŒ ‚ æˆ÷Êd d
kæˆìˆÚˆàˆþ“ª-°’åkÛ—lï—lˆ˜llk¶¥ùQ4
¿moÅ9<
Çmpý64
Ÿmq×/
¤,mr,
HJ:<,.D*
!ü×$
ttÓ” Ü
uÀcuü‚8

ƒ  ƒ “  c cˆ¢cµ
 `£c˜¼ `àB¤GS
ï»s 
s
u¦‰
±]–ü¶c
wxyxywŽŽ ÇÇÅ9ÉÞ9Êì9Ëú9ÌŠ:Í¡:>ѦòF¾Pä˜"±‘Œ‡
î ¾
Í쎎 Á
“"ŽŽÑ¿ üð(
êª »
áz¢zVXRTü B

ˆ Š  ˆ á ÇÇÅ9ÉÞ9Êì9Ëú9ÌŠ:Í¡:>ѦòF¾PäŠ ±‘v ¬
v
z؊숎Ž
êÄ—üßf
üˆ6
3 Create a new redirection [`Policy`] from a closureÁü¿2
/ `F: FnMut(&Attempt<'_>) -> Result<Action, E>`.Áò
úüöO
L [`redirect`][Policy::redirect] method of the returned `Policy` delegates toÁÄÆ
 the wrapped closure.Á\æ
¦‰|}|}Ó” ò
î õ
 Œ “"¦‰ ÇÇÅ9ÉÞ9Êì9Ëú9ÌŠ:Í¡:>ѦòF¾PäŒ üœ(
Œ ¦‰Æ ˜"±‘Œ³
{¦‰ìˆ±ÉËÎзÀ;L  à~ùQ4¿~Å9<Ç~ý64(Ÿ~ƒ×:¤,~,_aPRAC24D5&|Í£Ž¤ˆüã  Create a new [`SameOrigin`].Á£Ž
ôÀ£ŽˆÀcˆüå8è Ž    £Ž Ž  c cˆ¢cµ
 `£c˜¼ `àB¤GS
 ï» ì
ˆ± óü×&ŠŠêª Üî ß£ŽŒ¢Œ "ü„BD‡   £Ž ÇÇÅ9ÉÞ9Êì9Ëú9ÌŠ:Í¡:>ѦòF¾P䱑 
ŒØŠìˆ$•êÄš$×#ü×'# #û"þ"ü¢%ô"„Íé"4ãÞ"ü×£Õ"Ø"Ê"Í"¼›Â"$¼µ"£"¦"”"—"†"‰"w"z"´§
üô;8 Trait for the policy on handling redirection responses.Á°ú
# ExampleÁÂúüÆ# Detecting a cyclic redirection:Áêú
üö%" use http::{Method, Request, Uri};Áüœ" use std::collections::HashSet;Áü¿GD use tower_http::follow_redirect::policy::{Action, Attempt, Policy};Áú¤‹ #[derive(Clone)]Áä  pub struct DetectCycle {Áü½%" uris: HashSet<(Method, Uri)>,ÁøŽ
éúüí-* impl<B, E> Policy<B, E> for DetectCycle {Áü›LI fn redirect(&mut self, attempt: &Attempt<'_>) -> Result<Action, E> {Áüè\Y if self.uris.contains(&(attempt.method().clone(), attempt.location().clone())) {ÁüÅ  Ok(Action::Stop)Á¤æ } else {Áüûb_ self.uris.insert((attempt.previous_method().clone(), attempt.previous().clone()));ÁüÞ " Ok(Action::Follow)Ál

L
æŽ
,™
øŽ


Ÿ ¡Ÿ ¡Îìù¶ü§
øƒ‹ ¸
™— »
Ÿ–× *–× £¤¢£¤¢£¤DFIKüž CüÄ
XU Invoked when the service received a response with a redirection status code (`3xx`).Á¡ úü© WT This method returns an [`Action`] which indicates whether the service should followÁ¤…  the redirection.ÁD¡  “ ù¶ ÇÇÅ9ÉÞ9Êì9Ëú9ÌŠ:Í¡:>ѦòF¾Pä¶×Ÿ ª Ÿ
¢ù¶ô‡щ êÄ ü™3üç \Y Invoked right before the service makes a request, regardless of whether it is redirectedÁ
 or not.ÁØ
úüà
MJ This can for example be used to remove sensitive headers from the requestÁü²)& or prepare the request in other ways.Áàúüè,) The default implementation does nothing.ÁTœ – ù¶ — ‡·Ÿ §Ÿ
£ù¶ô‡щÞ¶H›üÜ,üÕNK Try to clone a request body before the service makes a redirected request.Á¨úü°85 If the request body cannot be cloned, return `None`.ÁíúüõWT This is not invoked when [`B::size_hint`][http_body::Body::size_hint] returns zero,ÁüÑKH in which case `B::default()` will be used to create a new request body.Á¡úü©.+ The default implementation returns `None`.ÁTߘ  ˜ ù¶ ™ ô‡ÑÙŸ êŸ
¤ù¶ô‡щç·Ñ›ü¡I8𠦧¡¨¨§š ¦ƒ‹ ¦™— ©Îì ¬Ÿô‡щ©ª«¢£¤«©ªZ\_a[]üñB œ   › – œ ÇÇÅ9ÉÞ9Êì9Ëú9ÌŠ:Í¡:>ѦòF¾Pä ¶×¥ ý¥
©8ô‡щ$‚êĉœüä2ž Ÿ  ž – Ÿ ‡·¥ ò¥
ª8ô‡щ–ÈDüÉ+  ¡    – ¡ ô‡ÑÙ¥ ×¥
«8ô‡щª-žü¢I­®¡¯®­¯êª §î ªÎìò ­Ÿò؊숱°±²¢£¤±²°Z\_a[]üòB¢ £ ¤  ¢ ± £ ÇÇÅ9ÉÞ9Êì9Ëú9ÌŠ:Í¡:>ѦòF¾Pä¤ ±‘¬ þ¬
°ØŠìˆòêÄŸüå2¥ ¦  ¥ ± ¦ ⇬ ó¬
±ØŠìˆò–È‘ üÊ+§ ¨  § ± ¨ ØŠùì ج
²ØŠìˆòª-Ü¡œêü£FC An extension trait for `Policy` that provides additional adapters.Á³³–× üê¡
³–× –×  ´¸´¸¸´ü´ vü„[X Create a new `Policy` that returns [`Action::Follow`] only if `self` and `other` returnÁ¬ä `Action::Follow`.Áþúü†^[ [`clone_body`][Policy::clone_body] method of the returned `Policy` tries to clone the bodyÁ¼é with both policies.Áúl«Î Ÿú
¬³
ì͵
üïWT use tower_http::follow_redirect::policy::{self, clone_body_fn, Limited, PolicyExt};ÁËúŒÓ enum MyBody {Á¬é Bytes(Bytes),ÁÔƒ Full(Full<Bytes>),ÁøŽ
¬úü´JG let policy = Limited::default().and::<_, _, ()>(clone_body_fn(|body| {Áüƒ*' if let MyBody::Bytes(buf) = body {Áü²,) Some(MyBody::Bytes(buf.clone()))Á„ã
} else {Á„ø
NoneÁL æŽ
D  }));Á
· ù¶ž“ííúLð¬ ñ­ Rm$ßáú\ù¶ž“³¡µ·µ·³Íìž“ » Í쯗 ¾ Œ Á Íìù¶,‹!Ÿù¶¯—‚ÆŸž“¯—‚Æd!
´ù¶ž“¯—‚ƹ
~ƒü•&tü°!]Z Create a new `Policy` that returns [`Action::Follow`] if either `self` or `other` returnsÁ¬’"Åï ¬"úü´"^ðï ¼—#×ð ³#úl»#«Î Í#ú<Õ#
üá#PM use tower_http::follow_redirect::policy::{self, Action, Limited, PolicyExt};Á¶$ú¤¾$ËÐ ”×$‰÷
Ìî$¤÷
tŒ% // ...Á,Ÿ%øŽ
©%úü±%SP let policy = Limited::default().or::<_, (), _>(Err(MyError::TooManyRedirects));Á<‰&
˜&ù¶ž“ëOž¬XŸ­XPbFßêwfLù¶ž“³¡¹º»¹º»³×÷ &è÷ ž&Œ ¡&ø ,ê&’ø dÛ&ªø dü&
¸ù¶ž“¯—‚Æ$¤&¹
,ª&PRUWZ\ü',¥½½Îì³ ’'³¾Â´¸Â¾ üÀ'vÃ'³ž“Ƽ¡¿ÀÁÁ¿À¼×÷ Ç'è÷ Ê'Œ Í'Íì³,—(Ÿ³¯—‚Ædˆ(ªø d©(
¾³ž“¯—‚ÆÙ¢¹
ã¢gilnqsüæ(té(³ž“ñǼ¡ÃÄÅÅÃļ×÷ ì(è÷ ï(Œ ò(ú€ ,») d¬)ªø dÍ)
³ž“¯—‚Æ»£¹
Å£NPSUXZŒÿ+ü‡*HE A redirection [`Policy`] with a reasonable set of standard behavior.ÁÐ*úüÔ*JG This policy limits the number of successive redirections ([`Limited`])ÁüŸ+_\ and removes credentials from requests in cross-origin redirections ([`FilterCredentials`]).ÁDˆ,„æ´ñ,üµ,;8 A type that holds information on a redirection attempt.Á<ü,Ô9ÈÈÇÇÅ9ÉÞ9Êì9Ëú9ÌŠ:Í¡:>ѦòF¾PäÔ9>ѦòF¾PäÉÊËÌÍ„-ìŽ-4™-ÇÇ…Éì±-4¼-ÇÇ Ô9—ÊäÔ-Dß-ÇÇ Ô9ìïüö-&|.ÇÇ¡ˆ ä¢.D­.ÇÇÈ ¤Ã.Ô9ÏÏë† ÐÑÒÓÔÈ.üˆ/"üÞ.%" Returns the redirection response.Á4/©  © ë† …ÉÎ –/Î
ÐÔ9$—/ü‡0"üÌ/63 Returns the destination method of the redirection.Á4Ž0ª  ª ë† ¡ˆ Î •0Î
ÑÔ9$0üƒ1!üË030 Returns the destination URI of the redirection.ÁDŠ1«  « ë† Ãˆ Î “1Î
ÒÔ9$”1ü‘2+üÈ1DA Returns the method for the previous request, before redirection.Á|˜2¬  ¬ ë† ¡ˆ Î ¨2Î
ÓÔ9$©2ü˜3!üç2,) Returns the URI of the original request.ÁDŸ3­  ­ ë† Ãˆ Î ¨3Î
ÔÔ9$©3\´6ÀÖ×ü‚7üÆ674 Returns `true` if the `Action` is a `Follow` value.ÁL‰7®  ® ÀÕ “7Õ
Ö$”7ìÎ8ü”852 Returns `true` if the `Action` is a `Stop` value.Á<Õ8¯  ¯ ÀÕ Ý8Õ
×$Þ8üÚ9"ÙÚÚÙêª ß9î â9ÀÛ¢Û "üƒ:<D†:° ± ²  ° À ± ÇÇÅ9ÉÞ9Êì9Ëú9ÌŠ:Í¡:>ѦòF¾Pä² ±‘Ø :Ø
ÛØŠìˆ$”:3©üÝ:AÝÞÝÞêª â:î å:Øìˆ,˜;±‘ߢß+-02ü¥;<D¨;³ ´ µ  ³ ±‘ ´ ÇÇÅ9ÉÞ9Êì9Ëú9ÌŠ:Í¡:>ѦòF¾Päµ ±‘Ü ±;Ü
ߨŠìˆ$¶;«üÎ<*LÑ<·  ¶ ìï · ìï à<óðÛ<rhsÁæ<‰KŒK{K~KmKpK_KbKä¥OK$ÇÄÓ6K´íK¤…K„›êJ̱ËJ¸J»J©J¬JšJJJŽJ}J€JoJrJ`JcJQJTJ|¤FJì¹9JÜ„ç0Jtý#JJJDšJôI÷IüÜYæIéI×IÚIÈIËI¤Ö¼I”ðªI´ˆID¤ŽIÄ¥!•餙"üÄ!PM Create a new [`FollowRedirectLayer`] with a [`Standard`] redirection policy.Á "•éèèôÑ"¡ˆˆÍìÃ’ Ö"–’ 
üÊ#%üö"OL Create a new [`FollowRedirectLayer`] with the given redirection [`Policy`].Á\Ñ#Ã’–’
Ã’“/®ü¢$P¤¡ŒŒÍ줓 §$×÷ ª$ؤ“,Þ$Øž“,ì$ñ’ŽŽBDGIdù$<þ$ŠŠ±“ü£%*,¦%¸  ¸ ñ’¤“ñ’¤“Š ¬%Š
ޤ“ž“$­%áS4¯Ì“(¤ÿœ ˜(Ëçäƒ)ü³(KH Create a new [`FollowRedirect`] with a [`Standard`] redirection policy.ÁŠ)¤“Ëç
¤“áS•³üé*%üã)SP Returns a new [`Layer`] that wraps services with a `FollowRedirect` middleware.Á»*úüÃ*! [`Layer`]: tower_layer::LayerÁ,ð*•é
¤“ü½+3¤¡ÿœ Â+×÷ Å+¨ ,ê+±“èéê'),.üÆ,/ü÷+JG Create a n
. . .
 ¡ÙÛÕ×ÑÓlí1Dò1˜˜Ч T”2,™2˜˜Ìð\¯24´2˜˜ç‡üá2OTä2¹ º »  ¹  º ÌÌk΄ð¸Ï—ð¸Ð°ð¸ÑŒˆ¸ÒÐð¸f'EwÚ]¾å» œØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤ÃÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ï”.
˜ ï2˜
 ”•ŧ Å”$ô2™ñw¸üà3=$ã3¼  ¼ ϔϔ. ˜ è3˜
¡”•ŧ Å”$í3ò‹÷3üŸ<Ò¤£>¤ >¥¡¦£¥¦¤
¤“Ä¥. ü­äŒ=ÍìÕ˜<§<Íì·®<°<ñ§ ¹<.¤“Ä¥üò<7ÿœ ¤<˜ ,¬=)Õ˜$À=³Õ˜<Ç=ŸÕ˜½®Ì×=×—§¨ƒØ„ب[]Ÿž \ø=4ý=¢¢ê®ü°>I$³>¾ ¿ À „¾„¾Ä †¾ ˜X$]È=„kt• ¾ ×— ¿ ÌÌk΄ð¸Ï—ð¸Ð°ð¸ÑŒˆ¸ÒÐð¸f'EwÚ]¾åÀ œØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤Ã×—ƒØ¢ Â>¢
¨¤“Õ˜·®©þ™ñ³þÌû@¨Û—©ï—©ˆ˜©©¨©¤“Õ˜·®½  ½ ”õ,ÄL¨Û—ªï—ªˆ˜ªª¨ŸêüýX0¬¬êª ‚Y)ØŠ$žY³ØŠ<¥Yœ™­®-/ü´Y$·YÁ  Á œ™ùë ¼Y«
­ØŠ$ÁYüí[[tð[ à Ä   œ™ à ؊ Ä ž“«¡¯°¯° …\«×÷ ÿ[™— ‚\Ÿž“ØŠщd»\
®ØŠž“щ$Š\ª-~"“/ˆ"LNQSüÞ^kTá^Å Æ  Å Ã’ Æ ô‡ÑÙ¡²³´³´² ý^ ì^ƒ‹ ï^™— ò^ŸÃ’ô‡щd¥_)ô‡$º_³ô‡<Á_
±Ã’ô‡щ“/&ª-&lnqsvxü“a9\aÇ È  Ç  È ìﺾ ¬añ°relativeÁD¢abaseÁ$²a„ŒIüA
> Tools for classifying responses as either success or failure.ÁD”IÀì°ÀÊÒ­ÃËžôLN
æ
¸Ù“<Y
ô¹¿>Db
ˆºŒvTl
»
InfallibleÁTŒ
ˆê½×˜
¤,¾¯ú
¿¯ú¿‹\DÉ
ΨØq¼Ó
ð©q¤ì
ꪙr„‚
ö«¼t|²
¬¥u¼â
ž®ëuÌû
¤¯$G
03!$}
œƒ
ôàâœ
Òü´&
¼Ã
éÎðêö÷øùÿ©w” ÀÂñB\ ÊÀÃäI„-ÀÀÄÍv„?­ÀųD`ÀÆžôLuæ
ÀÈ¿>D€ˆÀÉפ,ÀË
NonZeroI32ÁTŸÌ—ÀÌ,ÄÆ´¤¦–”V‡$nvxfhY[|šBl  ø™Îü´ 3 ø™ÍÍ
Î ÜÛü×;8 Converts an `i32` gRPC status code into a [`GrpcCode`].Áúü—C@ Unrecognized codes (outside 0-16) map to [`GrpcCode::Unknown`].Áø™ÐëÐÜý$€ø™ÏÏ
лÒ-üž"ø™ÒëÒüÇ"Øœø™ÑÑ
Ò»¤Æ&Ôüá&*dä&ÀÕýÓÓ
ÔcodeÁ$ñ&üƒ2%§£Ö´Ö¤¯2<²2§£ÕÕ
ÖÌã2§£ØÙÚ¤²3üƒ3*' Create a new [`GrpcErrorsAsFailures`].Á¹3§£××
Øüÿ85ü430 Change which gRPC codes are considered success.ÁÕ4úüÝ41. Defaults to only considering `Ok` as success.Á“5úü›5-* `Ok` will always be considered a success.ÁÍ5úlÕ5«Î ç5úüï5ZW Servers might not want to consider `Invalid Argument` or `Not Found` as failures sinceÁüÎ6# thats likely the clients fault:Áö6ú\þ6 ```rustÁüŽ7?< use tower_http::classify::{GrpcErrorsAsFailures, GrpcCode};ÁÒ7úüÚ70- let classifier = GrpcErrorsAsFailures::new()Áü80- .with_success(GrpcCode::InvalidArgument)ÁüÄ8*' .with_success(GrpcCode::NotFound);Á<ó8
d†9§£ø™§£××
Ù$—9ƒÅ $9ü¾;2ü‚:]Z Returns a [`MakeClassifier`](super::MakeClassifier) that produces `GrpcErrorsAsFailures`.Áä:úüì:MJ This is a convenience function that simply calls `SharedClassifier::new`.Á|Å;¡á××
Úü§<.§£ÜÝÞàÁÂÃÅÞàŒÜ<dá<ÛÛȤ„†=\‹=ÛÛý£ü·=„Œº=É §£ É ªç¹ºÈ»ˆ¼½èw¾ˆI5";¿D¹§£Á§£ÂÛßß ë=Ûêª Ì=
ÞØŠü¶Cht¹CÊ §£ Ê íéÈÑ Ûáá ØCÛÍìíé ÈCÄcíéd‡Díé<D
àíé¦ê68üûE,ý£ãäåËÌÍä匮Fd³FââȤüÙFUdÜFË ý£Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ Ë ”õÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ý£Ëâ €Gâ
ä$éFͪ DïFüŸKht¢KÌ ý£ Ì íéíÕ âææ ÁKâŠÓ ±K›Ó dðK«Ó <ÿK
åíéÊó¦êÈó+-ü‘O&ȤèÅcèü¾O4ÁOÍ Î Ï  Í È¤ Î  c cˆ¢cµ
 `£c˜¼ `àB¤GS
Ï ï»ç ÅOç
è$ÆO± ÌOü›Qx´©QÐ  Ð ”õ¢¥ ÎQÿâßU<ÅQ©qlÞQ¤šR<§R ¯R ûS ¹R ÒR , ºR8$»R& ¿R8$ÀR$ ÄR, ÆR8¹
,ÇR& ÌR8¼,ÍR*ÔR ×R ôS
8åR8èR8Û$ìR ðR öR8»,ñR øR, úR8$ûR €S ¤S8»,S8$¦S «S êS84½S8ìr„ÄS'ÔS, ÖS8¹
,×S% ÜS% õS4˜VéÛ—ëï—눘ëëéë ŸÞ¬Ü
Έ
©w” ìîñB\ ÊìïäI„-ÀìðžôLKæ
ìò¿>DVˆìó×j¤,ìô,y{ikY[$DKM;=De.ü… ö÷ö÷Íìû¦ ŠÍì§ Á¦øü¬,ºû¦§Á¦õõ
øû¦§°@±RîüˆHúûûúêÞ ûÞ ¿cû¦Á¦üÀcü+-02ü×8ÚÑ Ò Ó  Ñ Á¦ Ò  c cˆ¢cµ
 `£c˜¼ `àB¤GS
Ó ï»ù Þù
üû¦§±béüÍŠþÿÃEþÿ§Ú ˜"¬– DÎûÞ ÕÍ쬖 Àû¦„š–"§Ú ü³#êÞ ÒÁ¦ƒÁÂÃŃ,.wysuŒÞýý¬– „€\…ýý²– ü¼Œ¿Ô Á¦ Ô ¾ ¹ºÈ»ˆ¼½èw¾ˆI5";¿D¹Á¦ÁÁ¦Âý ðýŽ Ñ
ƒû¦§¬– àˆ')üÖ m Õ Á¦ Õ ‚ÆÕå ý ø ýŒ è Äc‚ÆŒ§
‚Æ

û¦§¬– ‚Æöá¦êñáBDü†ˆÃEŠŠˆ§î§ ˜"¬– DýûÞ Ž”ã D‘Êû¦–"§î§ üâ#êÞ Á¦ŒËÌÍŒ%'gilnŒd’¬– ü°UÖ Á¦Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ Ö ”õÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Á¦Ë ×
Œû¦§¬– ͪ ÛàüÍm× Á¦ × ‚Æ¸ë ŽŽ ïŒ ß®ç Œž¾ç 
û¦§¬– ‚Ʀê79äó
Ä÷
ž¤©w” äI„ À„K„2 ÒÍv„D ­ŒvTa ×w ¤,¾t ½£˜, Ž~np^`„[ Qq BDœ| 5äÆ
º§šœü¯
. üé
, ) Creates a new `StatusInRangeAsFailures`.Áš ú # PanicsÁ³ úü» T Q Panics if the start or end of `range` aren't valid status codes as determined byÁì”  [`StatusCode::from_u16`].Á úü¾ l i [`StatusCode::from_u16`]: https://docs.rs/http/latest/http/status/struct.StatusCode.html#method.from_u16Á
ä¯ º§
šÄu,º
üÙ1 ü“Z W Creates a new `StatusInRangeAsFailures` that classifies client and server responses asÁ
failures.Á úüŒH E This is a convenience for `StatusInRangeAsFailures::new(400..=599)`.Áüà º§
ü¹; üµE B Convert this `StatusInRangeAsFailures` into a [`MakeClassifier`].Áÿ úü‡- * [`MakeClassifier`]: super::MakeClassifierÁ¤À º§Ì´ 
œ€àü¤1 º§žŸ ¢ÁÂÃÅ¢ ŒÜ …¨ \” ÒÒ„KÔ¤KÕ¶K6’\Pä1gÕº§ÁüÍŠ ŒÐ Ø º§ Ø ªç¹ºÈ»ˆ¼½èw¾ˆI5";¿D¹­÷ º§Â¡¡  êª â
 ØŠãÞáÞüæm té Ù º§ Ù íé­÷ ££ ˆ ŠÓ ø ›Ó Œ· «Ó 
¢íé
Þ¦ê Þ+-üä/ …¨¥Åc¥üš8  Ú Û Ü  Ú …¨ Û  c cˆ¢cµ
 `£c˜¼ `àB¤GS
Ü ï»¤ ¡ ¤
¥ ± ¨
üš#
È˼¿°³¤§üŸ"
üšÅ
ˆÄä
ü›<
9 Trait for producing response classifiers from a request.ÁØ
úüÜ^
[ This is useful when a classifier depends on data from the request. For example, this couldÁü»#
include the URI or HTTP method.Áß
úüã]
Z This trait is generic over the [`Error` type] of the `Service`s used with the classifier.ÁüÁ?
< This is necessary for [`ClassifyResponse::classify_error`].Á
úü…^
[ [`Error` type]: https://docs.rs/tower/latest/tower/trait.Service.html#associatedtype.ErrorÁ
°°–× üäÙ
°–× –×  ±²³´±²³´Íìù¶±ü­}
ˡ
ü¾k
°
Áù¶²üØ!
°
Âù¶³üƒ 
¨
PÁ
EÒ
0í
ÍìÝ
”ž
¡‚
Íìø
üú A
Êø
üŒ .
ø
ËÝ
ü˜ !
¹‚
.Ë‚
#Ü‚
´ü­|
üƒ%
" The response classifier produced.ÁT²
°°Œž
ü° (
% The type of failure classifications.ÁÝ
úüå F
C This might include additional information about the error, such asÁü°
H
E whether it was a client or server error, or whether or not it shouldÁäý
 be considered retryable.Ád£
°°üú @
ü¶ ?
< The type used to classify the response end of stream (EOS).Á\ÿ
°°üø C
üÁ 2
/ Returns a response classifier for this requestÁ|û
Ý Þ  Ý ù¶ Þ ‡·°
°µµ Ž
°ƒ‹
´ù¶ô‡$
ò‹
!#Üž
··êÞ £
ߨ¸ 
üƒP
üÀ>
; Create a new `SharedClassifier` from the given classifier.ÁŠ
û¦ߨ¥ã „º
Øû¦
¸û¦ívLáüÿU
ººêÞ 
¥ã „»
æ‰

ߨ»¼½¾²³±´¾8:ŒÛ

¹¹ê— „„
\‰
¹¹Ï• |«

¹¹û¦üÅC

ß à  ß ß¨ à ‡·ߨ±¹¿¿ Û
¹ƒ‹ Ø
¾û¦ô‡
øÇ ôá "Ô½%
ü´`
] Trait for classifying responses as either success or failure. Designed to support both unaryÁü• S
P requests (single request for a single response) as well as streaming responses.Áé
úüí N
K Response classifiers are used in cases where middleware needs to determineÁü¼!N
K whether a response completed successfully or failed. For example, they mayÁü‹"K
H be used by logging or metrics middleware to record failures differentlyÁœ×"
 from successes.Áë"
úüï"I
F Furthermore, when a response fails, a response classifier may provideÁü¹#O
L additional information about the failure. This can, for example, be used toÁü‰$O
L build [retry policies] by indicating whether or not a particular failure isÁtÙ$
retryable.Áè$
úüì$P
M [retry policies]: https://docs.rs/tower/latest/tower/retry/trait.Policy.htmlÁ„Ç%
ÀÀ–× ü½%½
À–× –×  ÁÂÃÅÇÁÂÃÅÇÍìù¶Á”ø'
½”
Íìù¶ÂüÔ(A
Êä”
üæ(.
ä”
ËÅ”
üò(!
Ü”
.õ”
#†•
ÇÅÃŒø'
üÞ%A
> The type returned when a response is classified as a failure.Á¤&
úü¬&B
? Depending on the classifier, this may simply indicate that theÁüó&C
@ request failed, or it may contain additional information aboutÁü»'8
5 the failure, such as whether or not it is retryable.Ádý'
ÀÀüÔ(@
ü(?
ú„
\Ù(
ÀÀü¡1…
ü›)4
1 Attempt to classify the beginning of a response.ÁÔ)
úüÜ)F
C In some cases, the response can be classified immediately, withoutÁü§*5
2 waiting for a body to complete. This may include:Áá*
úüé*1
. - When the response has an error status code.ÁüŸ+@
= - When a successful response does not have a streaming body.Áüä+?
< - When the classifier does not care about streaming bodies.Á¨,
úü°,H
E When the response can be classified immediately, `classify_response`Áüý,G
D returns a [`ClassifiedResponse::Ready`] which indicates whether the矃-!
 response succeeded or failed.Áï-
úü÷-F
C In other cases, however, the classifier may need to wait until theÁüÂ.G
D response body stream completes before it can classify the response.ÁüŽ/D
A For example, gRPC indicates RPC failures using the `grpc-status`Áü×/8
5 trailer. In this case, `classify_response` returns aÁü”0D
A [`ClassifiedResponse::RequiresEos`] containing a type which willÁüÝ0?
< be used to classify the response when the body stream ends.ÁŒ¤1
á ù¶ á ˆˆ¿>Šé“ª-gd™&¶ð¸Rô‡¹ºÈ»ˆ¼½èw¾ˆI5";¿D¹Å”
ä”
ÀÄÄ Õ1
Àƒ‹ ¶1
Ãù¶ô‡$Â1
Ð1
!#üƒ4h
´¬2
 Classify an error.ÁÇ2
úüÏ2_
\ Errors are always errors (doh) but sometimes it might be useful to have multiple classes ofÁü³3K
H errors. A retry policy might allow retrying some errors and not others.Át†4
â ù¶ â ìˆÅ”
ÀÆÆ ¥4
Àî •4
ÄcìˆdÔ4
ìˆ<ã4
Åù¶ìˆ$˜4
¦ê,ž4
<>ü«A
üñ4: