Update hyper to 0.14.32

Test: m
Change-Id: I7d46e43077edb89d8d75db520a3e5a6b5895eb16
diff --git a/crates/hyper/.android-checksum.json b/crates/hyper/.android-checksum.json
new file mode 100644
index 0000000..b937334
--- /dev/null
+++ b/crates/hyper/.android-checksum.json
@@ -0,0 +1 @@
+{"package":null,"files":{"src/headers.rs":"000622c2e2130af0b90ee2ba62a34333e452647c687c220e12b96867cdd97667","src/body/mod.rs":"df0b6ddfd5d1e0d9af6e3b6cb0831525fea2540232a727b7192d25b986fd7fc5","src/mock.rs":"8fdd1b2fcc8ffb25245ab8e936317cbeeedf7d3d31104410781a1d74e906a505","MODULE_LICENSE_MIT":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","src/server/mod.rs":"b72dc2fbbf8efe36a245f615507603893cb337684287325199aea36baa2bfed1","src/ext/h1_reason_phrase.rs":"62dcc1fd804817f058a104f43fa60d663cbdde5d2ae3ff7a6a170b19a23c1ad7","src/server/server.rs":"e5c524ff38a3b6ce057de05a133676175f2487befbeed0011edc7a00638e43f6","src/proto/h1/encode.rs":"603ca7373ff015f7da8c6a884e2b19fb951104eba4d9856d6f4a1abf0de0871f","cargo_embargo.json":"67cc237cbe62e7a59ab7d4b53e2eb659384fce7c78f62b03b9a7320cdc4f2070","src/common/task.rs":"253006d3f12140780067aab1d2462a44d167543a31b5ead21fc8b004ad36607c","src/service/oneshot.rs":"c3cdca04f62eca50ae6813b72b315ba57008e1e282c185afdd10babd149172e5","src/ffi/macros.rs":"55c89daba693c4cd0040babb00623d0c5f1d1422a0a7fbeb7cfc2a90a4b6ec5b","src/server/conn/http1.rs":"8a907a0339f8784dbb092ad533bb44b496a2ac66c23c9db5f6542a44b1c52905","src/server/conn.rs":"6e0e30941d72655d6e65d38353da0bb9d3524f14ca95595807599e98ef1f7c24","src/ffi/error.rs":"2483a5b62f86618afbe426c12320134383d6c08b83cb14823372fe790673048d","src/common/watch.rs":"88fe7fd7c362bf7ed877379180cdf318038c266517c15393b2c73bfecd1a977f","src/common/io/mod.rs":"56a0b60bbd35d0a3b4791fb18636929f5ae2400aa02bf31bc32ba9cbb051c4a1","src/common/exec.rs":"1aba495bb2afee9413cd7a7494c28017bb7c3671f63f6ced26d3e8385f52a00b","src/service/util.rs":"29074fdbbd5de0776bf4343351e043dc36ec723621cc863199b0f4c669ab063a","src/ffi/task.rs":"829a6c90ee277d3a09f5ebe37cc8bae1b19a199418959b36142302087e70d17c","src/client/dispatch.rs":"142ffcfa380ac4d47c476054dc1a5d010b3421cda4fa098b985aeba71b41f6df","src/server/accept.rs":"7f2a7a4f62743d99c655fc97d8e2dcf3af83c6ea95ddcfe824ba7a5dd45f5c47","src/proto/h1/decode.rs":"9f763c0e9a0ff3320edf137f0d31ee0ea7721b95f164ca03e579ec51943f2736","src/proto/mod.rs":"23aa66c08735cc9f9d91467fdb6d9dee60a8dc0db419e05db49d459ef36d4c04","src/client/client.rs":"6f24706b2187d45b338cd20a7fe566d9e1e01f40903e9ac4f8bf20018a02caef","src/body/length.rs":"0820ae2977362af64e014d7e8f2ae9b2560db7d0e5be8f5c1ff618356c120bab","src/cfg.rs":"0a379bcff467d4c11fee118e1c98ae10e45836e7699bce50f870eaca1fcefcaa","src/common/buf.rs":"63ee30e410d1a4369eb41a560959031b17c0f67cb118ce96ccaa1793d0fa671c","src/client/mod.rs":"89e26ce9241cbf07d9a5efa2ca220b9f9704c78791f68f49dafd87dfacc13048","src/client/connect/dns.rs":"a8c24e2d4c63603e8a2b556b93a7aba0464a52c3b33b0dbeb2b09bcd17b4de28","src/lib.rs":"4b6eac8453c6f32b277ffd2abac4e37e1c6c64ebf90068e7f08988f82ab4308c","src/proto/h2/client.rs":"c5bed14f988f8c6c3abaa718eaf07487f7cc3e421bc040f8037cffc46cda2e45","src/body/body.rs":"a02ffdce570917c4917c4ad720119736ae37fe3733065a470acb94d1160da8fd","src/client/connect/mod.rs":"28ecfb6a453cb9d400dc635ffce9d6c18dcc5d2df78f2fa3086bb1a4be2175ce","LICENSE":"d966de049f593320c234ffcd560a0c425bbc3be523ab1d85777ef082b7918c32","src/common/drain.rs":"b7c73cf06601198aa66f68e0608e7526ca150cfff758f8fc6fe6132ab5bdb7c5","src/error.rs":"0ee6ef678673400fc3ebd677a981b8ad7971aedb4bb24412f36325f170bea709","src/service/http.rs":"ef3ab1b3f2521336b49e0c250e902660207d4cd1deb56abc25b47f811c478931","src/service/mod.rs":"bd2ee22a4dde7de0259f3514260537654670ba389ac80aba4bd845a52a43e936","src/proto/h1/conn.rs":"77c7f775d2acc6eb9697d76670920329bba578e6e989b1d40339fef2f1ab3c9e","src/proto/h2/mod.rs":"916b50584aeacbcb38c82f55a1c3354dc72d6a907a5beedf3603fe45659c78d0","src/client/conn.rs":"d092c41ea27636b3e9ba6e3af35aeca4faac2949a6674a06ca23471d20b8e298","src/ffi/http_types.rs":"f2a8d8d922fe59b65a755a0d4b71bf20e2699610ff41e9fbcbef17ba8b05d684","src/server/conn/http2.rs":"37ff57d1a004456ab45bda974587d86ad0703346ab614b70156867b4d2046db7","src/body/to_bytes.rs":"39ea8ee5e0848006e6d197da4a267772b6592646dd808c251ddc3eda8deaa726","src/client/service.rs":"5fbacad960cf36174bd657916494c4824ed52b6f346d6f7ef036ee47ea9281a5","src/proto/h2/ping.rs":"907857e1c0da5445b18c5075d10f6b81fd4c5aa89bffe6783e584ce7578cdc7c",".cargo-checksum.json":"5a0c5b0fc7fe4a2c10c1375c72dcb83ee9250444473b16cdd3f8c372d91c3166","src/common/sync_wrapper.rs":"966e2e432c73d917752fbf3be3dc48390e8a1409e8890448ad128a8428b6dec4","src/client/conn/http2.rs":"d412c6c1d52eece5a6c1cc5f99b27824f8473e3c39d3e93d0d4a9124ae807771","src/proto/h1/role.rs":"7782f38c5fb49f1608dba9f01782f64ec961bb76ad335c0976d566565d95b72d","src/proto/h1/io.rs":"1775757468982947dbd2bac8e7a56b319bb4a73b1ba5fefa3461760aea95e413","src/ffi/mod.rs":"373e9b10e0920006308ac95062880995a9b1b1718c32f5231a547d51c70a4db5","src/common/io/rewind.rs":"f5c504b350b50aed2a7f0f69fb33ff7fb59c276536aef3e3513e7dbbadda48ae","src/server/server_stub.rs":"626019543194f8bac4abce957e5c621c308f76733de7509ae0dfb9a0cd59c9df","src/common/mod.rs":"f51aecd5bd8d3d3e61b95cab3fd2092554b0ffe8b1354617057d67113453d08f","src/common/lazy.rs":"d265b76db04c5a9927fd1c748d6fe99522f9ae86c30eaa6d2e7a35e431bd96ee","src/proto/h2/server.rs":"83f8a61bc750b4d6219a4b291b05ea7c5cbd41a39c4cb8364c60a7056c0edfdd","src/client/conn/http1.rs":"aef119fe6baad32253b3113f3be04070d1d0d1b351e36afa7bf4f06ef6bd99e3","src/ffi/io.rs":"e94220bedb0d6aff09001de54e27729784ce64fd0d4e0fe778d1934511095159","src/upgrade.rs":"22f20064ef36705743ef49515bf0b69d84245b96d5ab30b1345144a7fe3bc7d0","src/service/make.rs":"e063fe6373c3deea57ba8fe170087d9a571b996d34f5718221f81ae5729bf60d","Cargo.toml":"29400cd268caa840ad7c5c2a87660a7c08faa3ad0061c6ea13aa7429651101b6","src/ffi/body.rs":"ea3dc0d640a9f345e87feb62f57a1f8f5cdb728c7f05737dec0dd4b7a6962a37","src/server/tcp.rs":"69fcbe8283ba2c3c7a4a6b9cf3c4bb868aaea71f6a1b3a3ee429595836e253f8","src/rt.rs":"5965678dbb9a8a5ecd8ff23ebca378017133633afe46148afa3c37d82476a77c","src/server/shutdown.rs":"4544609826b5815efc086d8ea7ed64d462f26de35d1ecf6039a8616a863dff6a","Android.bp":"b1bc96f386dec4b8eb42eb79d83a3a70b5ff8b439d1173123136d830cb96c80c","src/client/pool.rs":"930a5e81d381679cf71f7fa69699beb73fe41b5c724a5dfb1c4565bdb3365d5a","src/ffi/client.rs":"5bc3910b3851dec754254ee4f08aa47e45ad9bb962d54de83b0156bc937c77df","src/client/connect/http.rs":"29637ed8a5fdd20377fc24753706d708d4ed907036d12a1ebafebcef1a6f35d3","src/body/aggregate.rs":"67ab42c9c4fbc2743ad24c5b4d96de83a3abf85f09e53102817b119345a22afb","src/proto/h1/dispatch.rs":"817f015108dc2dcfcaf37a90b43955b1fbcb55792e830c2daadc099ad5085121","src/client/tests.rs":"43d07002a845d14b6b45f7b31578c5c8a41452880f4215b9c60605eb2446b537","METADATA":"744c5f3ad5eb61242b281c5ffcde12f7936181b141fbb29361e17917faf4fe1d","src/proto/h1/mod.rs":"24943821d5880e15725cc84c9d5f5de355d3e6773e3e2d08bd8befabbb454221","src/ext.rs":"96f2c7324b8e964ec424dd88d43616b6a659aa224367af61e52eb81a836f233a","src/common/date.rs":"026518cc90448257298b4ba4025b52a159aa7d9d6ae90808d5e1ed76eef2648d"}}
\ No newline at end of file
diff --git a/crates/hyper/.cargo-checksum.json b/crates/hyper/.cargo-checksum.json
index 68a7797..11c8504 100644
--- a/crates/hyper/.cargo-checksum.json
+++ b/crates/hyper/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.lock":"4ca397505ef102bb00638adc898b4bfbded735a57fa792a7d925915f30667239","Cargo.toml":"f902a0301e0322d08ab95ca777bdc1726944a59c30de0a6ae4d506fe8ab60251","LICENSE":"25dfd9ec24ebbee73dc93e687526cd4c26deae17bc2179ea0fe3e5dc96105b9b","src/body/aggregate.rs":"a4b05d775a7ef7807ce4eb3ccd0592f542398c7e14c876cb07298dc792b076e3","src/body/body.rs":"1fafdc91f9a48c19ec3eaeede79adc1b7c0162bca03efb40f85e9d7f7ed9eb3f","src/body/length.rs":"2d186f50f05b0562db92d3e1d272521c60c9ad259222ccb1a9310b1ff380a64e","src/body/mod.rs":"8098a367c239f05ba443a9b5394449142c6f144ad187f87f8d9f9cde74405b44","src/body/to_bytes.rs":"517077ed79a987c96a89f70a09eba776db5e8b867768da2ca291d28c2c0d70d2","src/cfg.rs":"de5fee5bba45a982c10e8f09fc24677be5494bf6da0b39a3a132f0f6eb3fe41e","src/client/client.rs":"00df0ef99e35d7b3b60c2da6aabee3418f2d35c45a0127ce64893331db040972","src/client/conn.rs":"1358a7b7b43588bd9863f2243ac78381d20018e530e3f8efc58fe4d7df239d04","src/client/conn/http1.rs":"9e4a9f2565f5a4bb8201d5a7321b89b6597b0a05f899da1326b72a9668639e15","src/client/conn/http2.rs":"95f2ae02b8297d48560049a5fd557d374fa6a325ac563996e88e2ae5fff0b4ec","src/client/connect/dns.rs":"98830a9163eae71cbf8d240c6e531ae98d6b51653c0d158fc1c5bddad4f7321e","src/client/connect/http.rs":"6d5b6e0d4f83ecfe66e79d1d4eb72597588af0ba70576faab2e658e3b781c09e","src/client/connect/mod.rs":"83ef7a4d8e8376bfd69321d4646ac439158f3d2c228acbc74dba208bfa0ae938","src/client/dispatch.rs":"39cac7daaf4b473c030d338e48c6fd4e4133742a06a0047ea7153e56def3cbdc","src/client/mod.rs":"d5580cda5e7dc9c5240c72a9ea0005d34b5412c28067ab3fa2301ba4cf49d9fa","src/client/pool.rs":"584f473408059b230adc1a74e80795d27b402e5de16224017157ed06694f7eab","src/client/service.rs":"e61baf9c206da67265c4fefe48fc037d65d93eebfecca68e3dc2215896ef4bd0","src/client/tests.rs":"f7eb2d1dba18e1bd69990f59e61b73a0477db5cc4de68fd64bd7cd36a9406072","src/common/buf.rs":"c762dc2688828ffc88f0549ceddeef65e57d404c245118bcacf3dd8d402bc9cc","src/common/date.rs":"f9a1a63aa7e8f5d6f5800cd56e7e6182cf07e781089930afb529263c1d8adf14","src/common/drain.rs":"058bbcf26dfeb96d7646c69e03b5a5f363b3bcee9afe0a9fe30ea52a9eb995ff","src/common/exec.rs":"c9e24d6c624b9c237bcdea7c59c60c9b8539510ac053cad50e861567cea3e17b","src/common/io/mod.rs":"6f8e4518df7f24d81fc59b46a2deb61557e8d92700bdc62539fe0f034066fc89","src/common/io/rewind.rs":"a708a373d96e7b1444d8497d57f0fe1902456fda8eb3dc42ade3a8f305880625","src/common/lazy.rs":"5cee776d65f28282e556567b433bddb908947df6601218872496ba088c2a7d12","src/common/mod.rs":"363cbf3853ffe6c4258010b17e67babdb8f518fc3cad39dc6588e7ba75587405","src/common/sync_wrapper.rs":"76206c2a52eeb62cdba279d620a4aef52134c6ac782a9f61e741edc8b653cb50","src/common/task.rs":"5a7c2b9255ab023cceedb8e42bd26db7ba8f11498d2f14d4b23a798618cbc920","src/common/watch.rs":"eb6db13fbb266ec11200ffa1f5e7a9a132d7e6555373895efde1e2daea428e03","src/error.rs":"d3f3c8e2303c964904e84a4bf8b93ff6b036c8918bac2bd66edac5fd5967c7e3","src/ext.rs":"19a65a25be9b821ad4088583f712d4d7f388096ec9d69b33f40129c9945afe2c","src/ext/h1_reason_phrase.rs":"e1d18088f942b52dbee766d81e11a9caeadaf368ff12b58d53b97fc62d08876c","src/ffi/body.rs":"941fb8b79097e5a4eec0c611a1cd5db24bed3479f1a14cf754e33d19f6d25854","src/ffi/client.rs":"6b35700e9dec4a9cb40ad3155327bd6fe11165e0cef1874a3916cf96d8b0c7a6","src/ffi/error.rs":"de3d8c1eb3818b438ed28a9dea800dfdac47bf2dd21a7c3e5fc10cb331b6e39f","src/ffi/http_types.rs":"ae25e0fd07ec80e90d5b4f488ce972fe7858f009261fdf16a35b2bd0b1bbdad3","src/ffi/io.rs":"ab176e866c179a589d22e3aa7410612615e60117019d1e589f9732c36a2282da","src/ffi/macros.rs":"8e1fe58244295db1d19aceeb0e9a777fe484ccc20194fae88b54208e0cbeb515","src/ffi/mod.rs":"0e52ae3586c6a960ae68e862561aabcee690a1e23c6d5d1045fcdc3c74b7fc96","src/ffi/task.rs":"f348cdbe1f1d4e26b339cd9382bb739b0f37aaceb2aa85627b7fda0c6326de56","src/headers.rs":"4d76596bfc90f88fe8b48bb8d0552a215a20c452197ea982b37ba30fa496e007","src/lib.rs":"4014d93b86bda6a5f9beaed8f98b152a9d5d67517f08bbe1aa04e2f078f80553","src/mock.rs":"8b455312be74af6c4a27b3beba85a9493c86d43097947c5aad8a5e9dc0dcdbb3","src/proto/h1/conn.rs":"ba7d5bb4875dbd11f622986034cab8eaa2a751235324bf7cf03bea20c66f9f00","src/proto/h1/decode.rs":"0d92ed844160099d385fa5b13afa6b8134700373b097c81f91416f7f2b800333","src/proto/h1/dispatch.rs":"da3a986e8e0d255bedac48109a31921b3faf575c6821d5f0f60dd06a24900f75","src/proto/h1/encode.rs":"3a360356431ff3f011226cf81fb4eeb63cfe9ca25140e41e2e3907f6d64725f9","src/proto/h1/io.rs":"321d845a497eb4761dbd4eedb994ae9d6e5aca7faabf3b05e83eb35cb4ebf214","src/proto/h1/mod.rs":"61ec22d19567116aadc365ca424c958744b058b55d2f064b9a74ee88b126c7be","src/proto/h1/role.rs":"60ecf2caad5d54f78234a12b58eb75d9fb72509313f194b9475301ad60756262","src/proto/h2/client.rs":"5862ca7bc2847f58ed5f57464f8eb74abe3fe89afe4bd632e575a3c51b8a8744","src/proto/h2/mod.rs":"1f3f157aaef6d91b7af8abea7f76ab1c49ee2038b71027c83f83a2648786fafc","src/proto/h2/ping.rs":"1ea4daea2317a72958879a89baecdea02fb7ab238083606461400ed9e3df0c83","src/proto/h2/server.rs":"a0a221bd960c57117da94160d9baddbbdd73ddfc06c328cd86d407bc25e07314","src/proto/mod.rs":"1a935a3da830131f848a6a64c049c559ce07e6b0012fd6e4002bb365f562ebeb","src/rt.rs":"1ef7d4bb3ad6637c6f37189e30d740c061a3c98ca008d266a99f865130909427","src/server/accept.rs":"07b9b520fbf7d8f472455412f359afdd7713fb408f88dbc050585249023fc075","src/server/conn.rs":"9b92acb5f53301cf623ffc0f347363dd6981c3deaed6c8ab425c28a3152e571b","src/server/conn/http1.rs":"af364abcd92aa78e05af83c9c606de66447170dc73276896294c4257e903a047","src/server/conn/http2.rs":"73bb19450798d804bf1b76e8ac495f9cdbad3453c009756b66f06c1e47f2f664","src/server/mod.rs":"2375370854ac8ae5b80378aa1e29bc781c50aad1d1150c32515393a3316b745c","src/server/server.rs":"f8d9007c44da3fded15244f88f9b781a9ec94924789136aba6b7c86312816e90","src/server/server_stub.rs":"ab443f51ede637e0b0c08f36fbc143a34935102af2921edcc257660eeaad4537","src/server/shutdown.rs":"45bf03fc9314873572775fb4ea336230340108239c88f2cd2b435759ad8c693c","src/server/tcp.rs":"8ed09df1ccfb59d0c9ff2561acd0f3d5e2a03929c960f6923e208e08fb5f1806","src/service/http.rs":"ac930efc71bcecc904fa65a44af254501ce8abd6f7d36e591b907eee45e77979","src/service/make.rs":"ee11adc469796427c7b694551d0bbda69f732536079aee53e3ef7f9be4385b2d","src/service/mod.rs":"92c05f08a175fb847868a02e7aca96176df1237458d40a17a7a6aa377476df90","src/service/oneshot.rs":"3ac3f0c7c20fcc3790cef868ca7a70c87a36687ae28c44e0c9978d2e514e4b22","src/service/util.rs":"67f5b4373a4d705a7277cda717b5f3a3ebd00365446e2beb60c1d6193d071a85","src/upgrade.rs":"d6c68680ad74ebbd6ff74ea28b52704c14d4547c67520048f7f84cfe03d11f94"},"package":"bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"}
\ No newline at end of file
+{"files":{"Cargo.toml":"d48706237560dccaf26eb27a9c9b0f25ac9ecc31c45db55e7cd4c9a7f273e165","LICENSE":"25dfd9ec24ebbee73dc93e687526cd4c26deae17bc2179ea0fe3e5dc96105b9b","src/body/aggregate.rs":"a4b05d775a7ef7807ce4eb3ccd0592f542398c7e14c876cb07298dc792b076e3","src/body/body.rs":"1fafdc91f9a48c19ec3eaeede79adc1b7c0162bca03efb40f85e9d7f7ed9eb3f","src/body/length.rs":"2d186f50f05b0562db92d3e1d272521c60c9ad259222ccb1a9310b1ff380a64e","src/body/mod.rs":"8098a367c239f05ba443a9b5394449142c6f144ad187f87f8d9f9cde74405b44","src/body/to_bytes.rs":"517077ed79a987c96a89f70a09eba776db5e8b867768da2ca291d28c2c0d70d2","src/cfg.rs":"de5fee5bba45a982c10e8f09fc24677be5494bf6da0b39a3a132f0f6eb3fe41e","src/client/client.rs":"00df0ef99e35d7b3b60c2da6aabee3418f2d35c45a0127ce64893331db040972","src/client/conn.rs":"1358a7b7b43588bd9863f2243ac78381d20018e530e3f8efc58fe4d7df239d04","src/client/conn/http1.rs":"9e4a9f2565f5a4bb8201d5a7321b89b6597b0a05f899da1326b72a9668639e15","src/client/conn/http2.rs":"95f2ae02b8297d48560049a5fd557d374fa6a325ac563996e88e2ae5fff0b4ec","src/client/connect/dns.rs":"98830a9163eae71cbf8d240c6e531ae98d6b51653c0d158fc1c5bddad4f7321e","src/client/connect/http.rs":"6d5b6e0d4f83ecfe66e79d1d4eb72597588af0ba70576faab2e658e3b781c09e","src/client/connect/mod.rs":"83ef7a4d8e8376bfd69321d4646ac439158f3d2c228acbc74dba208bfa0ae938","src/client/dispatch.rs":"39cac7daaf4b473c030d338e48c6fd4e4133742a06a0047ea7153e56def3cbdc","src/client/mod.rs":"d5580cda5e7dc9c5240c72a9ea0005d34b5412c28067ab3fa2301ba4cf49d9fa","src/client/pool.rs":"584f473408059b230adc1a74e80795d27b402e5de16224017157ed06694f7eab","src/client/service.rs":"e61baf9c206da67265c4fefe48fc037d65d93eebfecca68e3dc2215896ef4bd0","src/client/tests.rs":"f7eb2d1dba18e1bd69990f59e61b73a0477db5cc4de68fd64bd7cd36a9406072","src/common/buf.rs":"c762dc2688828ffc88f0549ceddeef65e57d404c245118bcacf3dd8d402bc9cc","src/common/date.rs":"f9a1a63aa7e8f5d6f5800cd56e7e6182cf07e781089930afb529263c1d8adf14","src/common/drain.rs":"058bbcf26dfeb96d7646c69e03b5a5f363b3bcee9afe0a9fe30ea52a9eb995ff","src/common/exec.rs":"c9e24d6c624b9c237bcdea7c59c60c9b8539510ac053cad50e861567cea3e17b","src/common/io/mod.rs":"6f8e4518df7f24d81fc59b46a2deb61557e8d92700bdc62539fe0f034066fc89","src/common/io/rewind.rs":"a708a373d96e7b1444d8497d57f0fe1902456fda8eb3dc42ade3a8f305880625","src/common/lazy.rs":"5cee776d65f28282e556567b433bddb908947df6601218872496ba088c2a7d12","src/common/mod.rs":"363cbf3853ffe6c4258010b17e67babdb8f518fc3cad39dc6588e7ba75587405","src/common/sync_wrapper.rs":"76206c2a52eeb62cdba279d620a4aef52134c6ac782a9f61e741edc8b653cb50","src/common/task.rs":"5a7c2b9255ab023cceedb8e42bd26db7ba8f11498d2f14d4b23a798618cbc920","src/common/watch.rs":"eb6db13fbb266ec11200ffa1f5e7a9a132d7e6555373895efde1e2daea428e03","src/error.rs":"d3f3c8e2303c964904e84a4bf8b93ff6b036c8918bac2bd66edac5fd5967c7e3","src/ext.rs":"19a65a25be9b821ad4088583f712d4d7f388096ec9d69b33f40129c9945afe2c","src/ext/h1_reason_phrase.rs":"e1d18088f942b52dbee766d81e11a9caeadaf368ff12b58d53b97fc62d08876c","src/ffi/body.rs":"941fb8b79097e5a4eec0c611a1cd5db24bed3479f1a14cf754e33d19f6d25854","src/ffi/client.rs":"6b35700e9dec4a9cb40ad3155327bd6fe11165e0cef1874a3916cf96d8b0c7a6","src/ffi/error.rs":"de3d8c1eb3818b438ed28a9dea800dfdac47bf2dd21a7c3e5fc10cb331b6e39f","src/ffi/http_types.rs":"ae25e0fd07ec80e90d5b4f488ce972fe7858f009261fdf16a35b2bd0b1bbdad3","src/ffi/io.rs":"ab176e866c179a589d22e3aa7410612615e60117019d1e589f9732c36a2282da","src/ffi/macros.rs":"8e1fe58244295db1d19aceeb0e9a777fe484ccc20194fae88b54208e0cbeb515","src/ffi/mod.rs":"0e52ae3586c6a960ae68e862561aabcee690a1e23c6d5d1045fcdc3c74b7fc96","src/ffi/task.rs":"f348cdbe1f1d4e26b339cd9382bb739b0f37aaceb2aa85627b7fda0c6326de56","src/headers.rs":"4d76596bfc90f88fe8b48bb8d0552a215a20c452197ea982b37ba30fa496e007","src/lib.rs":"cff8e513cb2d9611ba30a7a7787fe5220b848819e9f46267a8fe2acaf465ec28","src/mock.rs":"8b455312be74af6c4a27b3beba85a9493c86d43097947c5aad8a5e9dc0dcdbb3","src/proto/h1/conn.rs":"ba7d5bb4875dbd11f622986034cab8eaa2a751235324bf7cf03bea20c66f9f00","src/proto/h1/decode.rs":"ac06e4fb3b0bf07907581949ad361e4ba05559fd8add253b90bd183cfb09e34f","src/proto/h1/dispatch.rs":"da3a986e8e0d255bedac48109a31921b3faf575c6821d5f0f60dd06a24900f75","src/proto/h1/encode.rs":"3a360356431ff3f011226cf81fb4eeb63cfe9ca25140e41e2e3907f6d64725f9","src/proto/h1/io.rs":"0d5f4f6dde439f4b69f24e4c98e05a7dfbcead42beda850dd54705bc6dec357f","src/proto/h1/mod.rs":"61ec22d19567116aadc365ca424c958744b058b55d2f064b9a74ee88b126c7be","src/proto/h1/role.rs":"e7a1300cc27e25519c7b61026f7c4b966faae06db722c8ff42dc07682fecbb58","src/proto/h2/client.rs":"5862ca7bc2847f58ed5f57464f8eb74abe3fe89afe4bd632e575a3c51b8a8744","src/proto/h2/mod.rs":"1f3f157aaef6d91b7af8abea7f76ab1c49ee2038b71027c83f83a2648786fafc","src/proto/h2/ping.rs":"1ea4daea2317a72958879a89baecdea02fb7ab238083606461400ed9e3df0c83","src/proto/h2/server.rs":"705f8ecea99dbf5fe74188ba4f5fa2ea22c252fc443eed51171a89f845dc729d","src/proto/mod.rs":"1a935a3da830131f848a6a64c049c559ce07e6b0012fd6e4002bb365f562ebeb","src/rt.rs":"1ef7d4bb3ad6637c6f37189e30d740c061a3c98ca008d266a99f865130909427","src/server/accept.rs":"07b9b520fbf7d8f472455412f359afdd7713fb408f88dbc050585249023fc075","src/server/conn.rs":"25e1b5dfbd74fd62b41800c49a9492f0f74bc20285c3783a6a2f8a1a9ffbb4cd","src/server/conn/http1.rs":"af364abcd92aa78e05af83c9c606de66447170dc73276896294c4257e903a047","src/server/conn/http2.rs":"9f9843891e7dc56ee8d5f0b8b4d38e77b0e327de73babdfdc05da9c5641f09dd","src/server/mod.rs":"2375370854ac8ae5b80378aa1e29bc781c50aad1d1150c32515393a3316b745c","src/server/server.rs":"5294facdd9abae7a2bc9a7eb7ce1521437780a0f6505fee44e8aa8a2dd909e5e","src/server/server_stub.rs":"ab443f51ede637e0b0c08f36fbc143a34935102af2921edcc257660eeaad4537","src/server/shutdown.rs":"45bf03fc9314873572775fb4ea336230340108239c88f2cd2b435759ad8c693c","src/server/tcp.rs":"8ed09df1ccfb59d0c9ff2561acd0f3d5e2a03929c960f6923e208e08fb5f1806","src/service/http.rs":"ac930efc71bcecc904fa65a44af254501ce8abd6f7d36e591b907eee45e77979","src/service/make.rs":"ee11adc469796427c7b694551d0bbda69f732536079aee53e3ef7f9be4385b2d","src/service/mod.rs":"92c05f08a175fb847868a02e7aca96176df1237458d40a17a7a6aa377476df90","src/service/oneshot.rs":"3ac3f0c7c20fcc3790cef868ca7a70c87a36687ae28c44e0c9978d2e514e4b22","src/service/util.rs":"67f5b4373a4d705a7277cda717b5f3a3ebd00365446e2beb60c1d6193d071a85","src/upgrade.rs":"d6c68680ad74ebbd6ff74ea28b52704c14d4547c67520048f7f84cfe03d11f94"},"package":"41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7"}
\ No newline at end of file
diff --git a/crates/hyper/Android.bp b/crates/hyper/Android.bp
index b5df6a9..b9acf91 100644
--- a/crates/hyper/Android.bp
+++ b/crates/hyper/Android.bp
@@ -18,7 +18,7 @@
     host_supported: true,
     crate_name: "hyper",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.14.28",
+    cargo_pkg_version: "0.14.32",
     crate_root: "src/lib.rs",
     edition: "2018",
     features: [
diff --git a/crates/hyper/Cargo.lock b/crates/hyper/Cargo.lock
deleted file mode 100644
index 455bed9..0000000
--- a/crates/hyper/Cargo.lock
+++ /dev/null
@@ -1,897 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "addr2line"
-version = "0.21.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
-dependencies = [
- "gimli",
-]
-
-[[package]]
-name = "adler"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
-[[package]]
-name = "aho-corasick"
-version = "1.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "async-stream"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
-dependencies = [
- "async-stream-impl",
- "futures-core",
- "pin-project-lite",
-]
-
-[[package]]
-name = "async-stream-impl"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi 0.1.19",
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "backtrace"
-version = "0.3.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
-dependencies = [
- "addr2line",
- "cc",
- "cfg-if",
- "libc",
- "miniz_oxide",
- "object",
- "rustc-demangle",
-]
-
-[[package]]
-name = "bytes"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
-
-[[package]]
-name = "cc"
-version = "1.0.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "env_logger"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
-dependencies = [
- "atty",
- "humantime",
- "log",
- "regex",
- "termcolor",
-]
-
-[[package]]
-name = "equivalent"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
-name = "form_urlencoded"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
-dependencies = [
- "percent-encoding",
-]
-
-[[package]]
-name = "futures-channel"
-version = "0.3.29"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
-dependencies = [
- "futures-core",
-]
-
-[[package]]
-name = "futures-core"
-version = "0.3.29"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
-
-[[package]]
-name = "futures-sink"
-version = "0.3.29"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
-
-[[package]]
-name = "futures-task"
-version = "0.3.29"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
-
-[[package]]
-name = "futures-util"
-version = "0.3.29"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
-dependencies = [
- "futures-core",
- "futures-task",
- "pin-project-lite",
- "pin-utils",
-]
-
-[[package]]
-name = "gimli"
-version = "0.28.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
-
-[[package]]
-name = "h2"
-version = "0.3.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178"
-dependencies = [
- "bytes",
- "fnv",
- "futures-core",
- "futures-sink",
- "futures-util",
- "http",
- "indexmap",
- "slab",
- "tokio",
- "tokio-util",
- "tracing",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.14.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
-
-[[package]]
-name = "http"
-version = "0.2.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
-dependencies = [
- "bytes",
- "fnv",
- "itoa",
-]
-
-[[package]]
-name = "http-body"
-version = "0.4.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
-dependencies = [
- "bytes",
- "http",
- "pin-project-lite",
-]
-
-[[package]]
-name = "httparse"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
-
-[[package]]
-name = "httpdate"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
-
-[[package]]
-name = "humantime"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
-dependencies = [
- "quick-error",
-]
-
-[[package]]
-name = "hyper"
-version = "0.14.28"
-dependencies = [
- "bytes",
- "futures-channel",
- "futures-core",
- "futures-util",
- "h2",
- "http",
- "http-body",
- "httparse",
- "httpdate",
- "itoa",
- "libc",
- "matches",
- "num_cpus",
- "pin-project-lite",
- "pnet_datalink",
- "pretty_env_logger",
- "serde",
- "serde_json",
- "socket2",
- "spmc",
- "tokio",
- "tokio-test",
- "tokio-util",
- "tower",
- "tower-service",
- "tracing",
- "url",
- "want",
-]
-
-[[package]]
-name = "idna"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
-dependencies = [
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "indexmap"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
-dependencies = [
- "equivalent",
- "hashbrown",
-]
-
-[[package]]
-name = "ipnetwork"
-version = "0.17.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02c3eaab3ac0ede60ffa41add21970a7df7d91772c03383aac6c2c3d53cc716b"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "itoa"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
-
-[[package]]
-name = "libc"
-version = "0.2.150"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
-
-[[package]]
-name = "log"
-version = "0.4.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
-
-[[package]]
-name = "matches"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
-
-[[package]]
-name = "memchr"
-version = "2.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
-
-[[package]]
-name = "miniz_oxide"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
-dependencies = [
- "adler",
-]
-
-[[package]]
-name = "mio"
-version = "0.8.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
-dependencies = [
- "libc",
- "wasi",
- "windows-sys",
-]
-
-[[package]]
-name = "num_cpus"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
-dependencies = [
- "hermit-abi 0.3.3",
- "libc",
-]
-
-[[package]]
-name = "object"
-version = "0.32.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
-
-[[package]]
-name = "percent-encoding"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
-
-[[package]]
-name = "pin-project"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
-dependencies = [
- "pin-project-internal",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "pin-project-lite"
-version = "0.2.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
-
-[[package]]
-name = "pin-utils"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-
-[[package]]
-name = "pnet_base"
-version = "0.27.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e4688aa497ef62129f302a5800ebde67825f8ff129f43690ca84099f6620bed"
-
-[[package]]
-name = "pnet_datalink"
-version = "0.27.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59001c9c4d9d23bf2f61afaaf134a766fd6932ba2557c606b9112157053b9ac7"
-dependencies = [
- "ipnetwork",
- "libc",
- "pnet_base",
- "pnet_sys",
- "winapi",
-]
-
-[[package]]
-name = "pnet_sys"
-version = "0.27.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7589e4c4e7ed72a3ffdff8a65d3bea84e8c3a23e19d0a10e8f45efdf632fff15"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "pretty_env_logger"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d"
-dependencies = [
- "env_logger",
- "log",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quick-error"
-version = "1.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-
-[[package]]
-name = "quote"
-version = "1.0.33"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "regex"
-version = "1.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-automata",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
-
-[[package]]
-name = "rustc-demangle"
-version = "0.1.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
-
-[[package]]
-name = "ryu"
-version = "1.0.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
-
-[[package]]
-name = "serde"
-version = "1.0.192"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.192"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.108"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "slab"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "socket2"
-version = "0.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
-dependencies = [
- "libc",
- "windows-sys",
-]
-
-[[package]]
-name = "spmc"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02a8428da277a8e3a15271d79943e80ccc2ef254e78813a166a08d65e4c3ece5"
-
-[[package]]
-name = "syn"
-version = "2.0.39"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "tinyvec"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
-dependencies = [
- "tinyvec_macros",
-]
-
-[[package]]
-name = "tinyvec_macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
-
-[[package]]
-name = "tokio"
-version = "1.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9"
-dependencies = [
- "backtrace",
- "bytes",
- "libc",
- "mio",
- "num_cpus",
- "pin-project-lite",
- "socket2",
- "tokio-macros",
- "windows-sys",
-]
-
-[[package]]
-name = "tokio-macros"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "tokio-stream"
-version = "0.1.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
-dependencies = [
- "futures-core",
- "pin-project-lite",
- "tokio",
-]
-
-[[package]]
-name = "tokio-test"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e89b3cbabd3ae862100094ae433e1def582cf86451b4e9bf83aa7ac1d8a7d719"
-dependencies = [
- "async-stream",
- "bytes",
- "futures-core",
- "tokio",
- "tokio-stream",
-]
-
-[[package]]
-name = "tokio-util"
-version = "0.7.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
-dependencies = [
- "bytes",
- "futures-core",
- "futures-sink",
- "pin-project-lite",
- "tokio",
- "tracing",
-]
-
-[[package]]
-name = "tower"
-version = "0.4.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
-dependencies = [
- "futures-core",
- "futures-util",
- "pin-project",
- "pin-project-lite",
- "tokio",
- "tower-layer",
- "tower-service",
-]
-
-[[package]]
-name = "tower-layer"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
-
-[[package]]
-name = "tower-service"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
-
-[[package]]
-name = "tracing"
-version = "0.1.40"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
-dependencies = [
- "pin-project-lite",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-core"
-version = "0.1.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
-dependencies = [
- "once_cell",
-]
-
-[[package]]
-name = "try-lock"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
-
-[[package]]
-name = "unicode-bidi"
-version = "0.3.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
-
-[[package]]
-name = "unicode-normalization"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
-dependencies = [
- "tinyvec",
-]
-
-[[package]]
-name = "url"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
-dependencies = [
- "form_urlencoded",
- "idna",
- "percent-encoding",
-]
-
-[[package]]
-name = "want"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
-dependencies = [
- "try-lock",
-]
-
-[[package]]
-name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "windows-sys"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-dependencies = [
- "windows-targets",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
-dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
-]
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
diff --git a/crates/hyper/Cargo.toml b/crates/hyper/Cargo.toml
index 1ceb406..d1cd9c3 100644
--- a/crates/hyper/Cargo.toml
+++ b/crates/hyper/Cargo.toml
@@ -12,13 +12,19 @@
 [package]
 edition = "2018"
 name = "hyper"
-version = "0.14.28"
+version = "0.14.32"
 authors = ["Sean McArthur <sean@seanmonstar.com>"]
+build = false
 include = [
     "Cargo.toml",
     "LICENSE",
     "src/**/*",
 ]
+autolib = false
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
 description = "A fast and correct HTTP library."
 homepage = "https://hyper.rs"
 documentation = "https://docs.rs/hyper"
@@ -51,136 +57,41 @@
 [package.metadata.playground]
 features = ["full"]
 
-[profile.bench]
-codegen-units = 1
-incremental = false
-
-[profile.release]
-codegen-units = 1
-incremental = false
-
-[[example]]
-name = "client"
-path = "examples/client.rs"
-required-features = ["full"]
-
-[[example]]
-name = "client_json"
-path = "examples/client_json.rs"
-required-features = ["full"]
-
-[[example]]
-name = "echo"
-path = "examples/echo.rs"
-required-features = ["full"]
-
-[[example]]
-name = "gateway"
-path = "examples/gateway.rs"
-required-features = ["full"]
-
-[[example]]
-name = "hello"
-path = "examples/hello.rs"
-required-features = ["full"]
-
-[[example]]
-name = "http_proxy"
-path = "examples/http_proxy.rs"
-required-features = ["full"]
-
-[[example]]
-name = "multi_server"
-path = "examples/multi_server.rs"
-required-features = ["full"]
-
-[[example]]
-name = "params"
-path = "examples/params.rs"
-required-features = ["full"]
-
-[[example]]
-name = "send_file"
-path = "examples/send_file.rs"
-required-features = ["full"]
-
-[[example]]
-name = "service_struct_impl"
-path = "examples/service_struct_impl.rs"
-required-features = ["full"]
-
-[[example]]
-name = "single_threaded"
-path = "examples/single_threaded.rs"
-required-features = ["full"]
-
-[[example]]
-name = "state"
-path = "examples/state.rs"
-required-features = ["full"]
-
-[[example]]
-name = "tower_client"
-path = "examples/tower_client.rs"
-required-features = [
-    "full",
-    "backports",
+[features]
+__internal_happy_eyeballs_tests = []
+backports = []
+client = []
+default = []
+deprecated = []
+ffi = ["libc"]
+full = [
+    "client",
+    "http1",
+    "http2",
+    "server",
+    "stream",
+    "runtime",
+]
+http1 = []
+http2 = ["h2"]
+nightly = []
+runtime = [
+    "tcp",
+    "tokio/rt",
+    "tokio/time",
+]
+server = []
+stream = []
+tcp = [
+    "socket2",
+    "tokio/net",
+    "tokio/rt",
+    "tokio/time",
 ]
 
-[[example]]
-name = "tower_server"
-path = "examples/tower_server.rs"
-required-features = ["full"]
-
-[[example]]
-name = "upgrades"
-path = "examples/upgrades.rs"
-required-features = ["full"]
-
-[[example]]
-name = "web_api"
-path = "examples/web_api.rs"
-required-features = ["full"]
-
-[[test]]
-name = "client"
-path = "tests/client.rs"
-required-features = ["full"]
-
-[[test]]
-name = "integration"
-path = "tests/integration.rs"
-required-features = ["full"]
-
-[[test]]
-name = "server"
-path = "tests/server.rs"
-required-features = ["full"]
-
-[[bench]]
-name = "body"
-path = "benches/body.rs"
-required-features = ["full"]
-
-[[bench]]
-name = "connect"
-path = "benches/connect.rs"
-required-features = ["full"]
-
-[[bench]]
-name = "end_to_end"
-path = "benches/end_to_end.rs"
-required-features = ["full"]
-
-[[bench]]
-name = "pipeline"
-path = "benches/pipeline.rs"
-required-features = ["full"]
-
-[[bench]]
-name = "server"
-path = "benches/server.rs"
-required-features = ["full"]
+[lib]
+name = "hyper"
+path = "src/lib.rs"
 
 [dependencies.bytes]
 version = "1"
@@ -197,7 +108,7 @@
 default-features = false
 
 [dependencies.h2]
-version = "0.3.17"
+version = "0.3.24"
 optional = true
 
 [dependencies.http]
@@ -228,7 +139,7 @@
 optional = true
 
 [dependencies.tokio]
-version = "1"
+version = "1.27"
 features = ["sync"]
 
 [dependencies.tower-service]
@@ -267,7 +178,7 @@
 version = "0.3"
 
 [dev-dependencies.tokio]
-version = "1"
+version = "1.27"
 features = [
     "fs",
     "macros",
@@ -298,37 +209,13 @@
 [dev-dependencies.url]
 version = "2.2"
 
-[features]
-__internal_happy_eyeballs_tests = []
-backports = []
-client = []
-default = []
-deprecated = []
-ffi = ["libc"]
-full = [
-    "client",
-    "http1",
-    "http2",
-    "server",
-    "stream",
-    "runtime",
-]
-http1 = []
-http2 = ["h2"]
-nightly = []
-runtime = [
-    "tcp",
-    "tokio/rt",
-    "tokio/time",
-]
-server = []
-stream = []
-tcp = [
-    "socket2",
-    "tokio/net",
-    "tokio/rt",
-    "tokio/time",
-]
-
-[target."cfg(any(target_os = \"linux\", target_os = \"macos\"))".dev-dependencies.pnet_datalink]
+[target.'cfg(any(target_os = "linux", target_os = "macos"))'.dev-dependencies.pnet_datalink]
 version = "0.27.2"
+
+[profile.bench]
+codegen-units = 1
+incremental = false
+
+[profile.release]
+codegen-units = 1
+incremental = false
diff --git a/crates/hyper/METADATA b/crates/hyper/METADATA
index 8e14012..32ebbf3 100644
--- a/crates/hyper/METADATA
+++ b/crates/hyper/METADATA
@@ -1,17 +1,17 @@
 name: "hyper"
 description: "A fast and correct HTTP library."
 third_party {
-  version: "0.14.28"
+  version: "0.14.32"
   license_type: NOTICE
   last_upgrade_date {
     year: 2024
-    month: 6
-    day: 3
+    month: 12
+    day: 19
   }
   homepage: "https://crates.io/crates/hyper"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/hyper/hyper-0.14.28.crate"
-    version: "0.14.28"
+    value: "https://static.crates.io/crates/hyper/hyper-0.14.32.crate"
+    version: "0.14.32"
   }
 }
diff --git a/crates/hyper/src/lib.rs b/crates/hyper/src/lib.rs
index e5e4cfc..064a18e 100644
--- a/crates/hyper/src/lib.rs
+++ b/crates/hyper/src/lib.rs
@@ -2,7 +2,8 @@
 #![deny(missing_debug_implementations)]
 #![cfg_attr(test, deny(rust_2018_idioms))]
 #![cfg_attr(all(test, feature = "full"), deny(unreachable_pub))]
-#![cfg_attr(all(test, feature = "full"), deny(warnings))]
+// 0.14.x is not actively developed, new warnings just get in the way.
+//#![cfg_attr(all(test, feature = "full", not(feature = "nightly")), deny(warnings))]
 #![cfg_attr(all(test, feature = "nightly"), feature(test))]
 #![cfg_attr(docsrs, feature(doc_cfg))]
 
diff --git a/crates/hyper/src/proto/h1/decode.rs b/crates/hyper/src/proto/h1/decode.rs
index 6752d58..3206863 100644
--- a/crates/hyper/src/proto/h1/decode.rs
+++ b/crates/hyper/src/proto/h1/decode.rs
@@ -431,7 +431,7 @@
         rdr: &mut R,
     ) -> Poll<Result<ChunkedState, io::Error>> {
         match byte!(rdr, cx) {
-            b'\n' => Poll::Ready(Ok(ChunkedState::Size)),
+            b'\n' => Poll::Ready(Ok(ChunkedState::Start)),
             _ => Poll::Ready(Err(io::Error::new(
                 io::ErrorKind::InvalidInput,
                 "Invalid chunk body LF",
@@ -667,6 +667,21 @@
     }
 
     #[tokio::test]
+    async fn test_read_chunked_with_missing_zero_digit() {
+        // After reading a valid chunk, the ending is missing a zero.
+        let mut mock_buf = &b"1\r\nZ\r\n\r\n\r\n"[..];
+        let mut decoder = Decoder::chunked();
+        let buf = decoder.decode_fut(&mut mock_buf).await.expect("decode");
+        assert_eq!("Z", buf);
+
+        let err = decoder
+            .decode_fut(&mut mock_buf)
+            .await
+            .expect_err("decode 2");
+        assert_eq!(err.kind(), io::ErrorKind::InvalidInput);
+    }
+
+    #[tokio::test]
     async fn test_read_chunked_extensions_over_limit() {
         // construct a chunked body where each individual chunked extension
         // is totally fine, but combined is over the limit.
diff --git a/crates/hyper/src/proto/h1/io.rs b/crates/hyper/src/proto/h1/io.rs
index 02d8a4a..88ce9da 100644
--- a/crates/hyper/src/proto/h1/io.rs
+++ b/crates/hyper/src/proto/h1/io.rs
@@ -40,6 +40,7 @@
 pub(crate) struct Buffered<T, B> {
     flush_pipeline: bool,
     io: T,
+    partial_len: Option<usize>,
     read_blocked: bool,
     read_buf: BytesMut,
     read_buf_strategy: ReadStrategy,
@@ -73,6 +74,7 @@
         Buffered {
             flush_pipeline: false,
             io,
+            partial_len: None,
             read_blocked: false,
             read_buf: BytesMut::with_capacity(0),
             read_buf_strategy: ReadStrategy::default(),
@@ -184,6 +186,7 @@
         loop {
             match super::role::parse_headers::<S>(
                 &mut self.read_buf,
+                self.partial_len,
                 ParseContext {
                     cached_headers: parse_ctx.cached_headers,
                     req_method: parse_ctx.req_method,
@@ -220,11 +223,13 @@
                                 .reset(Instant::now() + Duration::from_secs(30 * 24 * 60 * 60));
                         }
                     }
+                    self.partial_len = None;
                     return Poll::Ready(Ok(msg));
                 }
                 None => {
                     let max = self.read_buf_strategy.max();
-                    if self.read_buf.len() >= max {
+                    let curr_len = self.read_buf.len();
+                    if curr_len >= max {
                         debug!("max_buf_size ({}) reached, closing", max);
                         return Poll::Ready(Err(crate::Error::new_too_large()));
                     }
@@ -242,6 +247,13 @@
                             }
                         }
                     }
+                    if curr_len > 0 {
+                        trace!("partial headers; {} bytes so far", curr_len);
+                        self.partial_len = Some(curr_len);
+                    } else {
+                        // 1xx gobled some bytes
+                        self.partial_len = None;
+                    }
                 }
             }
             if ready!(self.poll_read_from_io(cx)).map_err(crate::Error::new_io)? == 0 {
diff --git a/crates/hyper/src/proto/h1/role.rs b/crates/hyper/src/proto/h1/role.rs
index 6252207..1c00d74 100644
--- a/crates/hyper/src/proto/h1/role.rs
+++ b/crates/hyper/src/proto/h1/role.rs
@@ -62,22 +62,18 @@
 
 pub(super) fn parse_headers<T>(
     bytes: &mut BytesMut,
+    prev_len: Option<usize>,
     ctx: ParseContext<'_>,
 ) -> ParseResult<T::Incoming>
 where
     T: Http1Transaction,
 {
-    // If the buffer is empty, don't bother entering the span, it's just noise.
-    if bytes.is_empty() {
-        return Ok(None);
-    }
-
-    let span = trace_span!("parse_headers");
-    let _s = span.enter();
-
     #[cfg(all(feature = "server", feature = "runtime"))]
     if !*ctx.h1_header_read_timeout_running {
         if let Some(h1_header_read_timeout) = ctx.h1_header_read_timeout {
+            let span = trace_span!("parse_headers");
+            let _s = span.enter();
+
             let deadline = Instant::now() + h1_header_read_timeout;
             *ctx.h1_header_read_timeout_running = true;
             match ctx.h1_header_read_timeout_fut {
@@ -94,9 +90,45 @@
         }
     }
 
+    // If the buffer is empty, don't bother entering the span, it's just noise.
+    if bytes.is_empty() {
+        return Ok(None);
+    }
+
+    let span = trace_span!("parse_headers");
+    let _s = span.enter();
+
+    if let Some(prev_len) = prev_len {
+        if !is_complete_fast(bytes, prev_len) {
+            return Ok(None);
+        }
+    }
+
     T::parse(bytes, ctx)
 }
 
+/// A fast scan for the end of a message.
+/// Used when there was a partial read, to skip full parsing on a
+/// a slow connection.
+fn is_complete_fast(bytes: &[u8], prev_len: usize) -> bool {
+    let start = if prev_len < 3 { 0 } else { prev_len - 3 };
+    let bytes = &bytes[start..];
+
+    for (i, b) in bytes.iter().copied().enumerate() {
+        if b == b'\r' {
+            if bytes[i + 1..].chunks(3).next() == Some(&b"\n\r\n"[..]) {
+                return true;
+            }
+        } else if b == b'\n' {
+            if bytes.get(i + 1) == Some(&b'\n') {
+                return true;
+            }
+        }
+    }
+
+    false
+}
+
 pub(super) fn encode_headers<T>(
     enc: Encode<'_, T::Outgoing>,
     dst: &mut Vec<u8>,
@@ -2633,6 +2665,28 @@
     }
 
     #[test]
+    fn test_is_complete_fast() {
+        let s = b"GET / HTTP/1.1\r\na: b\r\n\r\n";
+        for n in 0..s.len() {
+            assert!(is_complete_fast(s, n), "{:?}; {}", s, n);
+        }
+        let s = b"GET / HTTP/1.1\na: b\n\n";
+        for n in 0..s.len() {
+            assert!(is_complete_fast(s, n));
+        }
+
+        // Not
+        let s = b"GET / HTTP/1.1\r\na: b\r\n\r";
+        for n in 0..s.len() {
+            assert!(!is_complete_fast(s, n));
+        }
+        let s = b"GET / HTTP/1.1\na: b\n";
+        for n in 0..s.len() {
+            assert!(!is_complete_fast(s, n));
+        }
+    }
+
+    #[test]
     fn test_write_headers_orig_case_empty_value() {
         let mut headers = HeaderMap::new();
         let name = http::header::HeaderName::from_static("x-empty");
diff --git a/crates/hyper/src/proto/h2/server.rs b/crates/hyper/src/proto/h2/server.rs
index b4e8d68..b7bff59 100644
--- a/crates/hyper/src/proto/h2/server.rs
+++ b/crates/hyper/src/proto/h2/server.rs
@@ -39,6 +39,7 @@
 const DEFAULT_MAX_FRAME_SIZE: u32 = 1024 * 16; // 16kb
 const DEFAULT_MAX_SEND_BUF_SIZE: usize = 1024 * 400; // 400kb
 const DEFAULT_SETTINGS_MAX_HEADER_LIST_SIZE: u32 = 16 << 20; // 16 MB "sane default" taken from golang http2
+const DEFAULT_MAX_LOCAL_ERROR_RESET_STREAMS: usize = 1024;
 
 #[derive(Clone, Debug)]
 pub(crate) struct Config {
@@ -49,6 +50,7 @@
     pub(crate) enable_connect_protocol: bool,
     pub(crate) max_concurrent_streams: Option<u32>,
     pub(crate) max_pending_accept_reset_streams: Option<usize>,
+    pub(crate) max_local_error_reset_streams: Option<usize>,
     #[cfg(feature = "runtime")]
     pub(crate) keep_alive_interval: Option<Duration>,
     #[cfg(feature = "runtime")]
@@ -67,6 +69,7 @@
             enable_connect_protocol: false,
             max_concurrent_streams: None,
             max_pending_accept_reset_streams: None,
+            max_local_error_reset_streams: Some(DEFAULT_MAX_LOCAL_ERROR_RESET_STREAMS),
             #[cfg(feature = "runtime")]
             keep_alive_interval: None,
             #[cfg(feature = "runtime")]
@@ -125,6 +128,7 @@
             .initial_connection_window_size(config.initial_conn_window_size)
             .max_frame_size(config.max_frame_size)
             .max_header_list_size(config.max_header_list_size)
+            .max_local_error_reset_streams(config.max_local_error_reset_streams)
             .max_send_buffer_size(config.max_send_buffer_size);
         if let Some(max) = config.max_concurrent_streams {
             builder.max_concurrent_streams(max);
diff --git a/crates/hyper/src/server/conn.rs b/crates/hyper/src/server/conn.rs
index 8ce4c95..951c9ee 100644
--- a/crates/hyper/src/server/conn.rs
+++ b/crates/hyper/src/server/conn.rs
@@ -414,6 +414,23 @@
         self
     }
 
+    /// Configures the maximum number of pending reset streams allowed before a GOAWAY will be sent.
+    ///
+    /// This will default to the default value set by the [`h2` crate](https://crates.io/crates/h2).
+    /// As of v0.3.17, it is 20.
+    ///
+    /// See <https://github.com/hyperium/hyper/issues/2877> for more information.
+    #[cfg(feature = "http2")]
+    #[cfg_attr(docsrs, doc(cfg(feature = "http2")))]
+    pub fn http2_max_local_error_reset_streams(
+        &mut self,
+        max: impl Into<Option<usize>>,
+    ) -> &mut Self {
+        self.h2_builder.max_local_error_reset_streams = max.into();
+
+        self
+    }
+
     /// Sets the [`SETTINGS_INITIAL_WINDOW_SIZE`][spec] option for HTTP2
     /// stream-level flow control.
     ///
diff --git a/crates/hyper/src/server/conn/http2.rs b/crates/hyper/src/server/conn/http2.rs
index 4f7df82..4e68545 100644
--- a/crates/hyper/src/server/conn/http2.rs
+++ b/crates/hyper/src/server/conn/http2.rs
@@ -175,6 +175,17 @@
         self
     }
 
+    /// Configures the maximum number of pending reset streams allowed before a GOAWAY will be sent.
+    ///
+    /// This will default to the default value set by the [`h2` crate](https://crates.io/crates/h2).
+    /// As of v0.3.17, it is 20.
+    ///
+    /// See <https://github.com/hyperium/hyper/issues/2877> for more information.
+    pub fn max_pending_accept_reset_streams(&mut self, max: impl Into<Option<usize>>) -> &mut Self {
+        self.h2_builder.max_pending_accept_reset_streams = max.into();
+        self
+    }
+
     /// Sets an interval for HTTP2 Ping frames should be sent to keep a
     /// connection alive.
     ///
diff --git a/crates/hyper/src/server/server.rs b/crates/hyper/src/server/server.rs
index 6d7d69e..4cccedd 100644
--- a/crates/hyper/src/server/server.rs
+++ b/crates/hyper/src/server/server.rs
@@ -387,6 +387,21 @@
         self
     }
 
+    /// Configures the maximum number of local reset streams allowed before a GOAWAY will be sent.
+    ///
+    /// If not set, hyper will use a default, currently of 1024.
+    ///
+    /// If `None` is supplied, hyper will not apply any limit.
+    /// This is not advised, as it can potentially expose servers to DOS vulnerabilities.
+    ///
+    /// See <https://rustsec.org/advisories/RUSTSEC-2024-0003.html> for more information.
+    #[cfg(feature = "http2")]
+    #[cfg_attr(docsrs, doc(cfg(feature = "http2")))]
+    pub fn http2_max_local_error_reset_streams(mut self, max: impl Into<Option<usize>>) -> Self {
+        self.protocol.http2_max_local_error_reset_streams(max);
+        self
+    }
+
     /// Sets the [`SETTINGS_INITIAL_WINDOW_SIZE`][spec] option for HTTP2
     /// stream-level flow control.
     ///
diff --git a/pseudo_crate/Cargo.lock b/pseudo_crate/Cargo.lock
index db8ce15..8f0b437 100644
--- a/pseudo_crate/Cargo.lock
+++ b/pseudo_crate/Cargo.lock
@@ -2539,9 +2539,9 @@
 
 [[package]]
 name = "hyper"
-version = "0.14.28"
+version = "0.14.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
+checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7"
 dependencies = [
  "bytes",
  "futures-channel",
diff --git a/pseudo_crate/Cargo.toml b/pseudo_crate/Cargo.toml
index 4782645..21fad34 100644
--- a/pseudo_crate/Cargo.toml
+++ b/pseudo_crate/Cargo.toml
@@ -147,7 +147,7 @@
 http-body = "=0.4.6"
 httparse = "=1.9.5"
 httpdate = "=1.0.3"
-hyper = "=0.14.28"
+hyper = "=0.14.32"
 hyper-timeout = "=0.4.1"
 ident_case = "=1.0.1"
 idna = "=0.5.0"