From 7fe1137ffcee17bfc4be0e953fa4b9683a8d65c3 Mon Sep 17 00:00:00 2001 From: sunnylqm Date: Fri, 16 Oct 2026 23:41:48 +0800 Subject: [PATCH] refactor(native): one implementation of the resumable-download decisions Android, iOS and Harmony each implemented the same resume decisions around a partial archive and its `.resume` sidecar, and they had drifted: only Harmony refreshed the sidecar with the final size after a complete transfer (so the other two re-downloaded a chunked archive whose process died between download end and unzip), only Android capped the sidecar read at 64KB, and the three Content-Range parsers disagreed on trailing text and signs. cpp/patch_core/resume_plan.h now makes every decision: read and validate the sidecar, plan the request (complete / resume with Range, Accept-Encoding: identity and If-Range / fresh), classify the response (complete / restart / httpError / write with append, base, total, encoded, persistSidecar) and build the sidecar text. The downloaders keep only the IO: Android through JNI (ResumePlan.java), Harmony through NAPI, iOS directly. All three refresh the sidecar after a complete unencoded transfer, cap it at 64KB and accept digits only in Content-Range. cpp/patch_core/tests/resume-plan-vectors.json (66 cases, including every Content-Range case the removed JVM and Harmony tests covered) pins the behaviour; test-patch-core.sh replays it. JNI and NAPI tables are generated from scripts/contract.ts; android/lib is rebuilt with NDK 28.2. Co-Authored-By: Claude Opus 5.5 --- CODE_AUDIT.md | 2 +- android/lib/arm64-v8a/librnpushy.so | Bin 445048 -> 453856 bytes android/lib/armeabi-v7a/librnpushy.so | Bin 279764 -> 285832 bytes android/lib/x86/librnpushy.so | Bin 429960 -> 439868 bytes android/lib/x86_64/librnpushy.so | Bin 450776 -> 459688 bytes .../modules/update/DownloadTask.java | 219 +++---- .../reactnative/modules/update/HttpUtils.java | 34 - .../modules/update/ResumePlan.java | 31 + .../modules/update/HttpUtilsTest.java | 46 -- cpp/android_jni/jni_natives.h | 3 + cpp/android_jni/jni_registration.cpp | 9 + cpp/android_jni/resume_plan_jni.cpp | 58 ++ cpp/patch_core/resume_plan.cpp | 226 +++++++ cpp/patch_core/resume_plan.h | 88 +++ cpp/patch_core/tests/resume-plan-vectors.json | 606 ++++++++++++++++++ cpp/patch_core/tests/resume_plan_test.cpp | 104 +++ docs/NATIVE_CHECKUPDATE_DESIGN.md | 8 + harmony/pushy/src/main/cpp/pushy.cpp | 59 +- harmony/pushy/src/main/ets/DownloadTask.ts | 271 ++++---- harmony/pushy/src/main/ets/NativePatchCore.ts | 24 + ios/RCTPushy/RCTPushyDownloader.mm | 273 ++++---- scripts/contract.ts | 6 + scripts/test-patch-core.sh | 11 + src/__tests__/harmonyDownloadTask.test.ts | 69 +- 24 files changed, 1570 insertions(+), 577 deletions(-) create mode 100644 android/src/main/java/cn/reactnative/modules/update/ResumePlan.java create mode 100644 cpp/android_jni/resume_plan_jni.cpp create mode 100644 cpp/patch_core/resume_plan.cpp create mode 100644 cpp/patch_core/resume_plan.h create mode 100644 cpp/patch_core/tests/resume-plan-vectors.json create mode 100644 cpp/patch_core/tests/resume_plan_test.cpp diff --git a/CODE_AUDIT.md b/CODE_AUDIT.md index 995a3e2a..50cc2583 100644 --- a/CODE_AUDIT.md +++ b/CODE_AUDIT.md @@ -108,7 +108,7 @@ **3.14(P3,可测试性)纯决策下沉 C++ + XCTest**(部分) 已做:`__diff.json` → `PatchManifest` 解析含类型校验下沉 `cpp/patch_core/patch_manifest.h`(`ParsePatchManifest`,向量 `cpp/patch_core/tests/patch-manifest-vectors.json` + fuzz),三端经 `archive_patch::ApplyArchivePatch` 直接传 manifest 原文,`PushyPatchManifestFromJson`、Java `appendManifestEntries`、Harmony `parseManifestToArrays` 已删。完成记录的解析/写入/激活校验在 `cpp/patch_core/install_record.cpp`(三端共用)。归档限额计数在 `cpp/patch_core/archive_limits.cpp`(`EntryAccumulator`、`CheckUncompressedSize`、`CheckExtractedDirectory`、`PlanUnknownLengthFreeSpaceProbe`,向量 `archive-limits-vectors.json`):iOS unzip guard 直接调用,Android `SafeZipFile.inspect` 每归档一次 JNI,鸿蒙解压前整包校验 + 解压后遍历经 NAPI;三端规则漂移取最严(精确比值、整包比值、任意层 `.pushy-` 保留名、拒绝 symlink 与未知大小条目)。 -剩余应下沉到 `cpp/` 的纯决策:下载注册表 join/defer 规则与 `Content-Range` 解析(Java/ObjC 各一份);crash-rescue 门控与检查端点尝试策略;`PushyIsSafePathComponent` 放到 `IsSafeRelativePath` 旁边。另建 `ios/Tests` XCTest target:`RCTPushyDownloader` 对 `NSURLProtocol` stub(416/206/redirect/encoded)、`unzipFileAtPath` 对夹具 zip(symlink、保留名、比值炸弹)。 +剩余应下沉到 `cpp/` 的纯决策:下载注册表 join/defer 规则(Java/ObjC 各一份;`Content-Range` 解析连同整个续传决策已下沉 `cpp/patch_core/resume_plan.h`);crash-rescue 门控与检查端点尝试策略;`PushyIsSafePathComponent` 放到 `IsSafeRelativePath` 旁边。另建 `ios/Tests` XCTest target:`RCTPushyDownloader` 对 `NSURLProtocol` stub(416/206/redirect/encoded)、`unzipFileAtPath` 对夹具 zip(symlink、保留名、比值炸弹)。 --- diff --git a/android/lib/arm64-v8a/librnpushy.so b/android/lib/arm64-v8a/librnpushy.so index a6636d3aaf3681d250a7890d9177b0eaaf86bc80..c8a60737a13a8b8a65fafd4ace2295fe52e0c240 100755 GIT binary patch delta 150005 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�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 delta 141326 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 R-ZGxgiKk~39lgan{69IT>K*_9 diff --git a/android/lib/armeabi-v7a/librnpushy.so b/android/lib/armeabi-v7a/librnpushy.so index ddfdb61906a0e70a08947ace0701e61acbf85412..43761aedab9cf016825af5f94382d4bd3c278330 100755 GIT binary patch delta 85534 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

hhJRRPV(5!-|!12iXx;|*%o=Z&PvttymK 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 EKQ@GhYybcN delta 79416 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 diff --git a/android/lib/x86/librnpushy.so b/android/lib/x86/librnpushy.so index 86bc6e375e173dd02400ba256cde99570554c03e..a1685e4d084a13c21598d09b1097314ba70971c2 100755 GIT binary patch delta 135843 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

B@TZnSoxQo(h}OQ@zpI9};(^rn-ZMmKetTOoS< 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 0) { - meta.put("total", total); - } UpdateFileUtils.ensureParentDirectory(sidecar); try (java.io.FileOutputStream out = new java.io.FileOutputStream(sidecar)) { - out.write(meta.toString().getBytes(StandardCharsets.UTF_8)); + out.write(text.getBytes(StandardCharsets.UTF_8)); } } catch (Throwable e) { // Non-fatal: without a sidecar the next attempt starts from zero. @@ -173,6 +149,18 @@ private void writeResumeMeta( } } + // A ResumePlan result; null from the native core means memory ran out. + private static JSONObject resumeDecision(String json) throws IOException { + if (json == null) { + throw new IOException("resume plan failed"); + } + try { + return new JSONObject(json); + } catch (org.json.JSONException e) { + throw new IOException("resume plan failed", e); + } + } + private void downloadFile() throws IOException { this.hash = params.hash; streamedArchiveSha256 = null; @@ -184,31 +172,35 @@ private void downloadFile() throws IOException { // Cross-launch resume (NATIVE_CHECKUPDATE_DESIGN §11.4): a brick gets // a few hundred milliseconds per launch plus a bounded crash-rescue // window, so every partial byte must survive process death and count. - long resumeOffset = 0; - JSONObject resumeMeta = readResumeMeta(sidecar, url); - if (resumeMeta != null && writePath.isFile() && writePath.length() > 0) { - long knownTotal = resumeMeta.optLong("total", 0); - long size = writePath.length(); - if (knownTotal > 0 && size == knownTotal) { - // Fully received in a previous attempt (the process died - // between download end and unzip): nothing left to transfer. - downloadPhaseCompleted = true; - postProgress(knownTotal, knownTotal); - return; - } - if (knownTotal <= 0 || size < knownTotal) { - resumeOffset = size; - } + // What to request is the shared core's decision (ResumePlan). + String sidecarText = readSidecarText(sidecar); + JSONObject plan = resumeDecision(ResumePlan.planRequest( + sidecarText, url, writePath.isFile() ? writePath.length() : 0)); + String action = plan.optString("action"); + if ("complete".equals(action)) { + // Fully received in a previous attempt (the process died + // between download end and unzip): nothing left to transfer. + long total = plan.optLong("total"); + downloadPhaseCompleted = true; + postProgress(total, total); + return; } - if (resumeOffset == 0) { + long resumeOffset = 0; + JSONObject headers = null; + if ("resume".equals(action)) { + resumeOffset = plan.optLong("offset"); + headers = plan.optJSONObject("headers"); + } else { discardPartial(writePath); + sidecarText = ""; } - if (!transferArchive(url, writePath, sidecar, resumeMeta, resumeOffset)) { - // The server rejected the range for a partial that no longer - // matches (416): drop it and retry once from zero. + if (!transferArchive(url, writePath, sidecar, sidecarText, resumeOffset, headers)) { + // The partial no longer matches what the server serves (a stale + // 416, an untrusted range response): drop it and retry once from + // zero. discardPartial(writePath); - if (!transferArchive(url, writePath, sidecar, null, 0)) { + if (!transferArchive(url, writePath, sidecar, "", 0, null)) { throw new IOException("Server rejected the download range for " + url); } } @@ -225,32 +217,23 @@ private static void discardPartial(File archive) throws IOException { /** * One HTTP transfer, appending from resumeOffset when the server honours - * the range. Returns false only for the retryable stale-partial case - * (416 with a size mismatch); throws on every other failure. + * the range. Returns false only when the partial must be discarded and the + * download retried from zero (ResumePlan's "restart"); throws on every + * other failure. */ private boolean transferArchive( - String url, File writePath, File sidecar, JSONObject resumeMeta, long resumeOffset + String url, File writePath, File sidecar, String sidecarText, long resumeOffset, + JSONObject resumeHeaders ) throws IOException { Request.Builder builder = new Request.Builder().url(url); - if (resumeOffset > 0) { - // Only resume requests pin the encoding: Range offsets must - // address the same bytes that are on disk. Fresh downloads keep - // OkHttp's transparent gzip (it decompresses and strips the - // headers itself), matching the pre-resume behaviour for servers - // that compress regardless. - builder.header("Accept-Encoding", "identity"); - builder.header("Range", "bytes=" + resumeOffset + "-"); - String validator = null; - if (resumeMeta != null) { - validator = resumeMeta.optString("etag", null); - if (validator == null) { - validator = resumeMeta.optString("lastModified", null); - } - } - if (validator != null) { - // With a validator the server falls back to a full 200 when - // the file changed instead of appending mismatched bytes. - builder.header("If-Range", validator); + if (resumeHeaders != null) { + // Range, Accept-Encoding: identity and If-Range (ResumePlan). + // Fresh downloads send none of them and keep OkHttp's + // transparent gzip, which decompresses and strips the headers. + java.util.Iterator names = resumeHeaders.keys(); + while (names.hasNext()) { + String name = names.next(); + builder.header(name, resumeHeaders.optString(name)); } } @@ -261,53 +244,42 @@ private boolean transferArchive( params.attachCall(call); try (Response response = call.execute()) { HttpClients.rejectProtocolDowngrade(url, response); - if (response.code() == 416) { - long total = resumeMeta == null ? 0 : resumeMeta.optLong("total", 0); - if (total > 0 && writePath.length() == total) { - // The partial is actually the complete file. - postProgress(total, total); - return true; - } + ResponseBody body = response.body(); + long contentLength = body == null ? -1 : body.contentLength(); + // The Content-Encoding header is visible only when the server + // encoded the body itself (OkHttp strips it when it transparently + // decompresses its own gzip). + JSONObject decision = resumeDecision(ResumePlan.classifyResponse( + response.code(), + resumeOffset, + response.header("Content-Range"), + response.header("Content-Encoding"), + contentLength, + sidecarText, + url, + writePath.isFile() ? writePath.length() : 0)); + String action = decision.optString("action"); + if ("complete".equals(action)) { + // The partial is actually the complete file. + long total = decision.optLong("total"); + postProgress(total, total); + return true; + } + if ("restart".equals(action)) { return false; } - if (!response.isSuccessful()) { + if (!"write".equals(action)) { + // The partial and its sidecar stay: that is the resume state. throw new IOException("Server error: " + response.code() + " " + response.message()); } - - ResponseBody body = response.body(); if (body == null) { throw new IOException("Empty response body for " + url); } - String contentEncoding = response.header("Content-Encoding"); - // Visible only when the server encoded the body itself (OkHttp - // strips the header when it transparently decompresses its own - // gzip). Byte offsets in an encoded representation do not match - // the decoded bytes on disk, so resume is off the table. - boolean encodedBody = contentEncoding != null - && !contentEncoding.equalsIgnoreCase("identity"); - boolean append = response.code() == 206 && resumeOffset > 0; - if (append && encodedBody) { - // The server ignored Accept-Encoding: identity on a range - // request; the appended bytes could not be trusted. - return false; - } - long baseOffset = append ? resumeOffset : 0; - long contentLength = body.contentLength(); - long totalAll; - if (append) { - totalAll = HttpUtils.parseContentRange( - response.header("Content-Range"), resumeOffset); - if (totalAll < 0) { - // Malformed or mismatched Content-Range: treat like a - // stale partial (one clean retry from zero) instead of - // failing — a throw would keep the partial and hit the - // same wall on every future attempt. - return false; - } - } else { - totalAll = contentLength > 0 ? contentLength : 0; - } + boolean append = decision.optBoolean("append"); + long baseOffset = decision.optLong("base"); + long totalAll = decision.optLong("total"); + boolean encodedBody = decision.optBoolean("encoded"); if (totalAll > ArchiveLimits.MAX_ARCHIVE_BYTES) { throw new IOException("archive too large: " + totalAll + " bytes"); } @@ -319,12 +291,15 @@ private boolean transferArchive( // writes must never leave a sidecar describing stale bytes). discardPartial(writePath); } - if (encodedBody) { + String etag = response.header("ETag"); + String lastModified = response.header("Last-Modified"); + if (decision.optBoolean("persistSidecar")) { + // Persist before streaming so a mid-stream crash can resume. + writeSidecarText(sidecar, + ResumePlan.sidecar(url, etag, lastModified, sidecarText, totalAll)); + } else { // No resume across an encoded transfer. deleteResumeSidecar(writePath); - } else { - // Persist before streaming so a mid-stream crash can resume. - writeResumeMeta(sidecar, url, response, resumeMeta, totalAll); } long bytesRead; @@ -401,6 +376,14 @@ private boolean transferArchive( throw new IOException("Download incomplete: expected " + totalAll + " bytes, got " + writePath.length()); } + if (!encodedBody) { + // Refresh with the final size: a length unknown up front + // (chunked) left the sidecar without a total, so a process + // dying between download end and unzip would otherwise + // download the whole archive again. + writeSidecarText(sidecar, ResumePlan.sidecar( + url, etag, lastModified, sidecarText, writePath.length())); + } streamedArchiveSha256 = UpdateFileUtils.toHex(digest.digest()); // Final progress event, skipped when the loop already posted this // exact value (known length reaching 100% posts it in-loop). diff --git a/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java b/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java index 1919eb5f..b55dcdb9 100644 --- a/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java +++ b/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java @@ -14,38 +14,4 @@ private HttpUtils() { static boolean isHttpsUrl(String url) { return url != null && url.regionMatches(true, 0, "https://", 0, 8); } - - // "bytes -/". Returns the total (0 when "*"), or -1 - // when the header is missing/malformed, the start does not match the - // local partial, or the range and total contradict each other (end - // before start, or a numeric total not beyond the end) — either way the - // appended bytes could not be trusted. A total of 0 would otherwise pass - // as "unknown" and skip the final size check (RFC 9110 §14.4: the - // complete length must exceed the last position). - static long parseContentRange(String header, long expectedStart) { - if (header == null || !header.startsWith("bytes ")) { - return -1; - } - try { - String range = header.substring("bytes ".length()).trim(); - int slash = range.indexOf('/'); - int dash = range.indexOf('-'); - if (slash < 0 || dash < 0 || dash > slash) { - return -1; - } - long start = Long.parseLong(range.substring(0, dash).trim()); - long end = Long.parseLong(range.substring(dash + 1, slash).trim()); - if (start != expectedStart || end < start) { - return -1; - } - String totalPart = range.substring(slash + 1).trim(); - if (totalPart.equals("*")) { - return 0; - } - long total = Long.parseLong(totalPart); - return total > end ? total : -1; - } catch (NumberFormatException e) { - return -1; - } - } } diff --git a/android/src/main/java/cn/reactnative/modules/update/ResumePlan.java b/android/src/main/java/cn/reactnative/modules/update/ResumePlan.java new file mode 100644 index 00000000..c4be1698 --- /dev/null +++ b/android/src/main/java/cn/reactnative/modules/update/ResumePlan.java @@ -0,0 +1,31 @@ +package cn.reactnative.modules.update; + +/** + * The resumable-download decisions (cpp/patch_core/resume_plan.h): what to + * request for a partial archive and its sidecar, what to do with the + * response, and the sidecar text to persist. JSON text out; null only when + * the native core failed (memory ran out). DownloadTask keeps the IO. + */ +final class ResumePlan { + static { + NativeCore.ensureLoaded(); + } + + private ResumePlan() { + } + + static native String planRequest(String sidecar, String url, long partialSize); + + static native String classifyResponse( + int status, + long resumeOffset, + String contentRange, + String contentEncoding, + long contentLength, + String sidecar, + String url, + long partialSize); + + static native String sidecar( + String url, String etag, String lastModified, String previousSidecar, long total); +} diff --git a/android/src/test/java/cn/reactnative/modules/update/HttpUtilsTest.java b/android/src/test/java/cn/reactnative/modules/update/HttpUtilsTest.java index de2870d3..f2d445d6 100644 --- a/android/src/test/java/cn/reactnative/modules/update/HttpUtilsTest.java +++ b/android/src/test/java/cn/reactnative/modules/update/HttpUtilsTest.java @@ -7,52 +7,6 @@ import org.junit.Test; public class HttpUtilsTest { - @Test - public void parseContentRangeReturnsTotal() { - assertEquals(200, HttpUtils.parseContentRange("bytes 100-199/200", 100)); - assertEquals(10, HttpUtils.parseContentRange("bytes 0-9/10", 0)); - assertEquals(10, HttpUtils.parseContentRange("bytes 5-9 / 10 ", 5)); - } - - @Test - public void parseContentRangeUnknownTotalIsZero() { - assertEquals(0, HttpUtils.parseContentRange("bytes 100-199/*", 100)); - } - - @Test - public void parseContentRangeRejectsMismatchedStart() { - assertEquals(-1, HttpUtils.parseContentRange("bytes 0-199/200", 100)); - assertEquals(-1, HttpUtils.parseContentRange("bytes 101-199/200", 100)); - } - - @Test - public void parseContentRangeRejectsContradictoryRangeAndTotal() { - // A numeric total must lie beyond the last byte position; 0 would - // otherwise read as "unknown" and skip the final size check. - assertEquals(-1, HttpUtils.parseContentRange("bytes 100-199/0", 100)); - assertEquals(-1, HttpUtils.parseContentRange("bytes 100-199/199", 100)); - assertEquals(-1, HttpUtils.parseContentRange("bytes 100-199/150", 100)); - assertEquals(-1, HttpUtils.parseContentRange("bytes 100-199/-5", 100)); - assertEquals(-1, HttpUtils.parseContentRange("bytes 100-99/200", 100)); - assertEquals(-1, HttpUtils.parseContentRange("bytes 100-x/200", 100)); - assertEquals(-1, HttpUtils.parseContentRange("bytes 100-/200", 100)); - assertEquals(200, HttpUtils.parseContentRange("bytes 100-100/200", 100)); - assertEquals(-1, HttpUtils.parseContentRange("bytes 100-99/*", 100)); - } - - @Test - public void parseContentRangeRejectsMalformedHeaders() { - assertEquals(-1, HttpUtils.parseContentRange(null, 0)); - assertEquals(-1, HttpUtils.parseContentRange("", 0)); - assertEquals(-1, HttpUtils.parseContentRange("bytes", 0)); - assertEquals(-1, HttpUtils.parseContentRange("bytes */200", 0)); - assertEquals(-1, HttpUtils.parseContentRange("bytes x-y/z", 0)); - assertEquals(-1, HttpUtils.parseContentRange("bytes 0-9", 0)); - assertEquals(-1, HttpUtils.parseContentRange("bytes 10/20-30", 10)); - assertEquals(-1, HttpUtils.parseContentRange("bytes 0-9/abc", 0)); - assertEquals(-1, HttpUtils.parseContentRange("items 0-9/10", 0)); - } - @Test public void isHttpsUrlIsCaseInsensitiveAndStrict() { assertTrue(HttpUtils.isHttpsUrl("https://example.com/app.apk")); diff --git a/cpp/android_jni/jni_natives.h b/cpp/android_jni/jni_natives.h index a44990b6..809ae508 100644 --- a/cpp/android_jni/jni_natives.h +++ b/cpp/android_jni/jni_natives.h @@ -35,6 +35,9 @@ jstring InstallRecordPromote(JNIEnv* env, jclass, jstring staging_dir, jstring v jstring InstallRecordBundleSha256(JNIEnv* env, jclass, jstring version_dir); jlong ArchiveCheckEntries(JNIEnv* env, jclass, jlong archive_bytes, jobjectArray names, jlongArray sizes, jlongArray compressed_sizes); jlongArray ArchivePlanFreeSpaceProbe(JNIEnv* env, jclass, jlong known_total, jlong written_before, jlong chunk_bytes, jlong reserved_until); +jstring ResumePlanRequest(JNIEnv* env, jclass, jstring sidecar, jstring url, jlong partial_size); +jstring ResumeClassifyResponse(JNIEnv* env, jclass, jint status, jlong resume_offset, jstring content_range, jstring content_encoding, jlong content_length, jstring sidecar, jstring url, jlong partial_size); +jstring ResumeSidecar(JNIEnv* env, jclass, jstring url, jstring etag, jstring last_modified, jstring previous_sidecar, jlong total); // } // namespace jni_natives diff --git a/cpp/android_jni/jni_registration.cpp b/cpp/android_jni/jni_registration.cpp index 0ffd9bfc..e16ec399 100644 --- a/cpp/android_jni/jni_registration.cpp +++ b/cpp/android_jni/jni_registration.cpp @@ -85,6 +85,15 @@ const std::vector& NativeClasses() { {"2a1bf5df88996d40112f1dfad38382624822", "723ddefb84c2536f", reinterpret_cast(&pushy::jni_natives::ArchivePlanFreeSpaceProbe)}, }}, + {"3919bbc3ab8a6b512c3e08f0c0b6df60452311edfbc8f780624b2d1de38c92b8896259343ee7c9ab", // ResumePlan + { + {"2a1bf5df9c8e7950272c08", "723bfed0b88a274923311bb6e5a7826444205fcdf4daae943d432d07e18c93a9887e5a3655c18189889e6a58791ff1c3adc857554c3216f289", + reinterpret_cast(&pushy::jni_natives::ResumePlanRequest)}, + {"391bf5c2bd826e5c103a0fe9d9bd8368", "723edefda48a7e446d331df7d1fca379582e0ae6a5f7b294644e6305e7cda7f2a963463800ec938fae957d4f375cfccca4802b724a2911fbd5f4a06347350152f6d6ba9621783c17ebf1dbe2bc3a7c270bf1c5eeb29a76527d3cf8dbaf8d6726", + reinterpret_cast(&pushy::jni_natives::ResumeClassifyResponse)}, + {"291ef0d4ad8a7a", "723bfed0b88a274923311bb6e5a7826444205fcdf4daae943d432d07e18c93a9887e5a3655c7c2a4949e3355371df78299937648503c43d9d8ae9a68092f0113fd9887857c422602b9d595959c72462c45ebc5afb9d44b412006e2cefd", + reinterpret_cast(&pushy::jni_natives::ResumeSidecar)}, + }}, // }; return classes; diff --git a/cpp/android_jni/resume_plan_jni.cpp b/cpp/android_jni/resume_plan_jni.cpp new file mode 100644 index 00000000..5219d143 --- /dev/null +++ b/cpp/android_jni/resume_plan_jni.cpp @@ -0,0 +1,58 @@ +// JNI surface of the resumable-download decisions (cpp/patch_core/ +// resume_plan.h) for DownloadTask.java, through ResumePlan.java. Strings in, +// JSON text out; a null return means the core threw (memory ran out) and the +// caller fails the download, keeping the partial and its sidecar — a C++ +// exception must never unwind through the JNI boundary. +#include + +#include "jni_natives.h" + +#include + +#include "jni_util.h" +#include "../patch_core/resume_plan.h" + +using pushy::jni_util::JStringToString; +using pushy::jni_util::ToJString; + +jstring pushy::jni_natives::ResumePlanRequest(JNIEnv* env, jclass, jstring sidecar, + jstring url, jlong partial_size) { + try { + return ToJString(env, pushy::resume::PlanRequestJson( + JStringToString(env, sidecar), JStringToString(env, url), + static_cast(partial_size))); + } catch (...) { + return nullptr; + } +} + +jstring pushy::jni_natives::ResumeClassifyResponse( + JNIEnv* env, jclass, jint status, jlong resume_offset, jstring content_range, + jstring content_encoding, jlong content_length, jstring sidecar, jstring url, + jlong partial_size) { + try { + return ToJString( + env, pushy::resume::ClassifyResponseJson( + static_cast(status), static_cast(resume_offset), + JStringToString(env, content_range), + JStringToString(env, content_encoding), + static_cast(content_length), JStringToString(env, sidecar), + JStringToString(env, url), static_cast(partial_size))); + } catch (...) { + return nullptr; + } +} + +jstring pushy::jni_natives::ResumeSidecar(JNIEnv* env, jclass, jstring url, jstring etag, + jstring last_modified, jstring previous_sidecar, + jlong total) { + try { + return ToJString(env, pushy::resume::SidecarJson( + JStringToString(env, url), JStringToString(env, etag), + JStringToString(env, last_modified), + JStringToString(env, previous_sidecar), + static_cast(total))); + } catch (...) { + return nullptr; + } +} diff --git a/cpp/patch_core/resume_plan.cpp b/cpp/patch_core/resume_plan.cpp new file mode 100644 index 00000000..55432e93 --- /dev/null +++ b/cpp/patch_core/resume_plan.cpp @@ -0,0 +1,226 @@ +#include "resume_plan.h" + +#include + +// Relative like every other cross-core include: use_frameworks! flattens the +// pod's headers. +#include "../update_flow_core/flow_json.h" + +namespace pushy { +namespace resume { +namespace { + +using flowjson::Value; + +bool IsSpace(char c) { return c == ' ' || c == '\t'; } + +std::string Trim(const std::string& text) { + size_t begin = 0; + size_t end = text.size(); + while (begin < end && IsSpace(text[begin])) { + ++begin; + } + while (end > begin && IsSpace(text[end - 1])) { + --end; + } + return text.substr(begin, end - begin); +} + +// Digits only (no sign, no trailing text), within long long. -1 otherwise. +long long ParseDigits(const std::string& text) { + if (text.empty() || text.size() > 18) { + return -1; + } + long long value = 0; + for (char c : text) { + if (c < '0' || c > '9') { + return -1; + } + value = value * 10 + (c - '0'); + } + return value; +} + +struct Sidecar { + bool valid = false; + std::string etag; + std::string last_modified; + long long total = 0; +}; + +// The sidecar for url, or invalid (absent, oversized, not a JSON object, +// another url): a partial without one is untrusted. +Sidecar ReadSidecar(const std::string& text, const std::string& url) { + Sidecar sidecar; + if (text.empty() || static_cast(text.size()) > kMaxSidecarBytes) { + return sidecar; + } + bool ok = false; + Value root = flowjson::Parse(text, &ok); + if (!ok || !root.IsObject()) { + return sidecar; + } + const Value& url_value = root.Get("url"); + if (!url_value.IsString() || url_value.AsString() != url) { + return sidecar; + } + sidecar.valid = true; + const Value& etag = root.Get("etag"); + if (etag.IsString()) { + sidecar.etag = etag.AsString(); + } + const Value& last_modified = root.Get("lastModified"); + if (last_modified.IsString()) { + sidecar.last_modified = last_modified.AsString(); + } + const Value& total = root.Get("total"); + if (total.IsNumber() && total.AsNumber() > 0 && + total.AsNumber() < 9007199254740992.0 && + std::floor(total.AsNumber()) == total.AsNumber()) { + sidecar.total = static_cast(total.AsNumber()); + } + return sidecar; +} + +Value Number(long long n) { return Value::Number(static_cast(n)); } + +Value Action(const char* action) { + Value result = Value::Object(); + result.Set("action", Value::String(action)); + return result; +} + +std::string Complete(long long total) { + Value result = Action("complete"); + result.Set("total", Number(total)); + return flowjson::Stringify(result); +} + +bool IsEncoded(const std::string& content_encoding) { + std::string encoding = Trim(content_encoding); + if (encoding.empty()) { + return false; + } + for (char& c : encoding) { + if (c >= 'A' && c <= 'Z') { + c = static_cast(c - 'A' + 'a'); + } + } + return encoding != "identity"; +} + +} // namespace + +long long ParseContentRangeTotal(const std::string& header, + long long expected_start) { + const std::string unit = "bytes "; + if (header.compare(0, unit.size(), unit) != 0) { + return -1; + } + const std::string range = header.substr(unit.size()); + const size_t slash = range.find('/'); + const size_t dash = range.find('-'); + if (slash == std::string::npos || dash == std::string::npos || dash > slash) { + return -1; + } + const long long start = ParseDigits(Trim(range.substr(0, dash))); + const long long end = ParseDigits(Trim(range.substr(dash + 1, slash - dash - 1))); + if (start < 0 || end < 0 || start != expected_start || end < start) { + return -1; + } + const std::string total_part = Trim(range.substr(slash + 1)); + if (total_part == "*") { + return 0; + } + const long long total = ParseDigits(total_part); + return total > end ? total : -1; +} + +std::string PlanRequestJson(const std::string& sidecar_text, + const std::string& url, long long partial_size) { + const Sidecar sidecar = ReadSidecar(sidecar_text, url); + if (sidecar.valid && partial_size > 0) { + if (sidecar.total > 0 && partial_size == sidecar.total) { + return Complete(sidecar.total); + } + if (sidecar.total <= 0 || partial_size < sidecar.total) { + Value headers = Value::Object(); + headers.Set("Range", Value::String("bytes=" + std::to_string(partial_size) + "-")); + headers.Set("Accept-Encoding", Value::String("identity")); + const std::string& validator = + sidecar.etag.empty() ? sidecar.last_modified : sidecar.etag; + if (!validator.empty()) { + headers.Set("If-Range", Value::String(validator)); + } + Value result = Action("resume"); + result.Set("offset", Number(partial_size)); + result.Set("headers", headers); + return flowjson::Stringify(result); + } + } + return flowjson::Stringify(Action("fresh")); +} + +std::string ClassifyResponseJson(int status, long long resume_offset, + const std::string& content_range, + const std::string& content_encoding, + long long content_length, + const std::string& sidecar_text, + const std::string& url, + long long partial_size) { + if (status == 416) { + const Sidecar sidecar = ReadSidecar(sidecar_text, url); + if (sidecar.valid && sidecar.total > 0 && partial_size == sidecar.total) { + return Complete(sidecar.total); + } + return flowjson::Stringify(Action("restart")); + } + if (status < 200 || status > 299) { + return flowjson::Stringify(Action("httpError")); + } + const bool encoded = IsEncoded(content_encoding); + const bool append = status == 206 && resume_offset > 0; + long long total = 0; + if (append) { + // Encoded range bytes or a missing/mismatched Content-Range: the appended + // bytes could not be trusted. Restarting (once) beats failing, which + // would keep the partial and hit the same wall on every attempt. + total = encoded ? -1 : ParseContentRangeTotal(content_range, resume_offset); + if (total < 0) { + return flowjson::Stringify(Action("restart")); + } + } else if (!encoded && content_length > 0) { + total = content_length; + } + Value result = Action("write"); + result.Set("append", Value::Bool(append)); + result.Set("base", Number(append ? resume_offset : 0)); + result.Set("total", Number(total)); + result.Set("encoded", Value::Bool(encoded)); + result.Set("persistSidecar", Value::Bool(!encoded)); + return flowjson::Stringify(result); +} + +std::string SidecarJson(const std::string& url, const std::string& etag, + const std::string& last_modified, + const std::string& previous_sidecar, long long total) { + const Sidecar previous = ReadSidecar(previous_sidecar, url); + const std::string& kept_etag = etag.empty() ? previous.etag : etag; + const std::string& kept_last_modified = + last_modified.empty() ? previous.last_modified : last_modified; + Value meta = Value::Object(); + meta.Set("url", Value::String(url)); + if (!kept_etag.empty()) { + meta.Set("etag", Value::String(kept_etag)); + } + if (!kept_last_modified.empty()) { + meta.Set("lastModified", Value::String(kept_last_modified)); + } + if (total > 0) { + meta.Set("total", Number(total)); + } + return flowjson::Stringify(meta); +} + +} // namespace resume +} // namespace pushy diff --git a/cpp/patch_core/resume_plan.h b/cpp/patch_core/resume_plan.h new file mode 100644 index 00000000..5aa7290f --- /dev/null +++ b/cpp/patch_core/resume_plan.h @@ -0,0 +1,88 @@ +#pragma once + +#include + +// Cross-launch resumable download (NATIVE_CHECKUPDATE_DESIGN §11.4): the pure +// decisions every platform's downloader makes around a partial archive and +// its `.resume` sidecar, one implementation for Android +// (DownloadTask.java, through JNI), iOS (RCTPushyDownloader.mm) and Harmony +// (DownloadTask.ts, through NAPI). The downloaders keep the IO: reading and +// writing the archive and the sidecar, the HTTP request, the single retry +// from zero, progress and limits. tests/resume-plan-vectors.json pins this +// layer. +// +// The sidecar records what a partial belongs to: +// {"url": "...", "etag": "...", "lastModified": "...", "total": N} +// (url always; the validators when the server sent them; total only when +// known). A partial without a sidecar for the same URL is untrusted. +// +// JSON strings in and out, so the bindings stay thin. Keep the core internal +// to whichever binary links it (see podspec Core). +#pragma GCC visibility push(hidden) + +namespace pushy { +namespace resume { + +// A sidecar is a few hundred bytes; anything larger is not one. +constexpr long long kMaxSidecarBytes = 64 * 1024; + +// "bytes -/" (RFC 9110 §14.4), whitespace around the +// numbers allowed, digits only. Returns the total (0 when "*"), or -1 when the +// header is missing or malformed, the start is not expected_start, or the +// range and total contradict each other (end before start, a numeric total +// not beyond end): the appended bytes could not be trusted. A total of 0 +// would otherwise pass as "unknown" and skip the final size check. +long long ParseContentRangeTotal(const std::string& header, + long long expected_start); + +// What to do before the request, from the sidecar text ("" when there is +// none) and the size of the partial on disk (0 when there is none): +// {"action":"complete","total":N} the partial is the whole archive (the +// process died between download end and unzip): nothing to transfer. +// {"action":"resume","offset":N,"headers":{...}} send these headers: +// Range, Accept-Encoding: identity (offsets must address the bytes on +// disk) and, when the sidecar has a validator, If-Range (a changed file +// then comes back as a full 200 instead of mismatched bytes). +// {"action":"fresh"} discard the partial and its sidecar; send a plain +// request (fresh downloads keep the platform's transparent encoding). +std::string PlanRequestJson(const std::string& sidecar, const std::string& url, + long long partial_size); + +// What to do with the response to a request PlanRequestJson planned +// (resume_offset is its offset, 0 for a fresh request; partial_size the +// partial's size now; content_length the body's, -1 when unknown): +// {"action":"complete","total":N} 416 and the partial is the whole archive. +// {"action":"restart"} the partial is stale (416, an encoded range body, a +// missing or mismatched Content-Range): discard it and its sidecar and +// retry once from zero. +// {"action":"httpError"} any other non-2xx status: keep the partial and +// its sidecar (the resume state) and fail. +// {"action":"write","append":B,"base":N,"total":N,"encoded":B, +// "persistSidecar":B} stream the body: appended at base (append) or +// replacing the partial (base 0); total is the whole archive (0 when +// unknown or the body is encoded). Persist the sidecar before the first +// byte lands unless the body is encoded (no resume across an encoded +// transfer: offsets would address the encoded representation), in +// which case delete it. +std::string ClassifyResponseJson(int status, long long resume_offset, + const std::string& content_range, + const std::string& content_encoding, + long long content_length, + const std::string& sidecar, + const std::string& url, + long long partial_size); + +// The sidecar text for url: this response's validators, falling back to the +// previous sidecar's (same url only) when the response omits them, and total +// when it is known (> 0). Downloaders write it before streaming and once more +// with the final size after a complete, unencoded transfer, so a process +// that dies between download end and unzip finds the archive complete even +// when the length was unknown up front. +std::string SidecarJson(const std::string& url, const std::string& etag, + const std::string& last_modified, + const std::string& previous_sidecar, long long total); + +} // namespace resume +} // namespace pushy + +#pragma GCC visibility pop diff --git a/cpp/patch_core/tests/resume-plan-vectors.json b/cpp/patch_core/tests/resume-plan-vectors.json new file mode 100644 index 00000000..c0bc9cce --- /dev/null +++ b/cpp/patch_core/tests/resume-plan-vectors.json @@ -0,0 +1,606 @@ +{ + "comment": "Pins cpp/patch_core/resume_plan.h. url is the request URL every plan/classify/sidecar case uses.", + "url": "https://cdn.example.com/a.ppk", + "contentRange": [ + { + "header": "bytes 100-199/200", + "start": 100, + "expected": 200 + }, + { + "header": "bytes 0-9/10", + "start": 0, + "expected": 10 + }, + { + "header": "bytes 5-9 / 10 ", + "start": 5, + "expected": 10 + }, + { + "header": "bytes 100-199 / 200 ", + "start": 100, + "expected": 200 + }, + { + "header": "bytes 100-100/200", + "start": 100, + "expected": 200 + }, + { + "header": "bytes 100-199/*", + "start": 100, + "expected": 0 + }, + { + "header": "bytes 0-199/200", + "start": 100, + "expected": -1 + }, + { + "header": "bytes 101-199/200", + "start": 100, + "expected": -1 + }, + { + "header": "bytes 50-199/200", + "start": 100, + "expected": -1 + }, + { + "header": "bytes 100-199/0", + "start": 100, + "expected": -1 + }, + { + "header": "bytes 100-199/199", + "start": 100, + "expected": -1 + }, + { + "header": "bytes 100-199/150", + "start": 100, + "expected": -1 + }, + { + "header": "bytes 100-199/-5", + "start": 100, + "expected": -1 + }, + { + "header": "bytes 100-99/200", + "start": 100, + "expected": -1 + }, + { + "header": "bytes 100-x/200", + "start": 100, + "expected": -1 + }, + { + "header": "bytes 100-/200", + "start": 100, + "expected": -1 + }, + { + "header": "bytes 100-99/*", + "start": 100, + "expected": -1 + }, + { + "header": "", + "start": 0, + "expected": -1 + }, + { + "header": "bytes", + "start": 0, + "expected": -1 + }, + { + "header": "bytes */200", + "start": 0, + "expected": -1 + }, + { + "header": "bytes x-y/z", + "start": 0, + "expected": -1 + }, + { + "header": "bytes 0-9", + "start": 0, + "expected": -1 + }, + { + "header": "bytes 10/20-30", + "start": 10, + "expected": -1 + }, + { + "header": "bytes 0-9/abc", + "start": 0, + "expected": -1 + }, + { + "header": "items 0-9/10", + "start": 0, + "expected": -1 + }, + { + "header": "100-199/200", + "start": 100, + "expected": -1 + }, + { + "header": "bytes 100-199", + "start": 100, + "expected": -1 + }, + { + "header": "bytes 100/200", + "start": 100, + "expected": -1 + }, + { + "header": "bytes abc-199/200", + "start": 100, + "expected": -1 + }, + { + "header": "bytes 100-199/abc", + "start": 100, + "expected": -1 + }, + { + "header": "bytes 100-199/200abc", + "start": 100, + "expected": -1 + }, + { + "header": "bytes +100-199/200", + "start": 100, + "expected": -1 + }, + { + "header": "bytes 100-1x9/200", + "start": 100, + "expected": -1 + } + ], + "planRequest": [ + { + "name": "no sidecar", + "sidecar": "", + "size": 100, + "expected": { + "action": "fresh" + } + }, + { + "name": "no partial", + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\",\"total\":200}", + "size": 0, + "expected": { + "action": "fresh" + } + }, + { + "name": "sidecar for another url", + "sidecar": "{\"url\":\"https://other/x\",\"total\":200}", + "size": 100, + "expected": { + "action": "fresh" + } + }, + { + "name": "corrupt sidecar", + "sidecar": "{oops", + "size": 100, + "expected": { + "action": "fresh" + } + }, + { + "name": "sidecar not an object", + "sidecar": "[1]", + "size": 100, + "expected": { + "action": "fresh" + } + }, + { + "name": "oversized sidecar", + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\",\"etag\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"}", + "size": 100, + "expected": { + "action": "fresh" + } + }, + { + "name": "partial complete", + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\",\"etag\":\"\\\"e1\\\"\",\"total\":200}", + "size": 200, + "expected": { + "action": "complete", + "total": 200 + } + }, + { + "name": "partial larger than total", + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\",\"total\":200}", + "size": 300, + "expected": { + "action": "fresh" + } + }, + { + "name": "resume with etag", + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\",\"etag\":\"\\\"e1\\\"\",\"lastModified\":\"Mon, 01 Jan 2026 00:00:00 GMT\",\"total\":200}", + "size": 100, + "expected": { + "action": "resume", + "offset": 100, + "headers": { + "Range": "bytes=100-", + "Accept-Encoding": "identity", + "If-Range": "\"e1\"" + } + } + }, + { + "name": "resume with last-modified only", + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\",\"lastModified\":\"Mon, 01 Jan 2026 00:00:00 GMT\",\"total\":200}", + "size": 100, + "expected": { + "action": "resume", + "offset": 100, + "headers": { + "Range": "bytes=100-", + "Accept-Encoding": "identity", + "If-Range": "Mon, 01 Jan 2026 00:00:00 GMT" + } + } + }, + { + "name": "resume without validator or total", + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\"}", + "size": 50, + "expected": { + "action": "resume", + "offset": 50, + "headers": { + "Range": "bytes=50-", + "Accept-Encoding": "identity" + } + } + }, + { + "name": "empty etag falls back to last-modified", + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\",\"etag\":\"\",\"lastModified\":\"LM\"}", + "size": 50, + "expected": { + "action": "resume", + "offset": 50, + "headers": { + "Range": "bytes=50-", + "Accept-Encoding": "identity", + "If-Range": "LM" + } + } + }, + { + "name": "non-numeric total is unknown", + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\",\"total\":\"200\"}", + "size": 50, + "expected": { + "action": "resume", + "offset": 50, + "headers": { + "Range": "bytes=50-", + "Accept-Encoding": "identity" + } + } + } + ], + "classifyResponse": [ + { + "name": "416 with complete partial", + "status": 416, + "offset": 200, + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\",\"total\":200}", + "size": 200, + "expected": { + "action": "complete", + "total": 200 + }, + "contentRange": "", + "contentEncoding": "", + "contentLength": -1 + }, + { + "name": "416 with stale partial", + "status": 416, + "offset": 100, + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\",\"total\":200}", + "size": 100, + "expected": { + "action": "restart" + }, + "contentRange": "", + "contentEncoding": "", + "contentLength": -1 + }, + { + "name": "416 without sidecar", + "status": 416, + "offset": 100, + "sidecar": "", + "size": 100, + "expected": { + "action": "restart" + }, + "contentRange": "", + "contentEncoding": "", + "contentLength": -1 + }, + { + "name": "500 keeps the resume state", + "status": 500, + "offset": 100, + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\",\"total\":200}", + "size": 100, + "expected": { + "action": "httpError" + }, + "contentRange": "", + "contentEncoding": "", + "contentLength": -1 + }, + { + "name": "302 is an error", + "status": 302, + "offset": 0, + "sidecar": "", + "size": 0, + "expected": { + "action": "httpError" + }, + "contentRange": "", + "contentEncoding": "", + "contentLength": -1 + }, + { + "name": "206 append", + "status": 206, + "offset": 100, + "contentRange": "bytes 100-199/200", + "contentLength": 100, + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\",\"total\":200}", + "size": 100, + "expected": { + "action": "write", + "append": true, + "base": 100, + "total": 200, + "encoded": false, + "persistSidecar": true + }, + "contentEncoding": "" + }, + { + "name": "206 append unknown total", + "status": 206, + "offset": 100, + "contentRange": "bytes 100-199/*", + "contentLength": 100, + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\"}", + "size": 100, + "expected": { + "action": "write", + "append": true, + "base": 100, + "total": 0, + "encoded": false, + "persistSidecar": true + }, + "contentEncoding": "" + }, + { + "name": "206 mismatched start restarts", + "status": 206, + "offset": 100, + "contentRange": "bytes 0-199/200", + "contentLength": 200, + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\"}", + "size": 100, + "expected": { + "action": "restart" + }, + "contentEncoding": "" + }, + { + "name": "206 missing content-range restarts", + "status": 206, + "offset": 100, + "contentLength": 100, + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\"}", + "size": 100, + "expected": { + "action": "restart" + }, + "contentRange": "", + "contentEncoding": "" + }, + { + "name": "206 encoded restarts", + "status": 206, + "offset": 100, + "contentRange": "bytes 100-199/200", + "contentEncoding": "gzip", + "contentLength": 60, + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\"}", + "size": 100, + "expected": { + "action": "restart" + } + }, + { + "name": "200 to a range request replaces the partial", + "status": 200, + "offset": 100, + "contentLength": 300, + "sidecar": "{\"url\":\"https://cdn.example.com/a.ppk\",\"total\":200}", + "size": 100, + "expected": { + "action": "write", + "append": false, + "base": 0, + "total": 300, + "encoded": false, + "persistSidecar": true + }, + "contentRange": "", + "contentEncoding": "" + }, + { + "name": "fresh 200", + "status": 200, + "offset": 0, + "contentLength": 300, + "sidecar": "", + "size": 0, + "expected": { + "action": "write", + "append": false, + "base": 0, + "total": 300, + "encoded": false, + "persistSidecar": true + }, + "contentRange": "", + "contentEncoding": "" + }, + { + "name": "fresh 200 unknown length", + "status": 200, + "offset": 0, + "contentLength": -1, + "sidecar": "", + "size": 0, + "expected": { + "action": "write", + "append": false, + "base": 0, + "total": 0, + "encoded": false, + "persistSidecar": true + }, + "contentRange": "", + "contentEncoding": "" + }, + { + "name": "fresh 200 encoded", + "status": 200, + "offset": 0, + "contentEncoding": "GZIP", + "contentLength": 120, + "sidecar": "", + "size": 0, + "expected": { + "action": "write", + "append": false, + "base": 0, + "total": 0, + "encoded": true, + "persistSidecar": false + }, + "contentRange": "" + }, + { + "name": "identity is not encoded", + "status": 200, + "offset": 0, + "contentEncoding": " Identity ", + "contentLength": 10, + "sidecar": "", + "size": 0, + "expected": { + "action": "write", + "append": false, + "base": 0, + "total": 10, + "encoded": false, + "persistSidecar": true + }, + "contentRange": "" + }, + { + "name": "206 to a fresh request is a full body", + "status": 206, + "offset": 0, + "contentRange": "bytes 0-9/10", + "contentLength": 10, + "sidecar": "", + "size": 0, + "expected": { + "action": "write", + "append": false, + "base": 0, + "total": 10, + "encoded": false, + "persistSidecar": true + }, + "contentEncoding": "" + } + ], + "sidecar": [ + { + "name": "response validators", + "etag": "\"e2\"", + "lastModified": "LM2", + "previous": "{\"url\":\"https://cdn.example.com/a.ppk\",\"etag\":\"\\\"e1\\\"\",\"lastModified\":\"LM1\"}", + "total": 200, + "expected": { + "url": "https://cdn.example.com/a.ppk", + "etag": "\"e2\"", + "lastModified": "LM2", + "total": 200 + } + }, + { + "name": "keeps the previous validators", + "etag": "", + "lastModified": "", + "previous": "{\"url\":\"https://cdn.example.com/a.ppk\",\"etag\":\"\\\"e1\\\"\",\"lastModified\":\"LM1\",\"total\":100}", + "total": 200, + "expected": { + "url": "https://cdn.example.com/a.ppk", + "etag": "\"e1\"", + "lastModified": "LM1", + "total": 200 + } + }, + { + "name": "ignores another url's validators", + "etag": "", + "lastModified": "", + "previous": "{\"url\":\"https://other/x\",\"etag\":\"\\\"e1\\\"\"}", + "total": 0, + "expected": { + "url": "https://cdn.example.com/a.ppk" + } + }, + { + "name": "unknown total is omitted", + "etag": "\"e\"", + "lastModified": "", + "previous": "", + "total": 0, + "expected": { + "url": "https://cdn.example.com/a.ppk", + "etag": "\"e\"" + } + } + ] +} diff --git a/cpp/patch_core/tests/resume_plan_test.cpp b/cpp/patch_core/tests/resume_plan_test.cpp new file mode 100644 index 00000000..8901e554 --- /dev/null +++ b/cpp/patch_core/tests/resume_plan_test.cpp @@ -0,0 +1,104 @@ +// Replays tests/resume-plan-vectors.json through cpp/patch_core/resume_plan.h. +#include +#include +#include +#include + +#include "../../update_flow_core/flow_json.h" +#include "../resume_plan.h" + +namespace { + +int failures = 0; + +void Check(bool ok, const std::string& what) { + if (!ok) { + std::fprintf(stderr, "[FAIL] %s\n", what.c_str()); + ++failures; + } +} + +flowjson::Value ParseOrDie(const std::string& text, const std::string& what) { + bool ok = false; + flowjson::Value value = flowjson::Parse(text, &ok); + Check(ok, what + ": output is not JSON: " + text); + return value; +} + +long long Int(const flowjson::Value& value) { + return static_cast(value.AsNumber()); +} + +std::string Str(const flowjson::Value& value) { + return value.IsString() ? value.AsString() : std::string(); +} + +} // namespace + +int main(int argc, char** argv) { + if (argc < 2) { + std::fprintf(stderr, "usage: resume_plan_test \n"); + return 2; + } + std::ifstream in(argv[1]); + std::stringstream buffer; + buffer << in.rdbuf(); + bool ok = false; + flowjson::ParseLimits limits; + limits.max_input_bytes = 16 * 1024 * 1024; + const flowjson::Value file = flowjson::Parse(buffer.str(), limits, &ok); + if (!ok || !file.IsObject()) { + std::fprintf(stderr, "cannot read %s\n", argv[1]); + return 2; + } + const std::string url = file.Get("url").AsString(); + int cases = 0; + + for (const auto& c : file.Get("contentRange").elements()) { + const long long got = pushy::resume::ParseContentRangeTotal( + Str(c.Get("header")), Int(c.Get("start"))); + Check(got == Int(c.Get("expected")), + "contentRange \"" + Str(c.Get("header")) + "\" -> " + std::to_string(got)); + ++cases; + } + for (const auto& c : file.Get("planRequest").elements()) { + const std::string name = "planRequest " + Str(c.Get("name")); + const std::string out = pushy::resume::PlanRequestJson( + Str(c.Get("sidecar")), url, Int(c.Get("size"))); + Check(flowjson::Value::DeepEquals(ParseOrDie(out, name), c.Get("expected")), + name + " -> " + out); + ++cases; + } + for (const auto& c : file.Get("classifyResponse").elements()) { + const std::string name = "classifyResponse " + Str(c.Get("name")); + const std::string out = pushy::resume::ClassifyResponseJson( + static_cast(Int(c.Get("status"))), Int(c.Get("offset")), + Str(c.Get("contentRange")), Str(c.Get("contentEncoding")), + Int(c.Get("contentLength")), Str(c.Get("sidecar")), url, + Int(c.Get("size"))); + Check(flowjson::Value::DeepEquals(ParseOrDie(out, name), c.Get("expected")), + name + " -> " + out); + ++cases; + } + for (const auto& c : file.Get("sidecar").elements()) { + const std::string name = "sidecar " + Str(c.Get("name")); + const std::string out = pushy::resume::SidecarJson( + url, Str(c.Get("etag")), Str(c.Get("lastModified")), + Str(c.Get("previous")), Int(c.Get("total"))); + Check(flowjson::Value::DeepEquals(ParseOrDie(out, name), c.Get("expected")), + name + " -> " + out); + // What a downloader writes it must read back as the same partial. + const std::string plan = pushy::resume::PlanRequestJson(out, url, 1); + Check(ParseOrDie(plan, name).Get("action").AsString() != "fresh" || + Int(c.Get("total")) == 1, + name + ": written sidecar does not read back"); + ++cases; + } + + if (failures > 0) { + std::fprintf(stderr, "%d resume plan vector(s) failed\n", failures); + return 1; + } + std::printf("%d resume plan vectors passed\n", cases); + return 0; +} diff --git a/docs/NATIVE_CHECKUPDATE_DESIGN.md b/docs/NATIVE_CHECKUPDATE_DESIGN.md index 23fcfb35..74efbd53 100644 --- a/docs/NATIVE_CHECKUPDATE_DESIGN.md +++ b/docs/NATIVE_CHECKUPDATE_DESIGN.md @@ -518,6 +518,14 @@ afterDownload)`:本地 silent 策略 或 响应标记 forceBoot 即激活。 If-Range 验证器防混拼、最终长度对账、解压/patch 本身的结构校验;任何一 层失败走"删两者重来",自愈。 - **进度事件**:received 含续传偏移量,total 取 Content-Range 总长。 +- **完成后刷新 sidecar**:下载完整收齐(且未编码)后,用最终文件大小重写 + sidecar。总长事先未知(chunked)时首次写入的 sidecar 没有 total,不刷新 + 的话"下载完、解压前死"的进程下次会整包重下。 +- **单一实现**:上述决策(读 sidecar 并校验、发不发 Range 与带哪些头、响应 + 判定、写什么 sidecar、Content-Range 解析)由 `cpp/patch_core/resume_plan.h` + 一份实现,三端只做 IO(Android 经 JNI 的 `ResumePlan`、鸿蒙经 NAPI、iOS + 直调),`cpp/patch_core/tests/resume-plan-vectors.json` 锁定行为。改规格只改 + 内核与向量。sidecar 一律以 64KB 为上限;Content-Range 的数字只接受纯数字。 - **round-incomplete 标记**:runOnce 入口落盘 KV 标记、finally 清除。进程 死于轮中 → 标记残留 → **下次启动编排器跳过 5s 延迟立即(异步)续传**。 这不是阻塞、没有误判成本,是"上次没救完"最诚实的信号,让被截断的 diff --git a/harmony/pushy/src/main/cpp/pushy.cpp b/harmony/pushy/src/main/cpp/pushy.cpp index 6546da53..8c5d28f9 100644 --- a/harmony/pushy/src/main/cpp/pushy.cpp +++ b/harmony/pushy/src/main/cpp/pushy.cpp @@ -21,6 +21,7 @@ #include "install_record.h" #include "hbc_transform_wire.h" #include "patch_core.h" +#include "resume_plan.h" #include "state_core.h" #include "state_ops.h" @@ -1442,6 +1443,59 @@ static napi_value FlowNormalizeConfiguration(napi_env env, return NewString(env, config); } +// ---- resumable download (patch_core/resume_plan.h) ---- +// Strings in (null/undefined read as ""), JSON text out; DownloadTask.ts +// keeps the IO. + +// planRequest(sidecar, url, partialSize) +static napi_value ResumePlanRequest(napi_env env, napi_callback_info info) { + napi_value args[3] = {nullptr, nullptr, nullptr}; + std::string text[3]; + double partial_size = 0; + if (!GetFlowArgs(env, info, "resumePlanRequest", 3, 0b011, args, text) || + !GetFlowNumber(env, args[2], "resumePlanRequest", &partial_size)) { + return nullptr; + } + return NewString(env, pushy::resume::PlanRequestJson( + text[0], text[1], static_cast(partial_size))); +} + +// classifyResponse(status, resumeOffset, contentRange, contentEncoding, +// contentLength, sidecar, url, partialSize) +static napi_value ResumeClassifyResponse(napi_env env, napi_callback_info info) { + napi_value args[8] = {}; + std::string text[8]; + double status = 0; + double resume_offset = 0; + double content_length = 0; + double partial_size = 0; + if (!GetFlowArgs(env, info, "resumeClassifyResponse", 8, 0b01101100, args, text) || + !GetFlowNumber(env, args[0], "resumeClassifyResponse", &status) || + !GetFlowNumber(env, args[1], "resumeClassifyResponse", &resume_offset) || + !GetFlowNumber(env, args[4], "resumeClassifyResponse", &content_length) || + !GetFlowNumber(env, args[7], "resumeClassifyResponse", &partial_size)) { + return nullptr; + } + return NewString(env, pushy::resume::ClassifyResponseJson( + static_cast(status), + static_cast(resume_offset), text[2], text[3], + static_cast(content_length), text[5], text[6], + static_cast(partial_size))); +} + +// sidecar(url, etag, lastModified, previousSidecar, total) +static napi_value ResumeSidecar(napi_env env, napi_callback_info info) { + napi_value args[5] = {}; + std::string text[5]; + double total = 0; + if (!GetFlowArgs(env, info, "resumeSidecar", 5, 0b01111, args, text) || + !GetFlowNumber(env, args[4], "resumeSidecar", &total)) { + return nullptr; + } + return NewString(env, pushy::resume::SidecarJson(text[0], text[1], text[2], text[3], + static_cast(total))); +} + napi_value Init(napi_env env, napi_value exports) { // (scripts/contract.ts; bun scripts/generate-contract.ts) if (!ExportFunction(env, exports, "syncStateWithBinaryVersion", Guarded) || @@ -1466,7 +1520,10 @@ napi_value Init(napi_env env, napi_value exports) { !ExportFunction(env, exports, "handleResponse", Guarded) || !ExportFunction(env, exports, "configsEquivalent", Guarded) || !ExportFunction(env, exports, "runnableConfig", Guarded) || - !ExportFunction(env, exports, "normalizeConfiguration", Guarded)) { + !ExportFunction(env, exports, "normalizeConfiguration", Guarded) || + !ExportFunction(env, exports, "resumePlanRequest", Guarded) || + !ExportFunction(env, exports, "resumeClassifyResponse", Guarded) || + !ExportFunction(env, exports, "resumeSidecar", Guarded)) { // return nullptr; } diff --git a/harmony/pushy/src/main/ets/DownloadTask.ts b/harmony/pushy/src/main/ets/DownloadTask.ts index 029c76c3..27b058ef 100644 --- a/harmony/pushy/src/main/ets/DownloadTask.ts +++ b/harmony/pushy/src/main/ets/DownloadTask.ts @@ -63,47 +63,25 @@ const DOWNLOAD_CALL_TIMEOUT_MS = 10 * 60 * 1000; // 断点续传 sidecar(NATIVE_CHECKUPDATE_DESIGN §11.4):记录 partial 属于 // 哪个 url、验证器与总长。归档与 sidecar 同生共死;有归档无 sidecar(或 -// url 不符)一律视为不可信,删掉重来。 -interface ResumeMeta { - url: string; - etag?: string; - lastModified?: string; +// url 不符)一律视为不可信,删掉重来。续传的所有判定(读 sidecar、发不发 +// Range、响应怎么处理、写什么 sidecar)都在共享内核 +// cpp/patch_core/resume_plan.h,与 Android/iOS 同一份实现,这里只做 IO。 +const MAX_SIDECAR_BYTES = 64 * 1024; + +interface ResumeRequestPlan { + action: string; total?: number; + offset?: number; + headers?: Record; } -// "bytes -/"。返回总长(“*”记 0);缺失/畸形/起点与 -// 本地 partial 不符、或 range 与 total 自相矛盾(end 在 start 之前、数值 -// total 不大于 end)返回 -1——那样追加的字节不可信。RFC 9110 §14.4 要求 -// 完整长度必须大于 last-pos。 -export function parseContentRangeTotal( - header: string, - expectedStart: number, -): number { - if (!header.startsWith('bytes ')) { - return -1; - } - const range = header.substring('bytes '.length).trim(); - const slash = range.indexOf('/'); - const dash = range.indexOf('-'); - if (slash < 0 || dash < 0 || dash > slash) { - return -1; - } - const start = parseInt(range.substring(0, dash).trim(), 10); - const end = parseInt(range.substring(dash + 1, slash).trim(), 10); - if ( - Number.isNaN(start) || - Number.isNaN(end) || - start !== expectedStart || - end < start - ) { - return -1; - } - const totalPart = range.substring(slash + 1).trim(); - if (totalPart === '*') { - return 0; - } - const total = parseInt(totalPart, 10); - return Number.isNaN(total) || total <= end ? -1 : total; +interface ResumeResponseDecision { + action: string; + total?: number; + append?: boolean; + base?: number; + encoded?: boolean; + persistSidecar?: boolean; } export class DownloadTask { @@ -142,33 +120,33 @@ export class DownloadTask { return `${targetFile}.resume`; } - private async readResumeMeta( - targetFile: string, - url: string, - ): Promise { + // sidecar 原文;不存在、超过 sidecar 应有的大小或读失败时为 "" + // (共享内核把这些都当作“没有可信的 partial”)。 + private async readSidecarText(targetFile: string): Promise { const sidecar = this.resumeSidecarPath(targetFile); - if (!fileIo.accessSync(sidecar)) { - return null; - } try { - const meta = this.parseJsonEntry( - await this.readFileContent(sidecar), - ) as ResumeMeta; - if (meta && meta.url === url) { - return meta; + if (!fileIo.accessSync(sidecar)) { + return ''; } + const stat = await fileIo.stat(sidecar); + if (stat.size > MAX_SIDECAR_BYTES) { + return ''; + } + return new util.TextDecoder().decodeToString( + new Uint8Array(await this.readFileContent(sidecar)), + ); } catch (e) { // 坏 sidecar 只意味着“无法续传”。 + return ''; } - return null; } - private async writeResumeMeta( + private async writeSidecarText( targetFile: string, - meta: ResumeMeta, + text: string, ): Promise { try { - const encoded = new util.TextEncoder().encodeInto(JSON.stringify(meta)); + const encoded = new util.TextEncoder().encodeInto(text); await this.writeFileContent(this.resumeSidecarPath(targetFile), encoded); } catch (e) { // 非致命:没有 sidecar,下次从零开始。 @@ -482,32 +460,36 @@ export class DownloadTask { ); } - // 续传状态盘点:有匹配的 sidecar 且 partial 未收齐才发 Range。 - let resumeMeta: ResumeMeta | null = allowResume - ? await this.readResumeMeta(params.targetFile, params.url) - : null; - let resumeOffset = 0; - if (resumeMeta && fileIo.accessSync(params.targetFile)) { - const stat = await fileIo.stat(params.targetFile); - const knownTotal = resumeMeta.total ?? 0; - if (stat.size > 0 && knownTotal > 0 && stat.size === knownTotal) { - // 上次尝试已收齐(进程死在下载结束与解压之间):无需再传。 - httpRequest.destroy(); - this.onProgressUpdate(knownTotal, knownTotal); - return 'done'; - } - if (stat.size > 0 && (knownTotal <= 0 || stat.size < knownTotal)) { - resumeOffset = stat.size; - } + // 续传状态盘点(共享内核决定):已收齐 / 带 Range 续传 / 从零开始。 + let sidecarText = allowResume + ? await this.readSidecarText(params.targetFile) + : ''; + const partialSize = fileIo.accessSync(params.targetFile) + ? (await fileIo.stat(params.targetFile)).size + : 0; + const plan = JSON.parse( + NativePatchCore.resumePlanRequest(sidecarText, params.url, partialSize), + ) as ResumeRequestPlan; + if (plan.action === 'complete') { + // 上次尝试已收齐(进程死在下载结束与解压之间):无需再传。 + httpRequest.destroy(); + const knownTotal = plan.total ?? 0; + this.onProgressUpdate(knownTotal, knownTotal); + return 'done'; } - if (resumeOffset === 0) { + let resumeOffset = 0; + let resumeHeaders: Record = {}; + if (plan.action === 'resume') { + resumeOffset = plan.offset ?? 0; + resumeHeaders = plan.headers ?? {}; + } else { if (fileIo.accessSync(params.targetFile)) { await fileIo.unlink(params.targetFile); } else { await this.ensureParentDirectory(params.targetFile); } await this.deleteResumeSidecar(params.targetFile); - resumeMeta = null; + sidecarText = ''; } // 响应体在状态码判定前一律只进内存缓冲:416/5xx 的错误体若被追加进 @@ -520,23 +502,16 @@ export class DownloadTask { authorize = resolve; }); - // 本 url 的 sidecar 内容:验证器优先取本次响应头,缺失时沿用上次的; - // 总长未知(0)时不写。 - const buildResumeMeta = (total: number): ResumeMeta => { - const meta: ResumeMeta = { url: params.url }; - const etag = etagHeader || resumeMeta?.etag; - const lastModified = lastModifiedHeader || resumeMeta?.lastModified; - if (etag) { - meta.etag = etag; - } - if (lastModified) { - meta.lastModified = lastModified; - } - if (total > 0) { - meta.total = total; - } - return meta; - }; + // 本 url 的 sidecar 原文:验证器优先取本次响应头,缺失时沿用上次的; + // 总长未知(0)时不写(共享内核)。 + const sidecarFor = (total: number): string => + NativePatchCore.resumeSidecar( + params.url, + etagHeader, + lastModifiedHeader, + sidecarText, + total, + ); const reportProgress = () => { const overall = baseOffset + received; @@ -729,17 +704,10 @@ export class DownloadTask { const requestHeader: Record = { 'Content-Type': 'application/octet-stream', }; - if (resumeOffset > 0) { - // 只有续传请求钉死编码:Range 偏移必须与盘上字节一一对应。 - // 全新下载保留平台默认的压缩处理,与引入续传前的行为一致。 - requestHeader['Accept-Encoding'] = 'identity'; - requestHeader.Range = `bytes=${resumeOffset}-`; - const validator = resumeMeta?.etag || resumeMeta?.lastModified; - if (validator) { - // 带验证器时文件已变更的服务端会退回完整 200,而不是把不匹配 - // 的字节接上来。 - requestHeader['If-Range'] = validator; - } + // 续传请求的 Range / Accept-Encoding: identity / If-Range(共享内核 + // 给出);全新下载不带,保留平台默认的压缩处理。 + for (const name of Object.keys(resumeHeaders)) { + requestHeader[name] = resumeHeaders[name]; } const remainingMs = Math.max(1, deadlineUptimeMs - monotonicNowMs()); @@ -768,31 +736,6 @@ export class DownloadTask { deadlinePromise, ]); - if (responseCode === 416) { - discardBody = true; - pendingChunks = null; - const knownTotal = resumeMeta?.total ?? 0; - if (knownTotal > 0 && fileIo.accessSync(params.targetFile)) { - const stat = await fileIo.stat(params.targetFile); - if (stat.size === knownTotal) { - // partial 实际上就是完整文件。 - this.onProgressUpdate(knownTotal, knownTotal); - return 'done'; - } - } - return 'staleRange'; - } - if (responseCode > 299) { - // 响应体从未落盘,partial + sidecar 原样保留——那就是续传状态。 - discardBody = true; - pendingChunks = null; - throw createPushyError( - ERROR_DOWNLOAD_FAILED, - `Server error: ${responseCode}`, - ); - } - - let encodedBody = false; if (resumeOffset > 0 && responseCode === 206) { // Content-Range 只能从 headersReceive 拿到,而它与 promise 的先后 // 顺序不保证——等头到达(dataEnd 前必到,兜底 5s)再判定。 @@ -804,22 +747,50 @@ export class DownloadTask { }), ]); clearTimeout(headersTimer); - encodedBody = - !!contentEncodingHeader && - contentEncodingHeader.toLowerCase() !== 'identity'; - const parsedTotal = encodedBody - ? -1 - : parseContentRangeTotal(contentRangeHeader, resumeOffset); - if (parsedTotal < 0) { - // 编码过的 range 字节、或 Content-Range 缺失/畸形/起点不符: - // 追加不可信。按“partial 已过期”处理(删掉、干净地重来一次), - // 而不是抛错——抛错会保留 partial,之后每次都撞同一堵墙。 - discardBody = true; - pendingChunks = null; - return 'staleRange'; - } - baseOffset = resumeOffset; - totalAll = parsedTotal; + } + // 这个响应怎么处理由共享内核决定(与 Android/iOS 同一份)。 + const partialNow = fileIo.accessSync(params.targetFile) + ? (await fileIo.stat(params.targetFile)).size + : 0; + const decision = JSON.parse( + NativePatchCore.resumeClassifyResponse( + responseCode, + resumeOffset, + contentRangeHeader, + contentEncodingHeader, + contentLength > 0 ? contentLength : -1, + sidecarText, + params.url, + partialNow, + ), + ) as ResumeResponseDecision; + if (decision.action !== 'write') { + // 响应体从未落盘,partial + sidecar 原样保留,除非下面判定要重来。 + discardBody = true; + pendingChunks = null; + } + if (decision.action === 'complete') { + // 416 且 partial 实际上就是完整文件。 + const knownTotal = decision.total ?? 0; + this.onProgressUpdate(knownTotal, knownTotal); + return 'done'; + } + if (decision.action === 'restart') { + // 过期的 416、编码过的 range 字节、或 Content-Range 缺失/畸形/ + // 起点不符:追加不可信。按“partial 已过期”处理(删掉、干净地 + // 重来一次),而不是抛错——抛错会保留 partial,之后每次都撞同一堵墙。 + return 'staleRange'; + } + if (decision.action !== 'write') { + // 其余非 2xx:partial + sidecar 原样保留——那就是续传状态。 + throw createPushyError( + ERROR_DOWNLOAD_FAILED, + `Server error: ${responseCode}`, + ); + } + baseOffset = decision.base ?? 0; + totalAll = decision.total ?? 0; + if (decision.append) { writer = await fileIo.open( params.targetFile, fileIo.OpenMode.WRITE_ONLY | fileIo.OpenMode.APPEND, @@ -827,8 +798,6 @@ export class DownloadTask { } else { // 服务端忽略了 Range(或本就没发):从零开始。 await unlinkIfExists(params.targetFile); - baseOffset = 0; - totalAll = contentLength > 0 ? contentLength : 0; writer = await fileIo.open( params.targetFile, fileIo.OpenMode.CREATE | fileIo.OpenMode.WRITE_ONLY, @@ -846,8 +815,13 @@ export class DownloadTask { totalAll > 0 ? totalAll - baseOffset : 0, ERROR_DOWNLOAD_FAILED, ); - // 先落 sidecar 再放行写入,流中崩溃才有得续。 - await this.writeResumeMeta(params.targetFile, buildResumeMeta(totalAll)); + if (decision.persistSidecar) { + // 先落 sidecar 再放行写入,流中崩溃才有得续。 + await this.writeSidecarText(params.targetFile, sidecarFor(totalAll)); + } else { + // 编码传输不可续传:偏移会落在编码后的表示上。 + await this.deleteResumeSidecar(params.targetFile); + } // 鉴权通过:回放缓冲,之后的数据直写。 const buffered = pendingChunks ?? []; @@ -889,10 +863,7 @@ export class DownloadTask { } // 用最终观测值刷新 sidecar:首次写入可能因头部竞态缺 total/验证器, // 补齐后“下载完、解压前死”的窗口才能被 complete 检测覆盖。 - await this.writeResumeMeta( - params.targetFile, - buildResumeMeta(stats.size), - ); + await this.writeSidecarText(params.targetFile, sidecarFor(stats.size)); } else { // 编码传输不可续传:盘上是解码后的字节,编码域的长度与偏移都失效。 await this.deleteResumeSidecar(params.targetFile); diff --git a/harmony/pushy/src/main/ets/NativePatchCore.ts b/harmony/pushy/src/main/ets/NativePatchCore.ts index b92b943e..fce94758 100644 --- a/harmony/pushy/src/main/ets/NativePatchCore.ts +++ b/harmony/pushy/src/main/ets/NativePatchCore.ts @@ -197,6 +197,30 @@ interface NativePatchCoreBindings { * 不合法时抛出 Error("Invalid native configuration: ...")。 */ normalizeConfiguration(optionsJson: string | undefined): string; + + // 断点续传决策(cpp/patch_core/resume_plan.h,与 Android/iOS 共用), + // 返回 JSON 文本;IO 留在 DownloadTask.ts。sidecar 为 "" 表示没有。 + /** 请求前:complete / resume(offset + headers) / fresh。 */ + resumePlanRequest(sidecar: string, url: string, partialSize: number): string; + /** 响应到达后:complete / restart / httpError / write(append, base, total, encoded, persistSidecar)。 */ + resumeClassifyResponse( + status: number, + resumeOffset: number, + contentRange: string, + contentEncoding: string, + contentLength: number, + sidecar: string, + url: string, + partialSize: number, + ): string; + /** 要写入的 sidecar 文本:本次响应的验证器,缺失时沿用上一份;total>0 才记。 */ + resumeSidecar( + url: string, + etag: string, + lastModified: string, + previousSidecar: string, + total: number, + ): string; } export default NativeCore as unknown as NativePatchCoreBindings; diff --git a/ios/RCTPushy/RCTPushyDownloader.mm b/ios/RCTPushy/RCTPushyDownloader.mm index a51335c6..b91f64d4 100644 --- a/ios/RCTPushy/RCTPushyDownloader.mm +++ b/ios/RCTPushy/RCTPushyDownloader.mm @@ -1,6 +1,7 @@ #import "RCTPushyDownloader.h" #import "RCTPushyCommon.h" #include "../../cpp/patch_core/archive_limits.h" +#include "../../cpp/patch_core/resume_plan.h" // Cross-launch resumable download (NATIVE_CHECKUPDATE_DESIGN §11.4): a data // task streams the archive straight into savePath (a download task's @@ -14,20 +15,31 @@ return [savePath stringByAppendingString:@".resume"]; } -static NSDictionary *RCTPushyReadResumeMeta(NSString *savePath, NSString *url) { - NSData *data = [NSData dataWithContentsOfFile:RCTPushyResumeSidecarPath(savePath)]; - if (data == nil) { - return nil; - } - id meta = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; - if (![meta isKindOfClass:[NSDictionary class]]) { - return nil; - } - // An archive whose sidecar names another URL is untrusted. - if (![url isEqualToString:meta[@"url"]]) { - return nil; - } - return meta; +// The sidecar's text, "" when there is none or it cannot be one (larger than +// a sidecar ever is): pushy::resume treats both as "no trusted partial". +static NSString *RCTPushyReadSidecarText(NSString *savePath) { + NSString *path = RCTPushyResumeSidecarPath(savePath); + NSNumber *size = [[NSFileManager defaultManager] attributesOfItemAtPath:path + error:nil][NSFileSize]; + if (size == nil || size.longLongValue > pushy::resume::kMaxSidecarBytes) { + return @""; + } + NSString *text = [NSString stringWithContentsOfFile:path + encoding:NSUTF8StringEncoding + error:nil]; + return text ?: @""; +} + +static std::string RCTPushyStd(NSString *value) { + const char *utf8 = value.UTF8String; + return utf8 == nullptr ? std::string() : std::string(utf8); +} + +// A pushy::resume result as a dictionary; nil only if it did not parse. +static NSDictionary *RCTPushyResumeDecision(const std::string &json) { + NSData *data = [NSData dataWithBytes:json.data() length:json.size()]; + id value = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; + return [value isKindOfClass:[NSDictionary class]] ? value : nil; } static void RCTPushyDeleteResumeSidecar(NSString *savePath) { @@ -78,54 +90,6 @@ static long long RCTPushyFreeDiskSpaceForPath(NSString *path) { return nil; } -// "bytes -/". Returns the total (0 when "*"), or -1 when -// missing/malformed, the start does not match the local partial, or the -// range and total contradict each other (end before start, or a numeric -// total not beyond the end — RFC 9110 §14.4). A total of 0 would otherwise -// pass as "unknown" and skip the final size check. -static long long RCTPushyParseContentRange(NSString *header, long long expectedStart) { - if (![header hasPrefix:@"bytes "]) { - return -1; - } - NSString *range = [[header substringFromIndex:6] - stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; - NSRange slash = [range rangeOfString:@"/"]; - NSRange dash = [range rangeOfString:@"-"]; - if (slash.location == NSNotFound || dash.location == NSNotFound - || dash.location > slash.location) { - return -1; - } - NSCharacterSet *whitespace = [NSCharacterSet whitespaceCharacterSet]; - NSString *startPart = [[range substringToIndex:dash.location] - stringByTrimmingCharactersInSet:whitespace]; - NSString *endPart = [[range substringWithRange: - NSMakeRange(dash.location + 1, slash.location - dash.location - 1)] - stringByTrimmingCharactersInSet:whitespace]; - NSString *totalPart = [[range substringFromIndex:slash.location + 1] - stringByTrimmingCharactersInSet:whitespace]; - // longLongValue reads 0 for non-numeric text; require real digits. - NSCharacterSet *digits = [NSCharacterSet decimalDigitCharacterSet]; - if (startPart.length == 0 || endPart.length == 0 - || [startPart rangeOfCharacterFromSet:digits.invertedSet].location != NSNotFound - || [endPart rangeOfCharacterFromSet:digits.invertedSet].location != NSNotFound) { - return -1; - } - long long start = startPart.longLongValue; - long long end = endPart.longLongValue; - if (start != expectedStart || end < start) { - return -1; - } - if ([totalPart isEqualToString:@"*"]) { - return 0; - } - if (totalPart.length == 0 - || [totalPart rangeOfCharacterFromSet:digits.invertedSet].location != NSNotFound) { - return -1; - } - long long total = totalPart.longLongValue; - return total > end ? total : -1; -} - @interface RCTPushyDownloader() @property (nonatomic, strong) NSURLSession *session; @@ -135,7 +99,11 @@ @interface RCTPushyDownloader() @property (copy) NSString *urlString; @property (nonatomic, assign) NSTimeInterval timeoutInterval; @property (nonatomic, strong) NSFileHandle *fileHandle; -@property (nonatomic, strong) NSDictionary *resumeMeta; +// The sidecar the planned request was based on ("" for a fresh request), +// and this response's validators: pushy::resume builds the next sidecar. +@property (nonatomic, copy) NSString *sidecarText; +@property (nonatomic, copy) NSString *responseEtag; +@property (nonatomic, copy) NSString *responseLastModified; @property (nonatomic, assign) long long resumeOffset; // requested Range start @property (nonatomic, assign) long long baseOffset; // granted by the response @property (nonatomic, assign) long long receivedBytes; // streamed this session @@ -191,45 +159,36 @@ - (void)startTransfer return; } - NSFileManager *fileManager = [NSFileManager defaultManager]; - self.resumeMeta = RCTPushyReadResumeMeta(self.savePath, self.urlString); + // What to request is the shared core's decision (pushy::resume). + NSString *sidecarText = self.retriedFromZero ? @"" : RCTPushyReadSidecarText(self.savePath); + long long partialSize = RCTPushyFileSize(self.savePath); + NSDictionary *plan = RCTPushyResumeDecision(pushy::resume::PlanRequestJson( + RCTPushyStd(sidecarText), RCTPushyStd(self.urlString), MAX(0LL, partialSize))); + NSString *action = plan[@"action"]; self.resumeOffset = 0; - if (self.resumeMeta != nil) { - long long size = RCTPushyFileSize(self.savePath); - long long knownTotal = [self.resumeMeta[@"total"] longLongValue]; - if (size > 0 && knownTotal > 0 && size == knownTotal) { - // Fully received in a previous attempt (the process died between - // download end and unzip): nothing left to transfer. - if (self.progressHandler) { - self.progressHandler(knownTotal, knownTotal); - } - [self completeWithError:nil]; - return; - } - if (size > 0 && (knownTotal <= 0 || size < knownTotal)) { - self.resumeOffset = size; + if ([action isEqualToString:@"complete"]) { + // Fully received in a previous attempt (the process died between + // download end and unzip): nothing left to transfer. + long long knownTotal = [plan[@"total"] longLongValue]; + if (self.progressHandler) { + self.progressHandler(knownTotal, knownTotal); } + [self completeWithError:nil]; + return; } - if (self.resumeOffset == 0) { - [fileManager removeItemAtPath:self.savePath error:nil]; - RCTPushyDeleteResumeSidecar(self.savePath); - } - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; - if (self.resumeOffset > 0) { - // Only resume requests pin the encoding: Range offsets must address - // the same bytes that are on disk. Fresh downloads keep the system's - // transparent gzip handling, matching the pre-resume behaviour for - // servers that compress regardless. - [request setValue:@"identity" forHTTPHeaderField:@"Accept-Encoding"]; - [request setValue:[NSString stringWithFormat:@"bytes=%lld-", self.resumeOffset] - forHTTPHeaderField:@"Range"]; - NSString *validator = self.resumeMeta[@"etag"] ?: self.resumeMeta[@"lastModified"]; - if (validator != nil) { - // With a validator the server falls back to a full 200 when the - // file changed instead of appending mismatched bytes. - [request setValue:validator forHTTPHeaderField:@"If-Range"]; + if ([action isEqualToString:@"resume"]) { + self.resumeOffset = [plan[@"offset"] longLongValue]; + self.sidecarText = sidecarText; + // Range, Accept-Encoding: identity and If-Range. Fresh downloads send + // none of them and keep the system's transparent gzip handling. + NSDictionary *headers = plan[@"headers"]; + for (NSString *name in headers) { + [request setValue:headers[name] forHTTPHeaderField:name]; } + } else { + self.sidecarText = @""; + RCTPushyDiscardArchive(self.savePath); } NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration]; @@ -248,28 +207,15 @@ - (void)startTransfer [task resume]; } -- (void)writeResumeMetaWithResponse:(NSHTTPURLResponse *)response total:(long long)total +- (void)writeSidecarWithTotal:(long long)total { - NSMutableDictionary *meta = [NSMutableDictionary dictionary]; - meta[@"url"] = self.urlString; - NSString *etag = response.allHeaderFields[@"ETag"] ?: self.resumeMeta[@"etag"]; - NSString *lastModified = - response.allHeaderFields[@"Last-Modified"] ?: self.resumeMeta[@"lastModified"]; - if (etag != nil) { - meta[@"etag"] = etag; - } - if (lastModified != nil) { - meta[@"lastModified"] = lastModified; - } - if (total > 0) { - meta[@"total"] = @(total); - } - NSData *data = [NSJSONSerialization dataWithJSONObject:meta options:0 error:nil]; - if (data != nil) { - // Non-fatal on failure: without a sidecar the next attempt starts - // from zero. - [data writeToFile:RCTPushyResumeSidecarPath(self.savePath) atomically:YES]; - } + std::string json = pushy::resume::SidecarJson( + RCTPushyStd(self.urlString), RCTPushyStd(self.responseEtag), + RCTPushyStd(self.responseLastModified), RCTPushyStd(self.sidecarText), total); + NSData *data = [NSData dataWithBytes:json.data() length:json.size()]; + // Non-fatal on failure: without a sidecar the next attempt starts from + // zero. + [data writeToFile:RCTPushyResumeSidecarPath(self.savePath) atomically:YES]; } - (void)closeFileHandle @@ -321,7 +267,7 @@ - (void)failWithDescription:(NSString *)description code:(NSInteger)code - (void)restartFromZero { self.retriedFromZero = YES; - self.resumeMeta = nil; + self.sidecarText = @""; self.resumeOffset = 0; self.baseOffset = 0; self.receivedBytes = 0; @@ -382,13 +328,33 @@ - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)data [self completeWithError:self.fileError]; return; } - if (statusCode == 416) { - long long knownTotal = [self.resumeMeta[@"total"] longLongValue]; + // What to do with this response is the shared core's decision + // (pushy::resume). A non-HTTP response cannot happen for an http(s) URL; + // it would carry no status, so it is classified like a plain 200. + NSDictionary *headers = httpResponse.allHeaderFields; + NSDictionary *decision = RCTPushyResumeDecision(pushy::resume::ClassifyResponseJson( + httpResponse != nil ? (int)statusCode : 200, self.resumeOffset, + RCTPushyStd(headers[@"Content-Range"]), RCTPushyStd(headers[@"Content-Encoding"]), + response.expectedContentLength, RCTPushyStd(self.sidecarText), + RCTPushyStd(self.urlString), MAX(0LL, RCTPushyFileSize(self.savePath)))); + NSString *action = decision[@"action"]; + if ([action isEqualToString:@"complete"]) { + // 416 and the partial is actually the complete file. + long long knownTotal = [decision[@"total"] longLongValue]; + completionHandler(NSURLSessionResponseCancel); + if (self.progressHandler) { + self.progressHandler(knownTotal, knownTotal); + } + [self completeWithError:nil]; + return; + } + if ([action isEqualToString:@"restart"]) { + // A stale 416, encoded range bytes or a malformed/mismatched + // Content-Range: the partial cannot be trusted. One clean retry from + // zero instead of failing terminally, which would keep the partial + // and hit the same wall on every attempt. completionHandler(NSURLSessionResponseCancel); - if (knownTotal > 0 && RCTPushyFileSize(self.savePath) == knownTotal) { - // The partial is actually the complete file. - [self completeWithError:nil]; - } else if (!self.retriedFromZero) { + if (!self.retriedFromZero) { [self restartFromZero]; } else { [self failWithDescription:@"server rejected the download range" code:statusCode]; @@ -396,7 +362,8 @@ - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)data } return; } - if (httpResponse != nil && (statusCode < 200 || statusCode >= 300)) { + if (![action isEqualToString:@"write"]) { + // The partial and its sidecar stay: that is the resume state. [self failWithDescription:[NSString stringWithFormat:@"unexpected http status code %ld", (long)statusCode] code:statusCode]; @@ -405,39 +372,17 @@ - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)data return; } - NSString *contentEncoding = - [httpResponse.allHeaderFields[@"Content-Encoding"] lowercaseString]; - self.encodedBody = - contentEncoding.length > 0 && ![contentEncoding isEqualToString:@"identity"]; - - BOOL append = statusCode == 206 && self.resumeOffset > 0; - if (append && (self.encodedBody - || RCTPushyParseContentRange(httpResponse.allHeaderFields[@"Content-Range"], - self.resumeOffset) < 0)) { - // Encoded range bytes or a malformed/mismatched Content-Range: the - // appended bytes could not be trusted. Treat like a stale partial — - // one clean retry from zero — instead of failing terminally, which - // would keep the partial and hit the same wall on every attempt. - completionHandler(NSURLSessionResponseCancel); - if (!self.retriedFromZero) { - [self restartFromZero]; - } else { - [self failWithDescription:@"untrusted resume response" code:-1]; - [self completeWithError:self.fileError]; - } - return; - } - self.baseOffset = append ? self.resumeOffset : 0; + BOOL append = [decision[@"append"] boolValue]; + // NSURLSession delivers decoded bytes for an encoded body: the core then + // reports total 0 (the encoded lengths say nothing about the file). + self.encodedBody = [decision[@"encoded"] boolValue]; + self.baseOffset = [decision[@"base"] longLongValue]; self.contentLength = response.expectedContentLength; - if (append) { - self.expectedTotal = RCTPushyParseContentRange( - httpResponse.allHeaderFields[@"Content-Range"], self.resumeOffset); - } else if (self.encodedBody) { - // Decoded bytes are being written; the encoded lengths say nothing. - self.expectedTotal = 0; - } else { - self.expectedTotal = self.contentLength > 0 ? self.contentLength : 0; - } + self.expectedTotal = [decision[@"total"] longLongValue]; + id etag = headers[@"ETag"]; + id lastModified = headers[@"Last-Modified"]; + self.responseEtag = [etag isKindOfClass:[NSString class]] ? etag : nil; + self.responseLastModified = [lastModified isKindOfClass:[NSString class]] ? lastModified : nil; // Caps from archive_limits.h, applied before the first body byte lands // (Android does the same): the announced size up front here, streamed @@ -494,13 +439,13 @@ - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)data return; } } - if (self.encodedBody) { + if (![decision[@"persistSidecar"] boolValue]) { // No resume across an encoded transfer: on-disk bytes are decoded, // Range offsets would address the encoded representation. RCTPushyDeleteResumeSidecar(self.savePath); - } else if (httpResponse != nil) { + } else { // Persist before streaming so a mid-stream crash can resume. - [self writeResumeMetaWithResponse:httpResponse total:self.expectedTotal]; + [self writeSidecarWithTotal:self.expectedTotal]; } completionHandler(NSURLSessionResponseAllow); } @@ -614,6 +559,12 @@ - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task finalError = self.fileError; } } + if (finalError == nil && !self.encodedBody) { + // Refresh with the final size: a length unknown up front (chunked) + // left the sidecar without a total, so a process dying between + // download end and unzip would otherwise download it all again. + [self writeSidecarWithTotal:RCTPushyFileSize(self.savePath)]; + } // On failure the partial + sidecar stay on disk — that is the resume // state a later launch (or crash-rescue window) picks up — unless the // archive was rejected outright (discardPartial). diff --git a/scripts/contract.ts b/scripts/contract.ts index 7fc9f290..f13df61c 100644 --- a/scripts/contract.ts +++ b/scripts/contract.ts @@ -278,6 +278,9 @@ export const jniFunctions: Record = { 'InstallRecord.bundleSha256Of': 'InstallRecordBundleSha256', 'ArchiveLimits.checkEntries': 'ArchiveCheckEntries', 'ArchiveLimits.planFreeSpaceProbe': 'ArchivePlanFreeSpaceProbe', + 'ResumePlan.planRequest': 'ResumePlanRequest', + 'ResumePlan.classifyResponse': 'ResumeClassifyResponse', + 'ResumePlan.sidecar': 'ResumeSidecar', }; // NativePatchCore.ts binding -> the NAPI callback in pushy.cpp. @@ -305,6 +308,9 @@ export const napiFunctions: Record = { configsEquivalent: 'FlowConfigsEquivalent', runnableConfig: 'FlowRunnableConfig', normalizeConfiguration: 'FlowNormalizeConfiguration', + resumePlanRequest: 'ResumePlanRequest', + resumeClassifyResponse: 'ResumeClassifyResponse', + resumeSidecar: 'ResumeSidecar', }; export type TextHost = 'cpp' | 'java' | 'arkts'; diff --git a/scripts/test-patch-core.sh b/scripts/test-patch-core.sh index c7db3fe1..bd28c112 100755 --- a/scripts/test-patch-core.sh +++ b/scripts/test-patch-core.sh @@ -62,6 +62,17 @@ c++ \ "$BUILD_DIR/patch_core_test" "$ROOT_DIR/cpp/patch_core/tests/fixtures" "$BUILD_DIR/hbc_transform_test" "$ROOT_DIR/cpp/patch_core/tests/fixtures" +# The resumable-download decisions every platform's downloader delegates to. +c++ \ + -std=c++17 \ + $CORE_WARNINGS \ + $SANITIZE_FLAGS \ + "$ROOT_DIR/cpp/patch_core/tests/resume_plan_test.cpp" \ + "$ROOT_DIR/cpp/patch_core/resume_plan.cpp" \ + "$ROOT_DIR/cpp/update_flow_core/flow_json.cpp" \ + -o "$BUILD_DIR/resume_plan_test" +"$BUILD_DIR/resume_plan_test" "$ROOT_DIR/cpp/patch_core/tests/resume-plan-vectors.json" + # Opt-in libFuzzer runs of the hbcTransform wire parser (untrusted __diff.json # metadata) and of the whole __diff.json parser: FUZZ=1 bun run test:patch-core. if cpp_test_fuzz_compiler; then diff --git a/src/__tests__/harmonyDownloadTask.test.ts b/src/__tests__/harmonyDownloadTask.test.ts index 23890390..efd99278 100644 --- a/src/__tests__/harmonyDownloadTask.test.ts +++ b/src/__tests__/harmonyDownloadTask.test.ts @@ -1,72 +1,9 @@ import { describe, expect, test } from 'bun:test'; import { DownloadTaskParams } from '../../harmony/pushy/src/main/ets/DownloadTaskParams'; -import { BUNDLE_DELTA_ENTRY } from '../../harmony/pushy/src/main/ets/Texts'; -import { evalHarmonyModule } from './nativeSources'; -// The pure parsers of Harmony DownloadTask.ts, evaluated from source with its -// platform imports stripped (the download/patch class itself needs a device). -// InstallRecord.ts imports the NAPI module, so its bundle name is inlined. -// __diff.json is parsed by the native core only -// (cpp/patch_core/tests/patch-manifest-vectors.json). -const HARMONY_BUNDLE_FILE_NAME = 'bundle.harmony.js'; - -const { parseContentRangeTotal } = evalHarmonyModule( - 'DownloadTask.ts', - '({ parseContentRangeTotal });', - { HARMONY_BUNDLE_FILE_NAME, BUNDLE_DELTA_ENTRY } -) as { - parseContentRangeTotal(header: string, expectedStart: number): number; -}; - -// A 206's Content-Range decides whether appended bytes can be trusted. -describe('harmony parseContentRangeTotal', () => { - test('returns the total for a well-formed range at the expected start', () => { - expect(parseContentRangeTotal('bytes 100-199/200', 100)).toBe(200); - expect(parseContentRangeTotal('bytes 0-9/10', 0)).toBe(10); - expect(parseContentRangeTotal('bytes 100-100/200', 100)).toBe(200); - }); - - test('tolerates surrounding whitespace', () => { - expect(parseContentRangeTotal('bytes 100-199 / 200 ', 100)).toBe(200); - }); - - test('returns 0 for an unknown total (*)', () => { - expect(parseContentRangeTotal('bytes 100-199/*', 100)).toBe(0); - }); - - test('rejects a start that does not match the local partial', () => { - expect(parseContentRangeTotal('bytes 50-199/200', 100)).toBe(-1); - expect(parseContentRangeTotal('bytes 0-199/200', 100)).toBe(-1); - }); - - test('rejects missing or foreign units', () => { - expect(parseContentRangeTotal('', 0)).toBe(-1); - expect(parseContentRangeTotal('100-199/200', 100)).toBe(-1); - expect(parseContentRangeTotal('items 100-199/200', 100)).toBe(-1); - }); - - test('rejects malformed ranges', () => { - expect(parseContentRangeTotal('bytes 100-199', 100)).toBe(-1); - expect(parseContentRangeTotal('bytes 100/200', 100)).toBe(-1); - expect(parseContentRangeTotal('bytes */200', 0)).toBe(-1); - expect(parseContentRangeTotal('bytes abc-199/200', 100)).toBe(-1); - }); - - test('rejects non-positive or non-numeric totals', () => { - expect(parseContentRangeTotal('bytes 100-199/0', 100)).toBe(-1); - expect(parseContentRangeTotal('bytes 100-199/-5', 100)).toBe(-1); - expect(parseContentRangeTotal('bytes 100-199/abc', 100)).toBe(-1); - }); - - // A numeric total must exceed end (RFC 9110 §14.4); end cannot precede start. - test('rejects a range that contradicts its total', () => { - expect(parseContentRangeTotal('bytes 100-199/199', 100)).toBe(-1); - expect(parseContentRangeTotal('bytes 100-199/150', 100)).toBe(-1); - expect(parseContentRangeTotal('bytes 100-99/200', 100)).toBe(-1); - expect(parseContentRangeTotal('bytes 100-99/*', 100)).toBe(-1); - expect(parseContentRangeTotal('bytes 100-x/200', 100)).toBe(-1); - }); -}); +// The resume decisions DownloadTask.ts used to parse itself (Content-Range +// and the rest) live in the shared native core and are pinned by +// cpp/patch_core/tests/resume-plan-vectors.json. describe('harmony DownloadTaskParams', () => { test('defaults to a full-package task with empty paths', () => {