From 8eec4bd5faf04b84dee47902121701e3b327891d Mon Sep 17 00:00:00 2001 From: Matt Edholm Date: Wed, 13 May 2026 19:45:58 -0400 Subject: [PATCH] fix(13e6): SPI corruption fix + setup-screen polish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SPI corruption: lower clock to 4 MHz (matches 7.3" prod) and push from internal SRAM in 8 KB chunks instead of streaming directly from a PSRAM scratch buffer. On the S3, Arduino's SPI DMA reads RAM directly — the CPU's cache can hold writes to PSRAM that the DMA never sees, painting the panel yellow/garbage. Internal-SRAM chunks are DMA-coherent. - LittleFS partition: switch the env to default_16MB.csv. The stock partition table for esp32-s3-devkitc-1 reserves ~1.5 MB for SPIFFS; three 960 KB setup-screen .bin files need ~2.9 MB + LittleFS metadata. - Setup screens: redesigned to match the 7.3" information density — yellow header band, two-column body with vertical divider, "Connect to WiFi" heading + 5 numbered steps + manual QR + side label on the left, Step 1 / Step 2 QRs on the right. - Orientation diagrams: PORTRAIT drawn upright (ribbon-bottom, up-arrow); LANDSCAPE drawn pre-rotated 90° CCW so it snaps to upright landscape when the user rotates the frame 90° CW (ribbon-bottom + left-arrow in portrait view → ribbon-left + up-arrow after rotation). "LANDSCAPE" label runs vertically up the long edge so it reads horizontally once the frame is mounted landscape. - New helper paste_rotated_text() — PIL's text() can't rotate, so render → rotate → paste-with-alpha. Used for the vertical LANDSCAPE label. Co-Authored-By: Claude Opus 4.7 (1M context) --- data/waveshare13e6-v1/ap_bg.bin | 2 +- data/waveshare13e6-v1/ap_bg_preview.png | Bin 16289 -> 34748 bytes data/waveshare13e6-v1/ap_bg_retry.bin | 2 +- data/waveshare13e6-v1/ap_bg_retry_preview.png | Bin 16162 -> 34133 bytes data/waveshare13e6-v1/setup_bg.bin | 2 +- data/waveshare13e6-v1/setup_bg_preview.png | Bin 18916 -> 22676 bytes platformio.ini | 4 + scripts/gen_screens_13e6.py | 366 ++++++++++++++---- src/panels/waveshare13e6/v1/epd_driver.cpp | 83 +++- 9 files changed, 374 insertions(+), 85 deletions(-) diff --git a/data/waveshare13e6-v1/ap_bg.bin b/data/waveshare13e6-v1/ap_bg.bin index 13cc126..5d415c5 100644 --- a/data/waveshare13e6-v1/ap_bg.bin +++ b/data/waveshare13e6-v1/ap_bg.bin @@ -1 +1 @@ -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""03"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""32""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#2"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#0"""""""""""""""""""""""""""""""""#2""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""2""""""""#""""2""""""""""""" """""""""""""""""""""3""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""" 2"" " """ """""""""""""""""0"""""""""""""""""" 2"""""" """""""""""#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""02""""2""""""""#"""""""""""""""" """"""#""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""#"" " """ """"""""""""""0""""""""""""""""" 2""""" """"""""""#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#2""""2""""""""#""""""""""""""" 2""""" """""0""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""0"" " """ """""""""""" """"""""""""""""#""""" """"""""""#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""02""""2""""""""#""""""""""""""" """"" """"#"""""2""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""#"" " """ """"""""""" """"""""""""""""0"""" """"""""""#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""2""""2""""""""#"""""""""""""" """""""""0""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""" "" " """ """"""""""" """""""""""""""#"""" """"""""""#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""2"""32""""2""""""""#"""""""""""""" """""""""""0"""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""" """#0"" " """ """"""""""" """"""""""""""" ""#2""" """"""""""#""#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#""""""0""""""""""""""""""" """"""""""""#"""""""#"""""""""" """"#""" """""""""""#"""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""0""""""#""""""""""""""" """""""""" """0"""""""""" 20""""""""""""""""""" """ """""""""""""""""#2"""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""" """"""""""""#"""""""" """""""""" """ """ """"" 2"""""""#"""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""" """""""""""""" 2""0""""""""""""""""""""""" """""""""""""""""#2"""""#2"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""" """"""""""""#""""""""#"""""""""" """0""""""""""""""""" 2""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""" """"0""""""""""""""0"""""""""""""" 2""""" """ """""""""""""""""""""""""2"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""" """"""""""""#""""""""""""""""""" """0"""""""""0"""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""" """" """"""""""""""0"""""""""""""" """"""#""" """""""""""""""""""""""""2"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 2""""""""""""""""""""""""" """"""""""""#"""""""""2""""""""" """ """2"""""" """""""""0""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""" """" """"""""""""""0"""""""""""""" """""""2"" """""""""""""""""""""""""2""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#2""""""""""""""""""""""" """"""""""""#""""""""""""""""""" 2" ""#""""""" """"""""" """ """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""03"""""""""""""""""""" """""""""" """" """"""""""""""0""""""""""""""0""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""2"""""""""""""" """"""""""""#""""""""#"""""""""" 0"  ""#"""""""#""""""""" """ 2""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""" 2""" """"0""""""""""""""0""""""""""""""0"""""""0"" 2"""""""""""""""""#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""#"""""""" """"""""""  "0 "" """""""#"""""""""#""" 2""""""""""""""""""""""""""""""""""""""""""""""""""""""" 2"""""""""""""""" 2""" """"""""""""""""""0"""""""""""""""""""""0"" 2""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""" """"""""""""#"""""""#"""""""""" #"2 "" """""""#"""""""""#""" 2"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 2""" """0""""""""""""""0"""""""""""""""""""""0"" 2"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""#"""""""""""""" "#" "" """""""#""""""""""""" 2"""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""" 2""" """""""""""""""0"""""""""""""""""""""0"" 2"""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#""""""""""" """"""""""""#"""""""""""""" "0" "" """""""#""""""""""""" 2"""""""""""""""""""""""""""""""""""""""""""""""""""""""""0""""""""""""""" 2""" """""""""""""""0"""""""""""""""""""""0"" 2""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""#""""""""""""""" " " "" """""""#"""""""""#""" 2""""""""""""""""" """""""""""""""""""" """""""""""""" 2""" """""""""""""""0"""""""""""""""""""""0"" 2""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#"""""""""""""""""" """"""""""""#""""""""""""""" " " ""#"""""""#"""""""""#""" """""""""""""""""""""""" """"""""""""""""""""""0"""""""""""""" """""""""" """"""""""""""""0""""""""""""""0"""""""0"" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#"""""""""""""""""" """"""""""""#"""""""""""""""" "#"" ""#""""""" """"""""" """ """""""""""""""""""""""" """"""""""""""""""""""""0"""""""""""""" """""""""" """""""""""""""""0""""""""""""""0""""""""" """"""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#2""""""""""""""""" """""""2"""" """"2""""""""""""" """" """2"""""" """"""""" """ """""""""""""""""""""""" """""""""""""""""""""""""0"""""""""""""" """""""""" """"""""""""""""""0"""""""""""""" """""""2"" """"""""""""""""""""#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""2""""""""""""""""" """""""2"""" """"""""""""""""""""""" """" """""""""0"""""""""0""" """""""""""""""""""""""" """"""""""""""""""""""""" """""""""""""" """""""""" """""""""""""""""""""""0"""""""""""""" """"""#2"" """"""""""""""""""""0""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""02""""""""""""""""" """""""0"""" """"""""""""""""""""""" "" "" """"""""""""""""""""" """""""""""""""""""""""" """""""""""""""""""""""""#"""""""""""""" """""""""" """""""""""""""""""""""0"""""""""""""" 2""""" """ """""""""""""""""""#2"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#2""""""""""""""""""""""""" """""""0""""0""""""""""""""""""""""" "" 2"" """ """"" 2"""""""" """ """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""3""""""" """""""""""""" """""""""" """""""""""""""""""""""0""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#"""""""""""""""""""""""" """"""" """"""""""""""""""""""""""" ""#""" """ """"""""""""#"""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""0"""""" """""""""""""" """""""""" """""""""""""""""""""""0""""""""""""""""""" """ """""""""""""""""" 2""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#2"""0"""""""""""""""""" """"""" ""02""""""""""""""""""""""" """""" """"""0"""""""#"""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""0"""#"""""""""""""" """""""""" """""""""""""""""""""""0""""""""""""""" ""#2""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#"""""""""" """""""""""""""""""""""""""""""" """"""""" """"0"""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""02"""""""""""""" """ """"""""""""""""""" """""""""""#"""" """""""""""""""""#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#"""""""""" """"""""0"""""""""""""""""""""""" """"""""" """"#"""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""0""""""""""""""" """ """"""""""""""""""" """"""""""""0"""" """""""""""""""""#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#""""""""""" """""""" 2"""""""""""""""""""""""" """"""""" """""0"""""2""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""0""""""""""""""" """ """"""""""""""""""" """"""""""""#""""" """""""""""""""""#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#""""""""""" """""""""0""""""""""""""""""""""""" """"""""" """""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""0"""""""""""""""" """ """"""""""""""""""" """"""""""""" 2""""" """""""""""""""""#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#"""""""""""" """""""""""""""""""""""""""""""""""" """"""""" """"""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""02"""""""""""""""" """ """"""""""""""""""" """""""""""""" 2"""""" """""""""""""""""#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#02""""""""""""" """""""""""#2""""""""""""""""""""""""""" """"""""" """"""""32""""""""3""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""3"""""""""""""""""" """ """"""""""""""""""" """""""""""""""#0"""""""" """""""""""""""""#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""`faf```a`aaa``aa```a`aaa`aaaa``aaaaa`a``a`a`a``a``aa`aa```a``a`aaf""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""`aaaa`a`a``aaaa``a`````aa```f`aa`a``a`a`a`a``aa`````aa``a```aa`aaa`a``aaa`aa```a`a`a```a``a``aaa`aa`a`````aaa````aa`aa`afa``aa`a`a``aa```aa`a```a`a``aa``a`f`aa`fa`a`a`faaaa````aa`a`a`aaaaafaaa`aaaaa`aaa```aaaa`a`aaaa`aa``aa`a``aaa`aaaa`aa``a```aa`a`a`a``a`f""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!`a`af``afa``afaa``afaa`aaaa`a`aa`aa``aaaaa`a``a``aa`a`````a``aaaaa````aa`a````a`aaa`aaaaa`a``a`a`aaa`aa`aaa`a``aa``````a```a````a`a`a``a \ No newline at end of file +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""0"" """"""" 2""#3""" """"""""""#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""" "" "" """"""" """" 2"""" """"""""""""#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""" "" """"""" """"""2"""" """""""""""""" """"""""""""""""""""""""""""""""""""""#3"""" 2 " """"2"" """""""""""2""""#""""""#"""""" 3"""""" 2"""""""""""""""""""""""""""""""""""""""""""""02"" " 2""2""""""""""""3"""""""""""""""02"""""""""""""""#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""" "" "" """"""" """""" 2"""" """""""""""""" """""""""""""""""""""""""""""""""""""#""" 2 " """"2"" """""""""""""" """""0""""" """"" 2""""""""""""""""""""""""""""""""""""""""""""0" " 2"""""""""""""""""""""""""#""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ""#2"" "" ""#"""0"""23"" ""0""#""#"""""""""""""""""""""""""""""""""""""2"" 2 " """"2"" """""""""""""0"""" """" """" 2""""""""""""""""""""""""""""""""""""""""""" " " 2""2"""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ""#""#"" ""#""#2"""" ""0"" ""#""""""""""""""""""""""""""""""""""""#2"" 2 " """"2"" """""""""""""""""""" """ 2"""""""""""""""""""""""""""""""""""""""""""0" " 2""""""""""""""""""""""" """""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ""#""""" 2""#"""""" ""02""2""2" """0""#2""2" """""0"" """"02""#"" ""0"" ""0"" ""#"""""""""""""""""""""""""""""""""""" 2"" 2 " """"2"" """"""""""""""" """ """ 2"""""""""""""""""""""""""""""""""""""""""""" " 2"""""""""""""""""""""""""""""""""" 2""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ""#""""" """"" """""" ""02""2"""" """""0""#2"""" """""" "" """#""""2""""#"" ""0"" ""0""#"" """"""""""""""""""""""""""""""""""""0"""02"" """"""""""#""""" """"2"" ""#""""""""2"" """0""2"" ""#2"" """"""""""""""""""""""""""""""""""""""""""""""""#2""#"""""#""""" """"""""2""0"""""""""3#"""""""""""#"" """2""""""""""""" """" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ""#""#"" 2""""" """""" ""02""2""""" 2""""""""#2""""" """"""""""""""2"""" """""" "" "" "" ""0""""""""""""""""""""""""""""""""""""""""""02""""#""" """"""""""#""""" """"2"" """0"""""""""" """"""#"" """ "" """"""""""""""""""""""""""""""""""""""""""""""""#"""""2"""""#""""" """"""""2""#2""""""""""#""""""""""" 2"""0"""2"""""""""""""""""""2"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ""#2"" "" """2 "" ""02""2""""" ""#""0"""""""02""""" #2""0"""0""" ""#2""0""#""#2"" "" """"""#2""""0""""""""""""""""""""""""""""""""""""0""""""""" """"""""""#""""" """"2"" """ """"""""""0""#2"""""" """""" """"""""""""""""""""""""""""""""""""""""""""""""#"""""""""""#""""" """"""""2"""2""""""""""#"""""""""""0"""" 2""2"""""""""""""""""""2"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""" "" "" 0"" ""02""2"""0""0"" """""""02"""0"" ""#"""2""""#"""""0""" "" """"""#""""" """"""""""""""""""""""""""""""""""""0"""""""" """"""""""#""""" """"2"" """ """""""" """" """"" "" """" "" """"""""""""""""""""""""""""""""""""""""""""""""#"""""""""""#""""" """"""""2"""2""""""""""#""""""""""""""""""2"""""""""""""""""""2"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""" """" ""02""2"" """"#"""""""02"" 2""""" "" """2"""" ""0"""" 2""""""" "" """"""#2""""""0"""""""""""""""""""""""""""""""""""" 2""""""" """""#""""" """"2"" """0""""""""#"#2"" """"" "" """"#"" """"""""""""""""""""""""""""""""""""""""""""""""""""""#""""" """2""#2""""""""""#"""""""""""""""""""""""""""""""#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""" "" 2"""" ""02""2""2""2"""""""""02""""""""" "" ""#2"""" "" """" """"""" "" """"""#""#"" """""""""""""""""""""""""""""""""""" """"" """""#""""" """"2"" ""#""""""""" """ """""#"" """"""" """"""""""""""""""""""""""""""""""""""""""""2"""""""#""""" """2""0"""""""""""#"""""""""""2"""""0""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""0"" """"" ""02""2"""""""""""""#2""""""""" "" "" 2"""""""""" """" """"""" "" ""0""0""""""""""""""""""""""""""""""""""""""""2""" """""#""""" """"2"" """"""""" """ """""#"" """""2" """""""""""""""""""""""""""""""""""""""""""" """"""#""""" """"""""""""""#"""""""""""""""""0"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ""#"" """"" ""02""2"""""""""""""#2"""" "" "" "" 2"""""""""" """" ""#""0"" ""0""2"""""""""""""""""""""""""""""""""""""""#""" """""#""""" """"2"" """""""""" """ """""#"" """""2" """""""""""""" """""""""""""""0"""""#""""" """"""""""""""#"""""""""""""""""0"""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ""#"" 2"""" ""02""2""2""""""""""#2""2"""" "" "" 2"""""""""" """" ""0""2""""""""""""""""""""""""""""""""""""""""#"" """""#""""" """"2"" """""""""" """ """""#"" """""2" """""""""""""" """"""""""""""""0"""""#""""" """2"""""""""""#"""""""""""""""""0"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ""#"" """" "" """2""""""#2""""#"" "" "" 2"""" """"" ""0""0""""""""""""""""""""""""""""""""""""""""""""0"" """"""""""#""""" """"2"" """""""""""#"""" """""#"" """"""" """"""""""""""""""" """"""""""""""""""#2""""#""""" """"""""""""""""""""#"""""""""""2"""""0""2"""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ""#"" "" 0"" "" """2"""" ""#2""2"""" "" "" 2"""" #2"" "" ""0""#""""""""""""""""""""""""""""""""""""""""""""" "" """"""""""#""""" """"2"" """"""""""""""""" """"" "" """"#"" """"""""""""""""""" """"""""""""""""""""""""#""""" """"""""2"""""""""""""#""""""""""""""""""2"""""""""""""""#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ""#"" """2 """""""""2""""#" ""#2""2""0""" "" "" 2""2""02"""""""02"""""""""0""""""" """"""""""""""""""""""""""""""""""""""""""""" """"""""""#""""" """"""" """""""""""""""""0"""" """"" "" """" "" """"""""""""""""""""""""""""""""""""""""""""""""""""""" """"#""""" """"""""2"""""""""""""""""#""""""""""""""""""2"""""""""""""""0"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ""#"" 2""""" 2"""""""""2""2""2"""""" ""#2""""""#"" "" "" 2""""""""""""""#2"""""""""0""""""" """"""""""""""""""""""""""""""""""""#"""""""" """"""""""#"""""#""""""" """"""""""""""""" """"#2"""""" """""" """""""""""""""""""""""""""""""""""""""""""""""""2""""" """"#""""" """"""""2"""""""""""""""""#"""""""""""0"""" 2""2""""""""""""""#2"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ""#"" """"" """"""" 2""2"""""""" ""#2"""""""" "" "" 2""2"""""""""""02"""""""""0"""""#"""""""""""""""""""""""""""""""""""" """"#"" """"""""""#""""""2"" """ """"""""""""""""" 2""""""""#"" """ "" """""""""""""""""""""""""""""""""""""""""""""""""2""""0""""#""""" """"""""2"""""""""""""""""#""""""""""" 2"""0"""2""""""""""""""0""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ""#"" 2""#2"""2"#2""2""""""0""#2""""0"" "" "" 2""2"""#"""02"""""""""0"""#"""""""""""""""""""""""""""""""""""" 2""0"" """"""""""#""""""""""" """"""""""""""""""""""""0""2"" ""#2"" """""""""""""""""""""""""""""""""""""""""""""""""""#""""#""""" """"""""2"""""""""""""""""#"""""""""""#"" """2""""""""""""" 2""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""" "" """"#""""""0""" """""""""""""""""""""""""" """ """ """""""""""""""""""""""""""""""""""""""""""2""""#""""" ""2"""""""""""""""""""""""""""2""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""" "" """"#"""""" 2""" """""""""""""""""""""""""""""" """ """"""""""""""""""""""""""""""""""""""""""""""""#""""" ""2"""""""""""""""""""""""" """"2""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""" """ """"#""""""""""" """"""""""""""""""""""""""" """" """" """"""""""""""""""""""""""""""""""""""""""""""""#""""" ""2"""""""""""""""""""""""""""""2""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""#""" """"#"""""""#2"""" """"""""""""""""""""""""""""0""""" """"" """""""""""""""""""""""""""""""""""""""""""0""""""#""""" ""2"""""""""""""""""""""""""#"""""2""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""#2"""" """"#""""""""#"""""" """""""""""""""""""""""""""""#"""""" 2"""""" """""""""""""""""""""""""""""""""""""""""""""0"""""""#""""" ""2"""""""""""""""""""""""""""02""""""2""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""ffa``f`aa``a``a`a`a`a`a``aa``a`a```aa`a`a`a`a`a```f`a``a`ffff`aff``````a`a`aa``a```a``a``a```f``f`a``a``aa``a```a`a`a`aa``aaa`aa```a``aaa`aa`a`a`a`````````a```a`a``af`a`aaaaa`a`a```a``a``a`a````aa`aaaa``aa``a``a`a`a````a```a``aaa``a``aaa````a`aa`f``a`a`a``aa````aaa``a``aaa``a``aaa``a`aaa``aa`aaa``a`aa``aa`aaa``aaaaaaaaa"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""aa`"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""aaaa"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""`aaa"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""aaaa`a"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""aaaa```aa"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""aa```""""""`aa``""""""aaa`a""""""aa""""""aaa```a""""""`aa``""""""`aa``""""""aaaa``""""""`aa`aa`""""""fa`fffa`f`f""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""``""""""``""""""`a``""""""a``""""""a``""""""``""""""a``""""""```""""""```""""""``""""""```""""""a""""""a""""""""""""a""""""`""""""```""""""`f``""""""``""""""`a``""""""a``""""""`a``""""""``""""""`a``""""""```""""""`a``""""""``""""""```""""""a``""""""a``""""""```""""""a``""""""```""""""```""""""`a``""""""``""""""`a``""""""a``""""""`a``""""""``""""""`a``""""""```""""""`a``""""""``""""""```""""""``""""""```""""""```""""""a``""""""``""""""``""""""a``""""""```""""""```""""""``""""""```""""""``""""""a``""""""``"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""```""""""```""""""``""""""``""""""``a""""""`a""""""`a`""""""a````aa``a`a""""""a````a`a`aa""""""`a`````aa``""""""````aa`aa``aa""""""``a``a```aa""""""``````a""""""``````a`a``""""""2""" ```````""""""""""" ```````""""""""""" `````````""""""""""" `````a`"""""""0"" ``a```a"""""""" `a```a``"""""""" ````````"""""""" ````"""""""" `a````f```a"""""""" `"""""""" a"""""""" ``"""""""" `"""""""" `a"""""""" `a"""""""" """""""" """""""" """""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""``""""""``""""""``""""""``""""""``""""""``""""""``""""""``a`a``aa``a``a""""""````a`a``a""""""```aa`a````""""""`a```aa`aa`a`aa""""""`aa``aa`aa`aa`aa""""""```a````""""""```aa``````""""""""""0```aa`````""""""2""""""0a```a``````""""""2"""""""a`````a``````""""""2"""""""0```a````""""""2"0""" ``a`aa`a`a`a""""""32"" ```a`a``"""""""" ``````````"""""""" ``````"""""""" ```a`f``a``a``a"""""""" a"""""""""""""""""#`"""""""""0""""""""#"""""""""a""""""2"" """""""""""""""""" """""""""""""""2"""""""#""""""2"""""""#""""""2"""""""#""""""2"""""""#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""ff`a`""""""a""""""""""""a""""""`a`a`""""""a`""""""`a`""""""`aa`""""""``a`""""""a`a`""""""a``a``""""""````""""""```""""""""""0`a`"""""""""""" `a`"""""""""""""```"""""""""""""0fa`a`""""""#""" `a``"""""""" `a`"""""""" ```"""""""" `"""""""" `a```"""""""""""""""""""" """"""""""#"""""""""""#""""""""""""0""""""""" """"""""#""""""""""""""" ""#"""""""#"""#"""""""""""""" """"""""""""""""""""""""""" """"""2""""0aa""""""aaa""""""aaaa""""""aaa""""""aa""""""aa`""""""aa""""""``aa``a``aa``a``a""""""```a`a`a""""""``a``a````""""""``a`aa`aaf`aa`""""""aaaaaaa`a`a""""""`a`a`a""""""aaaa``aaaaaa`aa""""""aaaa`aaaaaa`aa""""""aaa`aaaaaa`a`a""""""aaaa``aaaaaa`aa""""""a```aaaa`aaaa""""""a`aaaaaaaaaaaaaaaa""""""aa`a``aa``aafa``a""""""aa```aa`a`a``a""""""`aa`aaa`aaaa""""""`a`a`a`a``aaaa``a`""""""""""""""""""""""""""""""""""""a""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""ff`a""""""a`""""""`a""""""a`""""""`a`a`""""""af""""""`a`""""""`aa`""""""``a""""""a`a""""""a``a`a""""""```""""""``""""""2""#`a"""""""""#`a`a"""""""""#``""""""""""#fa`a""""""""""#`a`"""""""#""#`a``""""""""0""#````""""""""""#``""""""" ""#`a````""""""""0""#""""""""""#""""""2" ""#""""""""""#"""""""#""#""""""""""""""" """"""""""""""" """"""""""""""" """"""""""""""" """"""""#""""""""#""""""""#""""""""#""""""""#""""""""""""a""""""a""""""a""""""a""""""a""""""``a``a`aa""""""`aa""""""`a`""""""`a`a`aaa""""""aaaa```""""""aa""""""aa`afaaa`aa""""""aa`a`aa`aa""""""aa`a`aa`a`a""""""aa`aaa``aa""""""aa`aaa""""""aaaaaaaaaaaa`a`aa""""""``aa`a````a`a`""""""aaa`````""""""`aa`aaaaaaa""""""```a`aa````a`a`""""""a""""""a`""""""aa""""""aa""""""a""""""a""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""`````a```a``a`````a``a````a`a`````a````a``a`````a`a````````a`a```a``a`a`aaaaaaaa``a`a`a```aa``````a````````````a`a````aa``a``aaa`a``a``````````aaaa``aa`aa``a````a``a````````aa`aa`````a`````````a```aaaaa`a``a"""""""a````````a``a````"""""""``a````````a`f``a```f``a"""""""````f```````a```"""""""````````a```a`a``""a`aa`a``a`aa`````""`a`````a``""```a``````a`"""""0````"""""" ``a`aa``a``a`"""""""a``""""""" ``"0""" ``a0"""`"""`"""a`""""""3"""2"0""" 2""""""" 2"""""""2""""""03""""0a`aaa`aaaa``aaa````a`aa`a`aa`aa``a``aa`aaa`a```a`````a`aaa`a`aafa``a``a`aaaaaaa```aaaaaaaaa`aaaa`aaaa``a`aaa`aaaa`aaaa`a`aaaaaaaaaaa`aaaaaaaaaaaaa`aaa``aaaaa`aaaa```aa`aa`aaaaaa`aaaaaaaaaaa``aaa`faaaaaaa``aa`aa```aaaa`aaaa`aaaa`aa```aaaa`a`aaaaaa`aaaaaa``a`a`a`faaa```aa`aa`aaaaa``a`aaa`a`aaa`a``a`aa`a`aa`a`a`a`a`a`a`af`a`a`a`afa`a`a``a`a`aa`a`aaa`a`aa``aa``aa`a``a``a`a``a```aaaa`a```a`a`aaa```a`a``a`a```fffff`f`aafaf``a``a`a`a```a````a``aaa``a```a`a``a```a`a```a``a`a``aa````a``f`aaa````````a``aa```````a`a``````a`a`````a`f`aa```a`````aa``a`````aa``````a`a````````a`aa``a`````a```````a`a``````````````a````````````a`a``a````aa`a`````````````````````````a``f````af`""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""a""""""a`a""""""aa`a""""""`a""""""`a`a`a""""""`a`a""""""aa`aa`""""""`a`a""""""a`aa`aa""""""aaaa`aa""""""`a`a""""""`a""""""``a``a""""""aa`a""""""`a""""""`a""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""`""""""`a""""""`a""""""`""""""``""""""`""""""`a""""""aa``""""""`a```""""""aaaa``""""""``a`a`aa`a```""""""```a""""""```""""""aaaa```""""""```""""""``""""""``""""""```""""""``a""""""`a``a``a`a```""""""``""""""``""""""ffaf``""""""`""""""`""""""`""""""`""""""`""""""`""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""`""""""a`""""""a""""""aa""""""a""""""aa""""""a""""""fa`aaaaa`""""""aaaa""""""a`a``""""""aa`a`aa`a`""""""a`aaa""""""aa`a""""""a`aaaaa`""""""a`aaaa`""""""aaaaa`""""""aaaaaa``""""""aa`a`aa""""""`aaaaaaaa""""""faaaa`aa```""""""aaa`aa``""""""aaaaaa""""""``aaaaaa```""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""a""""""`aa""""""aa""""""aa""""""`aa""""""aaa""""""aa""""""a```a`a``aa""""""``a""""""````""""""`aa``a`aa""""""aa```aaaaa""""""`aaa``a""""""aaa`afaa""""""aa`a`aa""""""a`aa`a`aa""""""aa`aaaa""""""a``a""""""``aaaaa""""""aaaa`a`a`a""""""`a``""""""``a`aa""""""``aaa`aaaa`""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""`a`a`a``aaa``a`a`a```a`aa`aaa`a```aaa`a`aaa`aaa`a`a`a``a`a``a`aa``a`a``a`aa`a```aaaa```aa`a`aa```a`aaaaaa`a`aa`a \ No newline at end of file diff --git a/data/waveshare13e6-v1/ap_bg_preview.png b/data/waveshare13e6-v1/ap_bg_preview.png index 293004d5b08be3cb01cee5b32e4d444453e890c1..1801b36bc5f2f1beb03bbe0ccc85bd1c1df43c6e 100644 GIT binary patch literal 34748 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� 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 z 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 diff --git a/data/waveshare13e6-v1/ap_bg_retry.bin b/data/waveshare13e6-v1/ap_bg_retry.bin index 496beed..a871db8 100644 --- a/data/waveshare13e6-v1/ap_bg_retry.bin +++ b/data/waveshare13e6-v1/ap_bg_retry.bin @@ -1 +1 @@ -33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333303333333333333333333333333333333333333333333333333333333333333333330333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333303330333333333333333303333333333303333330333333333333333303333333033333330333033333333303330333333333333333333333333333333333333333333333333333333333333333333333333330333333333333303333333333303333333330333333303330333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333330333033333333333333303333333330333333033333333333333330333333303333333033303333333330333033333333333333333333333333333333333333333333333333333333333333330333333333333333333303333333333033333330333333303330333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333330333330333333333033303333333333333333333333333333303333333333333333033333333333333033303333333330333033333333333333333333333333333333333333333333333333333333333333303333333333333333333333333333033333333333333033303333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333330333333333033303333333333333303333333333330333333333333333303333333333333303330333333333033303333333333333333333333333333333333333333333333333333333333333333330333333333333333333333333333333333333303330333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333303333033333333033303333333333333333333333333033333333333333303333330333333033303333333330333033333333333333333333333333333333333333333333333333333333333330333333333333333330333333303333330333333033303333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333330333333333333330333033333333333303333333333033033303333333333333330333333033333303330333333333033303333333333333333333333333333333333333333333333333333333333333033333333333333333033333333333333333033333303330333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333330333333333033333333333033303333333333333333333333330333333033333333333333303330333333333333333033333333333330333333033303333333330333333333303333333333333333333333333333333333333333333333333333333333333330333333333303333330333333333333330333333033333303333330333333033303333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333303333333333033333033333303330333333333333333333333333333333333033333333333333333330333333333333333033333333333333333330333033333333303333333333033330333333333333333333333333333333333333333333333333333333333330333333333333333033333333333333333333330333333333333333333330333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333330333033333333333333333033333333333333033333333330333333033303333333333333303333333333333333333033303333333330333333333303333333333333333333333333333333333333333333333333333333333333333033333333333333303333333333333333333333333333333333333333333303330333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333303330333333333333333330333333333333333033333333330333333333303333333333333303333333333333033333303330333333333033333333330333330333333333333333333333333333333333333333333333333333333333330333333333330333330333333333333333033333333333333333333330333333033303333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333033303333333333333333303333333333333330333333333303333333330333333333333330333333333333003333303330333333333033333333330333330333333333333333333333333333333333333333333333333333333333330333333333330333333333333333333300333333333333333333330033333033303333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333303330330333033333333333333333033333333333333303333333333033333333303333333333333303333333333330033333033303333333330333333333303333333333333333333333333333333333333333333333333333333333333333033333333333333330333333333333330033333333333333333333300333330333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333303333333333303333333033303303330333333333333333333333333033333333333333333330333333333333303333333333330333033333333303330333333333333333333333333333333333333333333333333333333333333333303333333333333333333333333333333333333330333333333333333333333330333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333033333333333333033300333333333333333333333333033333333333333333033003333333333333033333333333303330333333333033303333333333333333333333333333333333333333333333333333333333333333033333333330333333333333333333333333333303333333333333333333333303330033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333033333333333330333003333333333333333333333330333333333333333330330033333333333330333333333333033303333333330333033333303333333333333333333333333333333333333333333333333333333333033333333333333033333333333333333333303333033333333333303330033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333033333333333303033303333333333333333333333330333333333333333330330333333333333303333033033330333033333333303330333333033333333333333333333333333333333333333333333333333333333330333333333333333333333333333333303303330333303333033033330333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333033333333333303033303333333333333333333333330333333333333333330330333333333333303333033033330333033333333303330333333033333333333333333333333333333333333333333333333333333333330333333333333333333333333333333330330333033330333303303333033303333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333303333333333303333333333333033303033333333333333333333333033333333333333333033030333333333333033330333333303330333333333033303333330333333333333333333333333333333333333330333333333333333330333333333333333033333303333033330333333303330303333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333033333330333330333030333333333333333333333333333333033333333333333333330303333333333330333333333333333333303330333333333033333333330333333333333333333333333333333333333333333330333333333333333333333333333333333333333303333033333333333303330303333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333330333330033303333333333333333033333333333333303333333333033333333303333333333333033333333333333333330333033333333303333333333033333333333333333333333333333333333333333333033333333333333333333333333333333333333333333303333333333330333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333303333300333033333333333333330333333333333333033333333330333333333033333333333330333333333303330333033333333303333333333033333333333333333333333333333333333333333333033333333303333333333333333333333330333333333333033303330333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333330333333333033033333333333333033333333333333303333333333033333333330330333333333330333333333303330333033333333303333333333033333033333333333333333333333333333333333333303333333333033333333333333333333333303333333333330333033303303333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333330330333333333333330333333333333330333333333303333330333033033333333333033333333330333033303333333330333333333303333303333333333333333333333333333333333333330333333333303333333333333333333333330333333333333033303330330333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333303333333333033333033333303330333333333333333333333333333333330333333333333333333303333333333333303333333333333033303333333330333333333303333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333330333333333330333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333330333333333033333333333333303330333333333333333333330333333033333333333333303330333033333333333033333333333330333033333333303333333333033330333333333333333333333333333333333333333333333333333333333330333333333333333333333333333333333333303333333333303330333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333033303333333333333330333333333033333333333033033303330333333333330333333333333303330333333333033333333330333333333333333333333333333333333333333333333333333333333333333033333333333033333333333333333333333333333333333330333033303333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333303333033333333033303333333333333333330333333333333333303333333333333330333333333033333303303330330333033333333333333333333333333333333333333333333333333333333333303333333333303333333333333333333333033333303330330333333033033303333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333303333333330333033333333333303333330333333333333333303333333333333330333333333033333303303330330333033333333333333333333333333333333333333333333333333333333333303333333333333333333333333333333330333333033333303333330330333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333330333330333333333333303333033333333333333303333333333333333330333303333333333303333333330333333033033303303330333333333333333333333333333333333333333333333333333333333333303333333333333333333333333333333330333333033330330333333033033303333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333303333033333333303333330333333333333303333330333303333333333303333333333333333333033303303330333333333333333333333333333333333333333333333333333333333333330333333333333033333333333333333333333333333333333333333333330333033330333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033303333333333333330333333303333333333333303333330333333333333333303333333333333333333033303303330333333333333333333333333333333333333333333333333333333333333333033333333333303333333333333333333333333333333333333333333333333033303333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333033303333333333333333303333333330333333333333333333333333033333333333333330333333330333333333033303303330333333333333333333333333333333333333333333333333333333333333333330333333333333333333333333333333330333333333333333333330333333333033303333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333`faf```a`aaa``aa```a`aaa`aaaa``aaaaa`a``a`a`a``a``aa`aa```a``a`aaf333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333``aaaaa`a`a`aa`aa````a``a`````a``a`a```a```a`aaa`aaa`aa``a```a`a````````a`a```a`a`a`a``a``a`a`a``a```a````a`aa`a`aa`a`a`a``a`a``aa````a`a`a``a`a`a`a``````a`a```aa```aa`aa`aa`aaa`````a`a`a```aa`a```fa`a`aa`f```a`a``af```fa`a`a`faaaa````aa`a`a`aaaaafaaa`aaaaa`aaa```aaaa`a`aaaa`aa``aa`a``aaa`aaaa`aa``a```aa`a`a`a``a`f333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333133333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333313333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333331333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333133333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333313333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331331333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333133333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333313333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333331333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333133333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333313333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333331`a`af``afa``afaa``afaa`aaaa`a`aa`aa``aaaaa`a``a``aa`a`````a``aaaaa````aa`a````a`aaa`aaaaa`a``a`a`aaa`aa`aaa`a``aa``````a```a````a`a`a``a \ No newline at end of file +333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333303303333333033033303333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333330330330333333303333033333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333303333333333033033333330333333333330333333333333330333333333333333333333333333333333333333303333333033333303330330333033033333333333333333333333333333333333333333303333303333333333330333333333333333333333333333333333333333333333333330333330333333333303333333330333333330333330333333333333333333333333333333333333333333333333303333333303303303333333033333303333303333333333333303333333333333333333333333333333333333333333303333303330330333033033333033333333333333333333333333333303333303333333333330333333333333333333333333333333333333333333333333333333333333333033333333333333033333033333333333333333333333333333333333333333333333330330330330330333333303303333333033333333333333333333333333333333333333333033330333033033303303333033333333333333333333333333333333033333333333303333333333333333333333333333333333333333333333333330333333333333333333033333333333033333333333333333333333333333333333333333333333303303333303303303333033330333333333333333333333333333333333333333303333330333033033303303333333330333333333333333333333333330333333333333033333333333333333333333333333333333333333333330333033333333333333333033333333333033333333333333333333333333333333333333333333333303303333303330333333033033333033303303330333330330333303333303333033330330333333333333333333333333333333333333333033303303303303303330333333333333333333333333333330333333333333033333333333333333333333333333333333333333333333333333333333333333333333333303333333333333333333333333333333333333333333333330330333330333330333333033033333303333303303333033333303303333333333333330330330333303303333333333333333333333333333333333333330333333303303303303303333333303333333333333330330333333333333333333333333033330333333333333333330330333333333333333333333333333333333333333333333333333333333033333333333033333333333330333303333333333333333333333333333333333333333333333330330333330333333033333303303333333033333333303333303333333333333333330333333033033033033333333333333333333333333333333333333333333033333333333330330330330330333333333333303333333333330333303333333333333333333333303333033333333333333333033303333333333333333333333333333333333333333333333333333303330303333333333303333033333033333033330333333333333333333333333333333333333333333333330330330330333033033033333330333333333333333330333333333033333033033033033033333303333333333333333333333333333333333333333303333333303333330330330330330333333333333333333333333333333033333333333333333333333033330333333333333333330333333333333333333333333333333333333333333333333333333333033333333333333330333303333333333330333303333333333333333333333333333333333333333333333303333333303303300330330333330330330333333333303303303333333333333333303303333330333330333333333333333333333333333333333333333333330333330330303303033033333330333333333333333333333333333333333333333333333333333033333333333333333033330333333333333333333333333333333333333333333333333333330333333333333333333333333333333333333330333333333333333333333333333333333333333333333330333333333303333033033330333303333333330333333033033333330333333033333333033033333303333333333333333333333333333333333333333333333333330333330330303303033033033333333333333333333333333033333333333333333333033333333333303333033333333333333333333333333333333333333333333333333333333303333333333333333333333333333333333033303333333333333333333333333333333333333333333303333333033033333033033333333333333333333333333033033033330330333303333333033033333303303303333333333333333333333333333333333333333333303333303300303300303303303333333333333333333333333333333333333333303033303333333333330333333333333333333333333333333333333333333333333333333333333333333333333303033333333333333030333033333333333333333333333333333333333333333333333033333303303333303303333333333333330333333333033033033333333330333303333333033033330333333333333333333333333333333333333333333333333033333333003033003033033033333333333333333333333330333333333333333303033303333333333330333333333333333333333333333333333333333333333333333333333333333333333333330303333330333030333033333333333333333333333333333333333333333333333033033033333033033333333333333303333033033033033333333330333303333333033333333333333333333333333333333333333333333333333303333333303033030330330333333333333333333333333303330333333333333303033303333333333330333333333333333333333333333333333333333333333333033333333333303033333303330303330333303333333333333333333333333333333333333333333033033033333033033333333333333330333333303303303333333333033330333333333333333333333333333333333333333333333333333033333333030330303303303333333333333333333333333033303333333333333333330333333333333033333333333333333333333333333333333333333333333303333333333333333333303333333303333033333333333333333333333333333333333333333330330330333303303333333330333333303303303333033333033330333333333333333333333333333333333333333333333330333330330300330300330333333303333333333333333333333333333333333333333333333333333033333333333333333033333333333333333333333333333333333333333333333333333333333333333333033333333303333333333333333333333333333333333333333333333303303303300330330333333303303333333033033033330333033033330333333333333333333333333333333333333333333333330333330330300330300330333333303333333333333333333333333333333333333333333333333303333333333333333303333033333333333333333333333333333333333333333333333333333333333333333033333333033333333333333333333333333333333333333333333333033033033303333333333333330330333303330330330333303333333033333333333333330333333333333333333333333333333333333333333330333330330333303333033333330333333333333333333333333333303333333333333333033033333333333333333033330333333333333333333333333333333333333333333333333333333333333333333333303333330330330333330333333333333333333333333333333333333333333033033033333303333333333333333333333033033333333303303303333333333333333333333333333333033333333333333333333333333333333333303333333303333330333303333033333333333333333333333333333303333303333333333333333033033333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333033033330330330333330333333333333333333333333333333333333333333033033033333033333330333333333303303333333303303303333333333333333333333333333333333333333333333333333333333333333033333333333330330330330330333333333333303333333333330333303333333333333333333333033033333333333333333033303333333333333333333333333333333333333333333333333333303333333333333333303303330330330333333333333333333333333333333333333333333333333033033033303333333333333330330333303303303303333333333333333333330333333333333333333333333333333333333333033333330330330330330333333330333333333333333033033333333333333333333333303333333333333333303303333333333333333333333333333333333333333333333333333303333333333333333333333033330333333333333333333333333333333333333333333333333033333333333333333333333333333333333333303330333330333330330333333333333333333303333333333333333330333333303333333333333333333333333333333333333333333333333333333333333333333333333333333033333303333333333333333333333333333333333333333330333333333333333333333333333333333333303333330333330333330333333333333333303333333033333333333333303333330333333303333333333333333333333333333333333333333333333333333333333333333333333033333330303333330333333033333333333333333333333333333333333333333303333333333333333333333333333333333333333303333033303303330330333033333333333333333333333333333333333330333330303333333033333333333333333333333333333333333333333333333333333333033333333333333303333303333033333030333333333333333333333333333333333333333333333333303333333333333333333333333333333333333333333303333303330330333033033330333333333333333333333333333333333333333033333030333333303333333333333333333333333333333333333333333333333333333330333333333333333033333033333303333303033333333333333333333333333333333333333333333333330333333333333333333333333333333333333333303333333033333303333330333333033333333333333333333333333333333333033333333333333333333330333333303333333333333333333333333333333333333333333333333333333333033333333333333333333333333033333333333033333330333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333ffa``f`aa``a``a`a`a`a`a``aa``a`a```aa`a`a`a`a`a```f`a``a`ffff`aff``````a`a`aa``a```a``a``a```f``f`a``a``aa``a```a`a`a`aa``aaa`aa```a``aaa`aa`a`a`a`````````a```a`a``af`a`aaaaa`a`a```a``a``a`a````aa`aaaa``aa``a``a`a`a````a```a``aaa``a``aaa````a`aa`f``a`a`a``aa````aaa``a``aaa``a``aaa``a`aaa``aa`aaa``a`aa``aa`aaa``aaaaaaaaa3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333aa`3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333aaaa3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333`aaa3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333aaaa`a3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333aaaa```aa3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333aa```333333`aa``333333aaa`a333333aa333333aaa```a333333`aa``333333`aa``333333aaaa``333333`aa`aa`333333fa`fffa`f`f333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333``333333``333333`a``333333a``333333a``333333``333333a``333333```333333```333333``333333```333333a333333a333333333333a333333`333333```333333`f``333333``333333`a``333333a``333333`a``333333``333333`a``333333```333333`a``333333``333333```333333a``333333a``333333```333333a``333333```333333```333333`a``333333``333333`a``333333a``333333`a``333333``333333`a``333333```333333`a``333333``333333```333333``333333```333333```333333a``333333``333333``333333a``333333```333333```333333``333333```333333``333333a``333333``333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333```333333```333333``333333``333333``a333333`a333333`a`333333a````aa``a`a333333a````a`a`aa333333`a`````aa``333333````aa`aa``aa333333``a``a```aa333333``````a333333``````a`a``33333333330```````333333333330```````333333333330`````````333333333330`````a`3333333330``a```a333333330`a```a``333333330````````333333330````333333330`a````f```a333333330`333333330a333333330``333333330`333333330`a333333330`a33333333033333333033333333033333333033333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333``333333``333333``333333``333333``333333``333333``333333``a`a``aa``a``a333333````a`a``a333333```aa`a````333333`a```aa`aa`a`aa333333`aa``aa`aa`aa`aa333333```a````333333```aa``````3333333333```aa`````3333333333330a```a``````3333333333333a`````a``````3333333333333```a````33333333330``a`aa`a`a`a333333330```a`a``333333330``````````333333330``````333333330```a`f``a``a``a333333330a333333333333333330`333333333333333330333333333a3333333330333333333333333333033333333333333333333330333333333333303333333333333033333333333330333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333ff`a`333333a333333333333a333333`a`a`333333a`333333`a`333333`aa`333333``a`333333a`a`333333a``a``333333````333333```3333333333`a`3333333333330`a`3333333333333```33333333333330fa`a`33333303330`a``333333330`a`333333330```333333330`333333330`a```3333333333333333333303333333333333333333333033333333333303333333330333333333333333333333333033333333333333033333333333333033333333333333333333333333303333333333aa333333aaa333333aaaa333333aaa333333aa333333aa`333333aa333333``aa``a``aa``a``a333333```a`a`a333333``a``a````333333``a`aa`aaf`aa`333333aaaaaaa`a`a333333`a`a`a333333aaaa``aaaaaa`aa333333aaaa`aaaaaa`aa333333aaa`aaaaaa`a`a333333aaaa``aaaaaa`aa333333a```aaaa`aaaa333333a`aaaaaaaaaaaaaaaa333333aa`a``aa``aafa``a333333aa```aa`a`a``a333333`aa`aaa`aaaa333333`a`a`a`a``aaaa``a`333333333333333333333333333333333333a333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333ff`a333333a`333333`a333333a`333333`a`a`333333af333333`a`333333`aa`333333``a333333a`a333333a``a`a333333```333333``3333333330`a3333333330`a`a3333333330``33333333330fa`a33333333330`a`33333330330`a``333333330330````33333333330``33333330330`a````33333333330333333333303333333033033333333330333333333303333333333333330333333333333333033333333333333303333333333333330333333330333333330333333330333333330333333330333333333333a333333a333333a333333a333333a333333``a``a`aa333333`aa333333`a`333333`a`a`aaa333333aaaa```333333aa333333aa`afaaa`aa333333aa`a`aa`aa333333aa`a`aa`a`a333333aa`aaa``aa333333aa`aaa333333aaaaaaaaaaaa`a`aa333333``aa`a````a`a`333333aaa`````333333`aa`aaaaaaa333333```a`aa````a`a`333333a333333a`333333aa333333aa333333a333333a333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333```a`````a````a```````a```````a``a`a`a`aa```a`a`aa``a`a``a``a`a```a``a`a`a`a`aaa``aa```a```aa``a``a``a``a``a```aa```````````````a``aa`a```aa``a``aaa`a````````a````aaaa``aa`aa``a```a`````aa``````````aa`a`a`aa````aa``a`````````a```aa`a`aa````aa``3333333a````````a``a`a`````aa``3333333``a`````````a`a`a````aa``3333333````f````````a`a```a`3333333`````````a`a`a```a``33a`aa`a``a`aa```a`aa```aa```33`a```a`a`a`a```a``aa`aaa`33```a``````a`a`333330````a3333330``a`aa``a``a`f3333333a``33333330``303330``a333`333`333a`3333333333333303333333303333333333333333333a`aaa`aaaa``aaa````a`aa`a`aa`aa``a``aa`aaa`a```a`````a`aaa`a`aafa``a``a`aaaaaaa```aaaaaaaaa`aaaa`aaaa``a`aaa`aaaa`aaaa`a`aaaaaaaaaaa`aaaaaaaaaaaaa`aaa``aaaaa`aaaa```aa`aa`aaaaaa`aaaaaaaaaaa``aaa`faaaaaaa``aa`aa```aaaa`aaaa`aaaa`aa```aaaa`a`aaaaaa`aaaaaa``a`a`a`faaa```aa`aa`aaaaa``a`aaa`a`aaa`a``a`aa`a`aa`a`a`a`a`a`a`af`a`a`a`afa`a`a``a`a`aa`a`aaa`a`aa``aa``aa`a``a``a`a``a```aaaa`a```a`a`aaa```a`a``a`a```fffff`f`aafaf``a``a`a`a```a````a``aaa``a```a`a``a```a`a```a``a`a``aa````a``f`aaa````````a``aa```````a`a``````a`a`````a`f`aa```a`````aa``a`````aa``````a`a````````a`aa``a`````a```````a`a``````````````a````````````a`a``a````aa`a`````````````````````````a``f````af`333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333a333333a`a333333aa`a333333`a333333`a`a`a333333`a`a333333aa`aa`333333`a`a333333a`aa`aa333333aaaa`aa333333`a`a333333`a333333``a``a333333aa`a333333`a333333`a333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333`333333`a333333`a333333`333333``333333`333333`a333333aa``333333`a```333333aaaa``333333``a`a`aa`a```333333```a333333```333333aaaa```333333```333333``333333``333333```333333``a333333`a``a``a`a```333333``333333``333333ffaf``333333`333333`333333`333333`333333`333333`333333333333333333333333333333333333333333333333333333333333`333333a`333333a333333aa333333a333333aa333333a333333fa`aaaaa`333333aaaa333333a`a``333333aa`a`aa`a`333333a`aaa333333aa`a333333a`aaaaa`333333a`aaaa`333333aaaaa`333333aaaaaa``333333aa`a`aa333333`aaaaaaaa333333faaaa`aa```333333aaa`aa``333333aaaaaa333333``aaaaaa```333333333333333333333333333333333333333333333333333333333333a333333`aa333333aa333333aa333333`aa333333aaa333333aa333333a```a`a``aa333333``a333333````333333`aa``a`aa333333aa```aaaaa333333`aaa``a333333aaa`afaa333333aa`a`aa333333a`aa`a`aa333333aa`aaaa333333a``a333333``aaaaa333333aaaa`a`a`a333333`a``333333``a`aa333333``aaa`aaaa`333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333`a`a`a``aaa``a`a`a```a`aa`aaa`a```aaa`a`aaa`aaa`a`a`a``a`a``a`aa``a`a``a`aa`a```aaaa```aa`a`aa```a`aaaaaa`a`aa`a \ No newline at end of file diff --git a/data/waveshare13e6-v1/ap_bg_retry_preview.png b/data/waveshare13e6-v1/ap_bg_retry_preview.png index f67a218c2a1179ee077413c3257a3bc3dce758df..71cb3cc772d1d02bc2e68a1dc1e9ccede7178ce5 100644 GIT binary patch literal 34133 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 PAug%vT)-+@{r0~AdEtV_ literal 16162 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 diff --git a/data/waveshare13e6-v1/setup_bg.bin b/data/waveshare13e6-v1/setup_bg.bin index 4b597dc..09d6aea 100644 --- a/data/waveshare13e6-v1/setup_bg.bin +++ b/data/waveshare13e6-v1/setup_bg.bin @@ -1 +1 @@ -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffafffaffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffafafffaffffffffffffffafffffffffffffffffaffffffafffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffafffffffffffffffffffffffffffffffffffffffffffffffafffafffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffafafffaffffffffffffffffffffffffffffaffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffafffffffffffffffffffffffffffffafffffafffffffffafffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafffaffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffaffffffffffffffffffffffffffffafffffffffafffaffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafffaffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffafffffffffffffffffffffffaffffaffffffffafffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffafafffaffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffaffffffffffffffafffaffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffafafffafffffffffffffaffffffffffffaffafffafffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffafffffffffafffffffffffafffaffffffffffffffffffffffffaffffffafffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffafffaffffffffffffffaffffffffffffffffafffaffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffaffffffffffafffffaffffffafffafffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffaffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffafffffffffffffffffaffffffffffffffafffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffaffffafffffffffffffffffffffffffffaffffffafffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffaffffffffffffffffffffffffffffffffffffffffffffffffffaffffffafffafffffffffffffffffafffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffaffffafffffffffffffffffffffffffffaffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffafffffffffffffffffffffffffffffffffffffffffffffffffffafffffafffafffffffffffffffffafffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffaffffaffffffffffffffffffffffffffffafffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffafffffffffffffffffffffffffffffffffffffffffffffffffffffafffaffafffafffffffffffffffffafffffffffffffffaffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffaffffaffffffffffffffffffffffffffffafffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffaffffffffffffffffffffffafffffffffffafffffffafffaffafffaffffffffffffffffffffffffafffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffafffaffffafffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffaffffffffffffffffffffffafffffffffffaffffffffffffffafffaaffffffffffffffffffffffffafffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffafffaffffffffffffffffffffaffffffffffffffffffaffafffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafaffffffffffffffffffffffafffffffffffafffffffffffffafffaaffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffafffaffffffffffffffffffffffffffffffffffaffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafffffffffffffffffffffffafffffffffffaffffffffffffafafffaffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffafffaffffffffffffffffafffffffffffffffffffaffaffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafaffffffffffffffffffffffffafffffffffffaffffffffffffafafffaffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffafffafffffffffffffffffffffffffffffffffffaffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffafffffffffffafffffffffffffafffafafffffffffffffffffffffffafffffffffffffffffffffffffffffffffffaffffffffffffffffffffaffffffffffffffafffafffffffffffffffaffffffffffffffffffffaffafffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaafffffffffffffffffffffffffffffffffafffffffffffafffffffafffffafffafaffffffffffffffffffffffffffffffaffffffffffffffffffffffffafffffffffffffffffaffffffffffffffffffffffaffffffffffffffaffffffffffaffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaaffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffaafffaffffffffffffffffafffffffffffffffaffffffffffffffffffffffffafffffffffffffffffaffffffffffffffffffffffffaffffffffffffffaffffffffffaffffffffffffffffaffffffffffffffafffffffffafffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffafffffffffffffffffffffffffffffffffffffffffffffffffafffffaafffaffffffffffffffffafffffffffffffffaffffffffffffffffffffffffafffffffffffffffffafffffffffffffffffffffffffaffffffffffffffaffffffffffafffffffffffffffffffffffffffffffafffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffaaffffffffffffffffffffffffffffffffffffffffffffffffafffffffffaffaffffffffffffffafffffffffffffffafffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffaffffffffffffffaffffffffffaffffffffffffffffffffffffffffffffffffaffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffaffffffffffffffaffffffffffffffafffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffaffffffffffffffaffffffffffaffffffffffffffffffffafffffffffffffffaffffffafffafffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffaffffffffffafffffaffffffafffaffffffffffffffffffffffffffffffffafffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffaffffffffffffffaffffffffffafffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffafffffffffafffffffffffffffafffaffffffffffffffffffffaffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffaffffffffffafffffffffffffffffffaffffffffffffffffffffffafffaffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffafffafffffffffffffffafffffffffafffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffaffffffffffafffffffffffffffffffffffffffffffffffffaffafffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffaffffaffffffffafffaffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffaffffffffffffffffffaffffffffffffffffafffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffafffffffffafffaffffffffffffaffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffaffffffffffffffffffaffffffffffffffffafffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffafffffafffffffffffffaffffafffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffaffffffffffffffffffaffffffffffffffffffafffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffafffffffffaffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffafffaffffffffffffffffffafffffffffffffaffffffafffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffafffffffffffffffafffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffafffaffffffffffffffffffaffffffffffffffaffffffafffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffafffafffffffffffffffffafffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffafffaffffffffffffffffffaffffffffffffffffffffffffafffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa`a`a`a`aa`aa`aaa`aa`aa`aa``aa`aaa`a`afa`faf`f`f`a`a`a``a``aaa````aaa`a`a`aa``a`aaaaa`a`aaaaa``aafa`f`aaa``aaa```a``aaaaf`aaaaaa`aaa`aa``aaaaafa`a`a`aa``aaaaaaaaaaa``aaaaaa`aaaaa`aaaa`aaaa``aaaaa`aaaaaa`aa`a``aaaa`aaaa`aaaa`a``a`a`aaf`aaaaaa```aaaa`a`aa``aaaa``a`aa`a``faf`f`fa`aa``aa``aa`a``aaa`a`f`aa``a```aaaa``a`aaa`aaaf`aaa`aaa``aaaa`````a`aa`aaa`aaaaaa``aaa`a`aaaaa`aaa`a`aaaaaaa`a`a``aaaaa`aa`a```aa`a`aaaaaa``a`a`a``a``aaaa`a``a`a`aa``a```a`a``aaa``a`aa`a``a`aa``a``aaa`afaa``a`aaa`aaffa`a``aaa`aa`a`a`a`aaaaaa``````a```aaaa`a````a`aaaa``a```aaaaa`a`a``aaaaa`a```a`aaaaa``aa`a```aaaaaa`a``a``aaaaaaaa``a````aa`aaaa`a`aaaaaaafa``aa`a``aaaaa```affaa``aa`aa``a``aa`aaaaa```aa``aaaa```a``aaaaa`a``aaa`a``aaa````aafafaa`aaaa`aaaaaaaa`a``a````aa`````aa``aa``aaa``a``a``a```a`a`aaafaa`fa`aaaa`a`a``a`a``aff``fafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa```aa``aa`a`aaa`aa```aaa`aa`aaa`a`a`a``aa`aaa`a`a`aaaa`aaa``a```aa``aaa`aaa`````a`a`aaaa`a`aa`a```a``a``a`a`a``a`aaaa`a``a`a`a`````a``aa`aaaa`aaa`a``````a````aaaaaa`a`a``aaaaa``a````aaa`aa`````a``aa````aaaa```a`a`aa`a``a```aaa`aa````a```aaa`aaa`a```a````aa``a`aa```aaa`a```aa``a````a````a```aa`````aaaaa``a````aaa``a`a`a```aa`aaa``a`aa```aa`fa`a`aa`a`a`f` \ No newline at end of file +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`fff`ff`fffffff`ff`fff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`fffff`ffff`ffffff`fffff`fffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`fffff`ffffffffffffffffff`fffffffffffff`fffffffffffffffffffffffffffffffffff`ffffffffff`fffff`ffffffffffffffffffffffffffffffffffffffffffffffff`ff`f`fffffffffffffffffffffffffffffffffffffffffffffffffffff`fff`f`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`fffff`ffffff`ffffffffffff`ffffffffffffff`fffffffffffffffffffffffffffffffffff`fff`ffffff`fffff`fffffffffff`ffffffffffffffffffffffffffffff`f`fffffffffffffffffffffffffffffffffffffffffffffffffff`f`ffffffffffff`ffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`f`ff`fffffff`fff`f`ff`fffffffff`fffffffffffffffffffffffffffffffffffffff`ffffff`fffff`ffffffffff`ffffffffffffffffffffffff`f`ffffffffffffffffffffffffffffffffffffffffffffffff`f`f`ffffffffffff`fffffffffffffffffffffff`fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ff`ff`ffff`ff`ff`ff`ffffffffffffffffffffffffffffffffffffffffff`fffff`fffff`fffffffffffff`fffffffffffffffffff``f`fffffffffffffffffffffffffffffffffffffffffffffffff`f`fffffffffff`ffffffffff`ffffffffffff`fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ff`ff`ffff`ff`ffff`ff`fffff`fffff`fffffffffffffffffffffffffffffffffffffff`ff`ff`fffff`fffffffff`fffffffffffffffffffff`f`ffffffffffffffffffffffffffffffffffffffffffffffff`f`fffffffffff`fffffffffffffffffffffff`fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ff`ff`ff`ff`ff`ff`ff`ff`ff`fffffffffffffffffffffffffffffffffffffffffffffffff`ff`ffffffffff`fffffffff`fffff`ff`fffffffffffffffffffffffff`ffff`fffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffff`fffff`fffff`ffffffffffffffffff`ffff`fffffffff`ff`ffffffffffffffff`ffff`fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ff`ff`ff`ff`ff`fffffff`ffffffff`fffff`fffffffffffffffffffffffffffffffffffffff`ffff`ff`ffffffffff`ffffffffffffff`ff`ffff`ffffffffffffffffffff`fffffffff`fffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffff`fffff`ffffffffffffffffffffffffffffffffff`ffff`fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ff`ff`ff`ffff`ffffffffffffffffff`fffff`ffffffffffffffffffffffffffffffffffff`ff`ff`ff`ffffffffff`fffffffffffffffffffff`ffffffffffffffffffff`fffffffffff`fffff`fffffffffff`ffffffffffffffffffffffffffffffffffffffffff`fffffffffff`fffff`fffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ff`ffffff`fffff`fffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffff`ff`fffff`ffffffffff`ffffffff`ffffffffffffffffffffffffffffffffffffffffffff`fffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`fffff`fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ff`ffffffff`ff`ff`fff`ff`fffffffffff`ffff`ffffffffffffffffffffffffffffffffffff`f`ffffff`fffff`ffffffff`ffffffffffffffff`fffff`ffffffffffffffffff`fffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`fffff`fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ff`fffffff`fffff`fffff`ff`ff`fff`fff`ffffffffffffffffffffffffffffffffffff`f`ffffff`fffff`ffffffff`ffffffffffffffffffffffffffffffffffffffff`fffff`fffffff`ffffffffffffffffffffffffffffffffffffffffffffffffff`fffff`ffffffffffffffffff`ffffffffffffffffffffffffffffff`fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ff`fffffff`fff`ff`fffff`ff`fffffffffffffffffffffffffffffffffffffffffffffff`fffff`fffff`ffffffff`fffffffffffffff`ffffffffffffffffffffffffff`fffff`fffffff`fffffffffffffffffffffffffffffffffffffffffff`ffffff`fffff`fffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ff`ffffffffff`fffff`ffffffffffffffffffffffffffffffffffffffffffffffff`f`fff`fffff`ffffffff`fffffffffffffff`fff`fffff`ffffffffffffffffff`fffff`fffffff`fffffffffffff`ffffffffffffffffffff`fffff`fffffffffffffff`ffffffffffffffff`ffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ff`fffffff`fffff`ffffffff`ffff`ffffffffffffffffffffffffffffffffffffff`f`fff`fffff`ffffffff`fffffffffffffff`fff`fffff`ffffffffffffffffff`fffff`fffffff`fffffffffffff`ffffffffffffffff`fffff`fffff`ffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ff`fffff`ffff`ffff`ff`fffffffffffffffffffffffffffffffffffffffffffffffffffffff``fff`ffffffffff`ffffffff`fffffffffffffffffffffffffffffffffffffffffffff`fffff`ffffffffffff`fffffffffffff`ffffffffffffffffff`ffff`fffff`ffffffffffffffffffff`fffffffffffffffffffffffffffffffffff`fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ff`fff`fffffff`ff`ff`ff`ffffffffffffffffffffffffffffffffffffffffffffffffffff`f``fff`ffffffffff`ffffffff`ffffffffffffffffffffffffffffffffffffffffffff`fffff`fffffffffffffffffffffffff`ffffffffffffffffffffffff`fffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`fffffffffffff`fffffff`fffffffffffffffffffffff`fffffff`fffffff`fffffffffffffffffffffffffffffffffffff`ff`fff`ffffffffff`ffffffff`ffffffffffffffffff`fffff`fffffffffffffffffffff`fffff`fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffff`fffff`ffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffff`ffffffffffffff`fffffff`ffff`ffffff`fffffffffffffffffffffffffffffffffffffff`ff`ffff`ffffffffff`fffffffffffffffffffff`fffff`fffff`ffffffffff`fffffffffff`fffff`fffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffff`ffff`fffff`fffffffffffffffffffffff`ffffffffffffffff`fffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`fffffffffffffffffff`ffffffffffffffffffffffffff`ffffff`fffffffffffffffffffffffffffffffffffff`fffffff`ffffffffff`ffffffffffffff`ff`ffff`ffffffffffffffffffffff`fffffffff`fffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffff`fffff`ffffffffffffffffffffffffffffffffffff`ffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`fffffffffffffffff`fffffffffffffff`ffff`fffffff`ffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffff`fffffffff`fffff`ff`fffffffffffffffffffffffff`ffff`fffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffff`fffff`ffffffffffffffffffffff`ffffffffffffff`ff`ffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`fffffffffffffffffffffffffffffffffffffffffffff`ffffffffff`fffffffff`fffffffff`ffffff`ffffffffff`fffff`fffffffffffffffffffffffffffffffffffffffffffffffffff`fffff`ffffffffffffffff`fffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`fffffffffffffffffffffffffffffffffffffffffffff`ffffffffff`fffffffffffff`fffffff`ffffff`ffffff`ffff`fffff`ffffffffffffffffffffffffffffffffffffffffffffffffffff`fffff`ffffffffffffffff`fffffffff`fffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`fffffffffffffffffffffffffffffffffffffffff`ffff`ffffffffff`ffffffffff`ffffffffffffffffffffffffffffff`fffff`ffffffffffffffffffffffffffffffffffffffffffffffffffff`fffff`ffffffffffffffff`fffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffff`fff`ffff`ffffffffff`fffffffffff`ffffffffffffffffffffffffffffffffff`fffff`ffffffffffffffffffffffffffffffffffffffffffffffff`ffffff`fffff`ffffffffffffffff`fffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffff`ffff`ffff`ffffffffff`ffffffffffffffffffffffffffffffff`fffffff`fffffffff`ffffff`fffff`fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`fffff`ffffffffffffffff`ffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaaaa`aaaaaa`aaaaa`aff`faaffff`a```fa``a`a`aa`````a`a````a``aaa```aaa````aa```a`a```a`aaaaa``aa`aaaa``aaaa`a``a`a`aaaaaaa`aa``a`a``a`a`aaaaa`a`a`aaa``aaaa`a``a``a```aa``a```a``aa`a`a`a``a`aa`a`a```aa`a`a`a``aa`a````aa``a``a``aa```aaa`a`aa`a`a`a``aa``a``aaa`aa`a`a``aaaaa```a`a`aa````aa`aaa```a``aa`````aa``aa`aa`aaa``a``aa`ff`affa`a`a```aaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff````a``a```a````````a```a``a`a```aaa```aa`a````a``aaaa`a``aaa```a`````aa````a`````a`aa`aa`aa`aa``a`aa`a`aa``aa`a```a``aa```````````````f`a````a`````a``a``a`a`````````a``a````a``aa``````a``a```a`a`````````````aa``a`f```af`a`aaaaaaaaaaaa`a``aafa``aa`aaa`a`a`aa``aaa`afa```a```aaaaaa``a`a`a``a```a```a``a```a```aaaaa`a`aa`a`aa`aa`aaf`a```aa`a``a`a`a``a```a`aaaaaaaaaaa`aaaa`aaaaa`aa`aaaaaa`aaa`aaaaa`aaaaa`aa`aaaaaa`aaa`aaa``aa`aaaaaaa`aaaaaa``aaa`aaaaa`aaaa`aaaaa`aaaaaaaa`aaaa`aaaaaaa`aaa`aafa``a`aaa````aaa``a`aaaa`aaaa`aaaa``afaa`a``aaa`aaa```a`a`a``aaaaaaa``aa`aa`a``a``aaa`a`aaaaa`aa`aa`aa`a``a`aaaaa`aa`a`aa`f``f``a`a`````````a````a`````a```aa```a`f`a``a`a``a``````a````a`a``a````fa`aa`a`a`a`aa```a`a`a``````a````a`a`aa`a````a`aa````a````aa```aa``a``a`a`a``aa````aaa```a``a`````a```a``f``a`fa`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa``a`aaa``aaaaaa`a``aa`a```a`a```aaaa`a`aaa`a`aaaa`a`a`aaa`a```a`aa`aaa`a``aaa```a`a``aaa``aaaa```a`a``a`aaa`a`aaa`a`a``aa``aa`aa`aa``a````aa```a``f`a`a`````a`a`a````aa`a`a`aa```a`a`aa`aaaa`aa```a`a`a```a`a`aaa`a`aaf``a``a`aafa`a``aaa````a``aa`a`a````a```a`````````a`a`````a``a`a`a`a````aa`a```a```a`a`aa``a`a`a``a`````a`a``a```a```a`aa`a`a`a````a`a``a`a```a`a``aa`a`a`aa`a``a```a```a``aa`a`aa`a`a```aa`a``a`aa`aa`a`aa`a`aa`afaaa`afaffaaa```aaaaaa`aaaaa`a`a`aaa`a`aaaa`a`aa``a`aaa`a`a`a`a````af``fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa```a``aa`a`````a`a``````a`a``aa```a`a`a``a`aa```aa``aaa`````ffa``a`a`a```aa``aa```a`aa`````a``````````a`a`a``a`````a`a``a`a```````a`aa``a`````a`````````a`````a`a``ff```a``a```a```a````a`a`a`a`a`aaaa \ No newline at end of file diff --git a/data/waveshare13e6-v1/setup_bg_preview.png b/data/waveshare13e6-v1/setup_bg_preview.png index 6bce5d7438a481a71e26f97e8249a4eb57adeb6d..fc269897035298164290e62132b99f1fb36143d5 100644 GIT binary patch literal 22676 zcmeHvXH-*L*KR1%At)+J)uVzUO_~%bRu0lsdheY8(jn9X$Wa6oq&F1>si7u7AVE-& zj#2_7At0TQgccywyE*53@3>=p<9o+<$9T&v=a;(OS$nUw=bH1G&wS>3{zy-glZ}rJ z1Ojnt{d(^S2*g+g0x@Z@&;wWI^~67cK&BR2_ih^o=aTR$fiu6-OPG&ZICV9lJd55v z#$EjO-BB(|pp!c1DkqZy-}jXvxxCHk`$dgoU)_ab^dS8n6TJrLMGS~O@}S^oJ5nDQ zb(VHCS_%9KB673Pfk1ayV}ZZFW4r?bMLnXw2m)zbjphb{F1*oT0fD$5USI@)Sgvpb zuM>OfpL9EQd*Tf6aI;%2N9IU2>A`{m^>njWC;wG1^a+hQUJlO*;JJK}hnt5UKCE#B zLGy|eOzc?G!Y<3L1F@fUG=u~a8*s1;uTA5h~tM5C`e2n|-u+6}h1-}MHWy*ypg==3O zFV;>Uw@XTt?z&QWgSWTCuxqIyBZ(8+a3u(@z=u{dCFtJV_U$ZSQ+{b#SPwt*=+o-2 z`x_gbdd#15-IMH)h?nHe*36N1i0?sb`%EqJ)4FepZi7nTv~8JeY6=hLBEqr$iNolp zupwO(J}^kl@~Oq`a=K2#?Kn7+5a`l|v>DMBI)6>{mcy-b_s)Tv!6?q^O^HI;#4Lfy zp*@&2f9YQC6Kg}lT)Lrc6-h3QHK#j_-81KLnmzF&3-lF`&n7rpp{{|{-7M+m&VnVB%P4@@GK9` zoF@gw{-y7^JSV!!h?t$CT@@LlE|2ls7ghqNm{~-djmp1AdGvP0#QIT^tbVm1_)4Tfi)7Cwom9=}6gm6Y>Z1$S0uWt#m5clU8jQv$lr0w5ObQF2Rgt52y%oN}l)7I{%!4aHfC$nI)eG`u^l=B&P+SQJxC=YVH7tgO)?p*M z%1kA=$&$*#y_5Ws9#6-(20g}niqk`I1f8deA8uzF!JbyVo{0vde?0E5QorFaS{bn} z4zq?)M$y*qNuPVL1>l}b8)?nyoQd3{x|54$rr{diIZidV<5&90#DTk)W~?k6EI!k% zZ0p~hK2bksQsv+i;OLtJn>_=WtLI6}5+dVD8eQHjOFk5x>7N$e5qk|swTvmIy5=N# zlT!zT2I4&+*WcpW)j5&*K}}C;lG;&pC_&-qQ{!e*~Pu5$-sdld34rX9~9j*vf# zavZ+rxU(_@cIxQ{^Y=a$bkKx-l9<%Nb|ihb&lopu4HksuDfZeVekSe=(@qtV34y`E z!rlj>?ejZXRkHyVAw7#pOiwUB;Ll5ilOl&3ss#=X6#$FwQ|^5sKGjsgg%fhF*|o(a z^~aZaU;kaEYaFU^(GQ%UTmMGuMRwrcOUpId!^v`z+TBHO?A>rmu#mc=dapoNWQvS% z`e4~fui2df$B*5ZuTLk6eE7ZGC#N{ceOb%RKWRQ{P#hZM`8nU~JSlKkJ%FbY^TOLz zkpnxOUhz3XNtj;4$t7BPV_}rih&*mhld^+t#|dzd62t7D{Zv>C+jzgb!~550?-oZ-AnE^yEE3dsF_e%kOtSK z*jDtd$mU9`6Clu8`&jOzCE5(tZIHKMGBR&cq>@9t+$VT{U_hAQT_B4&0aEB=xhP;T zeM=Gqy3E584JGrP0I^);Zlg=o@qfTe2fD)&>!Wc>5Cpoyc;{_2@&O&_6mUf@)ltde zB?!dIctoU;hMwu8MNgSK#E?Kt7(w#%3!s zAPmz_J-f4cNZeF#d!Dnlzh*A1djO!UZR|qbiG01{&rV#GT_xe=!7)b42MFWhuh#=@ z6FJxYm8~RgE+wc!Y69|v@WRy(@p>c```&RTTl2_+!-D}}a~3^SL!XXV_oa#LuYM!X zl(eYJ1)DjriSK)b*g)3n`HPzQg64^7T$N8gHt$(au5_A~@2S6YOYjRdH{Q+`CUp6|4c9ISS15$C9KIv1?{S+y@ zRYz&NiP~k0fSe-I87q~%7|my8@~XP#)$Y2QT*f9uqme$-htE-*HD5BVltPC12ov6Y z-`8Q?`trp!wSAyDlY@@TefVkHGx--|W3EO{!j=P1ceFY5KH1n`Q-13Wptv%U#ll8U zm4vJvFT_W1;vxUhx5X;b{-gR!>E~H-C2st8jiwCw!@?dLvC8Hph`7;AV!+W!wSBmb z@(9}1#i{!sc5asG3%gtCzRxTlOxhY#J|l(sjuy|Q9iAF9LY_MYx`7vcKq93zC z>U8V;DRR?STd&@ohdkKmFqXb8GMJ#jqA6Vte!7DVE?UN0vu9Po6w0OQbrd5*k46xo zKc>WrAYeZm4@FLQb8Wt6)nd*cJR%Eisryq{OKml04yzNaV=b?}p+gj#9sr0BSrmY! z$YBv7!6)Bgnl}Xfi0WY>svAqlasF)wn5E&5Iws8QXjD0tXr+RUq}-X-LSdE`4ROvK zkJ}_!Vqd*qdq~>Gx=>{*XCFVNiZyrk3G&u`r)SSC`anrH1CXI zaruO$ktSt&)A|J7bCN`AH;RH7D1Dq};z_*>k8`a*0;{wC$5vBD5yzK1EtUdagao5QakH^>txZ6;P6phRKedI+= zE~0%P^K-YGONI=JCgCO_`!fj+cQC+Kom;0aEF{N1Q|fc(Au`KjiD+m04K%9e2M!`Y*IgNdVw#m5V~9C zU}8Ev%RnEOK(5z?`w-{1vBmvP@$jp`E{-z7`*?-8;y0|kEkBVH>==7IyD(4wtkvge z!ILa@o!v09{*S_mJJO3~9}IpVW@;Q|mPXWxXEyvXTn?*Ol4&AWt#1ScE#!$x?Jm;x?RZkg&S#fq|$!wEDZx346fvGk5d()^4VHCUb zHCxsCJR^{rR+-F=uh?zdf3*+@Dz1XT!!o>zij&0z6Dxdl2Np6mXih=Arxp8fnLOF| z2o8QlidGH6qT`qN2kKe{YhSimr@7R|mQfSu7vBiDIi#cGd`p#_0k@3rkFp`Xy#)CY z*B5%m_WVpv`c2cbVqr)3wuP?c+6>?3-1~)_zSy9^(!*(3RlCQS|PNo7f=J}xohQ0rQ-ERMQ#ql9BcpH{HU+0XR(aX30$ zt-yK#X}Su;2bzCth}z;K#o{Y1969C>Wa1fQ@33&Z^V7ipVSn<3NAKP($uW=3@LR^w ziqfB=udci~d1vgr*2|`nNgl=Lz&0AfqOCck-`z!VL_J`5#;k2^A=7ouKg9%I{%K$J zZi}LVT`}Vw+Y443jija_v#)L4u`n)z;U>O*eYAemf-zJ+Gp1$Pmi+We)fRC!S6Q?rup zq3htWH)yq^+Q8OzZ+1&0x}2kNHk@LKp5Cm4JB&h`=7lblwoR8O*j5=;-c2j8P*4jE zS&sDdT5b+iL%$g&_{&sz&|h5XC<xnx9gPYBpIu^z5A;xDBjN{ul=zxqt@%eYKD57&o7I_J&r z7NttxVqvz8!+_Im_P6e|HB$LHN-Q-=ht&4N1fjt2>A)p$C!sX@HL2NFR+lhp z6y5+uOrl(TvsAH)Kaj1N7O>lG4-dvH5o=(@7Mu();05kBuJUzMgO=A7dohOHycu19 z|8tN#z%X}66+R%6oKg%oV1%T~A0?3$#;oS%d_Ewr^Kp00i1ro82Mh51eEfW#t+nor zcnH_JXRUDnvukP$cngw$B?<+Etfn)y#x&u*Jhg)wDeWy4u=GGTUDJ{_+qk9diOjA9 zD@9jMwXyApbP$kkc;dyj6O8w(3E57eq#WIta1+AneW{Ed%qV=Ujxz%F?BHNaX}Sn$ ziNc)(iECYmoiRo5P%6JW_2NBjKFXTgYbcD(zwjKd`|Nzmz^ScK%1_5=$NX+R!?LhU zDF=Y)#_C24(vc5tE&^LNsd5Z(@bK|=euHYxq)-S>r^4gq8r5uGrgNtQUM~TTN7%(yZu&{XR=yjkGWXA;-MuV+V5mRip*@K2LJ;0(L=u2 zn3DhpD}Cc!tZ&a%5a|APLTD&=QYXtrkcM)547WBw*8Xm+i2j5Dw;j7%&;^sOy!U6e z6WT6@+)xFzuB9=fA3S58{)CfZ1GO?tD$r>jXBmTE``-K59w!PFIB_<>n*f)(flHpp zm->K9@c>>1`A`6S{^P=B0GEJ3hYP?zym;aSj&Je35W7p@Bb)g#}mjBe28rd`+)eseS8+;bzjgFFi~SZ?{Kq3Z%lOD{Z)h*Wa2^hfuo zBdzB=xIA%lf z)|_W*UIO11c{ZY|fnEAyYB#9j!{@tVjRPB_0EAu6pMEVTde#p!R+@vQb9Id6b~Q$S zu@=526WgGY=(g%LFsinWzC=;k3y!|yOx%30kMp(}is#u`{ z^}qFF^v34{NLIM;3lDylmNFNuYKGFsD7;Xq_ZVDo`(VpVSFASuH8!j*acgiYcA3)VnG|DN@s5RxwU9BygC>#zimwbXXhx41*E0;V@_$YbI+7OAIupZei9SzS9tknGYA zA!RqKR_iO1l1n=1Di@DvG>7RgPYA9aR_ven$3;x^V~Ur!%62_GAF3&o?cOg#f_tA@ zH_3{Cgs1%J#DTrm^v32LjDV2~ekYi!BVgSXh{OuUO+!qpkuRoe&aQzgbQxBn)5Xu^3#<-a#HoKt00n_ORzLAyw5U{^P$h zc>Vx(teoD<5aqneNLV1-ogr*t=FYx3a zhF_ZooHs;NgPF|`>H9v&b&vf!nyz_d=pZMR!v!xy}c&PI5Q{d^Fpg@uP4RGh*~ zxKL7)`d_n}D4|N>m@zSUDiR)MolW(pi}mTbDxKH?z%91V*nWd9iLepIG{F;+CD4GP zCNtt5X@j;23$dgqw3T=c)t3Zz`}Z(A(L@~a%G@x!+g|8F`-mviIPz>li}%bh3a?je zAkQ%niZ&X>u(Vg{!>zK z@iu*H_4$j8Q<3CTQ==m5bf6+2s;x@NTm;PmHQ)x5f}V(qY!Ik+{m;<---yWnji~rX z+_F6ZutZD#yMJk$WTi%Q>Ob&P!K8QsQ|xVnMCIqyGb%2pGtJgywX(jFGKD(ks)IL|>$EDlz{ls#yf1A1GewlX8HK zJF7N>d3;AJtqDWiqzoG#`Akb%d-C8bA{_FNW#JaiwD;^87EjjO*)jx9hZ7C#O|u|n z3bsKvBM$9Up`_na+;wVV9*Wf-7~g1UP4VlwY-6@9Fljs$g?`zJ0~k>eU@rLsQbG8H z;%%D|L(i5Mz`|&D{Va_fMzZjXe#qFp)0rXN&~NlOk>BpC+gj7j$1~n#$^(c+cXosX z!qEaBeo)zFb|4-ydV129l8Fb~fV^N;u>d+r8#M`uQjL-SySc zFGFY*Zp6)A+@V|KVXy=mxdeC?!SLURdrZqW7j&#sPZ@PNcoE#ir|mjF6@Gd+qnd>{ zvOpzhE>GUWRGJAT`c?|m*Ri~!jRRcSs8MJW4u#@jgsUVhcq_oLxU{6J8i zv!bsk?sl2De^H@>My;@q*ZI}7GXv8t=HgZIK(=(hlcje`M&)od=(LKaZd0PZ8RVeW zI&L%XhqD%h=-Z-z-ha=ImKQnq#>6>^Bwf?1H8EQe-{(7h34!4~FH zT)UVmz`O+NZo4ca_>yck-4+vngIocRIhp)1lO(rPFd}4zPLcLnrStfCvVwvP*#}X6 zJ#{u_L;*FLZfR>BV9%dNif2?HG8=RNHLcDCV8=-KSe-!p>(MnU8x%pizm0I8TF{FN<{nq>#S8B%6@1|pQP@kB-2rqMS zfqZ~9i6tZM86KS*EG}VUrLakb^l60X3iS)tXt0q?zkIu?uVWvrTle$T*CLUm0tXe2 z>wXgoO1{sh5lo&g_OniUn$TPE48&6`cGu^39K!Z8B3eE7THI^Air0c+mN4JoEqqtBtzdia4z_rCDsn;PW z&zknyZFH?39YAO0q%jz~pf|E85kW#W7I194*T3!dV<&fv=a4d*TaBWGdl+TR_5|sd zdE&CX7j2G`&EG88zmTzvF6nMoO;VnijZIgIe~GCsagiZ>|Be_3D^Rq7^^8-YyjCW|85M zH5Xp8ZgtC-2T%Ulp*%2aPU?_Aw??34I|I)d&#zlJkNSP9)SVP#qTqnZv7&3n{enB) zcuZfOypw6tRe%7t0XbpY;2<$f@t$-!Fs~*{RQl4hK+pHq7L+|wEoD@wF+p_v9+)WI zx%f!49ur#S1K8->-Xy&0P`cTQK#k@Q{Ke4(Gs&3O?>?H%qv6ekG z`G7{7@ul${#c!BW2T-oKPgk2e|O7k!uUqf__pftl3DjpUjgb*=l@oDnGa|YT?jsC zb01NV|9%D3nsn}B?CDPJ7!c^?Wx#Z^-gAPY6aWH=p>)8D@|Y6@T7JoWhcS7K4)jPA z_^J=4Iq9_TN}VH3|h===*5i}79uUx(!NOp$)=un;X}m&8|To` zvcj?5v)2neiXlTI+OAkBzw-4L13i5RW@Mt0BPcUXgJn?PB61hl&o3+l8JWzA|jr7cEt7Ua%-ernv1b8G{d!Q~0S*nB_9;B>Qk_Y7U`fU1EB0cs=VNmqN zDu=KYU>MX_y*-;b6@JUSq~o6fnmKkiex@wg^;}$+7j7akgkrpYmf=Dw@ZbU3zRU_2 z0tI82GJ)x9t}j{8fX{|YgMYqQ)YMU7m9j1LtOIWr4(3vG1er#;u+W7f!)?MwMy!Jz zON1gSsWbpi;=P%5BsLDVLaYegbdv^zo;u>5bh54*rDqxHGjZ3MH{&vBtBvKNMn=5V z1^~B?Q*o0lZ=Z9HrFutr?xAQ=8zuKaD^D=_;1%7km$>O~JyNqY2=L=2&nTeM-pxen z$A|=Yh6z6)+}R?6=z_ac8`gk{Sbx4#AgqQ3#)Q%QotuW|(#%Eu1a&Na4n)`yu zL|`z0K|4*0*lV^#bt4;lI6}ph>QZj~8vHWL`Rrs2_Ld{4!QsjIsEA7Mp~||JzOYuD z1j8^devDSBFX5+#=E!UWIG!fKE;DCA-mU$$UAc{4L<(e!Fz+)6F{#2bc>Y1#OBzzZ zdt5bg2~r6k#4ZUOZMTn~<&`P*8_sgp^H}*@0hr@7kjP0#r`#y$s7Btv|9ovlv$H{4 z47qoFyD^ffH8Uz{HV3Kfk5#B)HW3gxF_jK{7^k+iRQThf&k5(olhp&)-Eb3N6D7x1 zKV$gCRuoGt$cnA_tJDhPO)d)nK8VqF19!)fLfEBqDG(?ef+1pEN9D7(UeVcl9WN4| z^4*L5Q~)F*wQvw3d<)jV>e{&LIe=Tw~tbogjl({1XK(e=cfrtfRdn6D?0KCi`dfNEv# zut+B)c`B$m$R#!1%4PMND3J;J9)1+DCtxs8SoFDjbZaWQ*!RR3kQ~^Cf@8jX`*35L z6d2>Jir3z5302*Vk`hwk%vXRjgVFVL3IL6|=-U`Z<@*(|Gfg|pmM?92gq3{gV|S%k z@btt4w?Vx1UNxn19Hz826$ZS3A3%AwGK@g$^p9E|*FN>HT&4q`^DSv=gIu|(c6J9y zQX(14e7+~@C#gm@bMcE$^rXh7VGqXOJU8WC;Za#zQ{})YLx0Ouj!9G?P5nD0>VKic z{X@y>`4z~pCX4``#rnZkW8fKE9w1lxJL=uqmv^pjB-6Ft$kY~?_*2;86w56Hco9H- z1Ckz`TdxNO8T!wI01iksn2QbsAJ{m0)DLjb|266RU%c<%7u@{Yb;W{khq{jYWZ|5e%gSLFLE^8FS0{)L@?e+8Srg3bS9!RF8!Nna%j z6g`hq@Tji;+$j?Bj9aL|5_OzhgL(me>Nst_6gzlKERw`Ppw^fFIn(}Mv{9eX5l4qE zBxQgjsG|SJ)M@{|&p)0IC_(uTHlQj15cC1_GX4Eu+>`TXDOvw;e}C;@Yka2+5H+W~ z|5Fe}g-tkWFPV0_5se!yQOoLK4LA7F0WK*MdZ@RoIgbb*PmlVI@}+wYq17u@$vK)rucInuBxk+B^&<)=BfAa~Eou+=CQCXoSYyNFLg@JgM$-%pmR1H}4Ku@57bFu6 zZ_4SV+42_@<$Q1)4L}H&T?;EcBC9pdm0bko{7iow6*3avc5DI)=r?2~D-j9=!8w0= za&!k^goD%_?P&39t4V{9{;D6mz|4sIhd&MiIVnZVi(i3lcOXs+Twg=T8xJkN z6#w9JJ4oH^W(=V9w!Z#oJ)*58xIr@B%pl4MU_CcwX*qq~g~PMcBn4hU3)R=wlux&G z9*9|Hbmd%ajXoyGg%zke!$4Viqhz|HIpv{RE_kDVZe9K`$CPRaPOJpdDP%dt_oYpW zp&UWdt(S~y0mN@rN$yPFkZ+7y=p))tP{Kz;b(jmfLq#b=z()gyNlOL>8 zAEX-wr|g(FIPqo3*RZBRO}pSG2r1)syJK-(DW;|9xR1*Z!)kj3n4Gv{*5rnL_$D3u za)2g5FTRSe*n2!XPfc|UF`;6m8x;qj{T{d6GCvjVYx*(_GWs*xv&w2Vls<62h=28~ zQHAgxdm-|+)$9mYTpD4|ogPpvGnyJwAH*j028PRG#k8|vUNgeC1*DyRHJWa`J8>E5 zd1@rW8yDW=`QpSIx$g|+BCYm+Qvg@xN^DL{%1eJ#ItTPv_1w-)Ubl-fW;ht0}E zq0prT{FW}*tw_!n!cnZbw;RYFRF_Na3^k&{`4~|B>s*mv=mcJBu2n~-)e=dTPf z?Qm)%tfj@uzZ+Jc7jSEK^-rZpB=xwYV&%4d1$|V?3mo@Q=KgVOiAm`vyl7QM_>~UO zNCK$Cfq*yBw1SyDLhYX2DSz})XA@PH+P)rY1l=lnAQRk{t6&jJ;+btVuX#$hB|QBJh<#O^hjy(uw7 zBA;Ha>JFIWWvMi)bg*2@K7&kXu|!#Bf}+-d-p1SEjPnz^lykX2y;HTort+vhkv?r7 zZoNX?znG1FyN0!MaUN9xGcF&*kx=l1*Sm-H3|Ecig-JyL6w1X7K*waLtET6kTd#CgH z6GDJvl@Y~h0jamdtF?z4DN8zJwr1#sjV&VZi4!-r>mUQf1z|3F z%RN+LnY1T=x{k!q;ywXkJQ`^v1)&7hjBH0>C38vxVXdbcjnwHp^#RmQ;$2JO#Cn> zzNT4EZ$Jm;x4Y|Ppd%B~ zuy1BhoAGb`3fnbF3Rga%0CW_!o?0GIgb--+_{F%6zd{Mv_I&92|S1cWX5(%ko9)mJRFB}4pz2)m-^e14q_-`+~^(R!BO zVd$3fF{t;u%*b=sRt~Kzegl&~rlPZ0Vq4|-yaR|>t%<|B)C4>r|KT?%6E{)2snsdU z9~p397v!KgtI|-6Uvl8;O2OZ3z3lS*1V@CDCRRQJWi#IMj6Ui11;!3{=xyW9z0C>sAxrUnl@8k&CuldZDk~+rHn*6`w7$N$iC7RR#7(dN<1vGcXqsx zVrHLdEfKl;{8LleR^U7EwiV4pgz$(gbwcQP+R^TZT?Pi7WhCbcWEM#OD38OZO-rQH zwS0QXS=VKxT9sW`c{#JwsY?^{(0VNVX6+m`0g)VmKU`j#mmM1Mf6QK23BSLo{G|xr z7CvyQebb%Bpm*OVO=k*pG54FNz$6jX*og9Xry?j*Ak z6zEzdGYy$QKSmbv%}Ra&i36?ZpjBaZ{d~sOWgRh~!{z^hQ2bZn^`CZ_)nAm>UzFBA ziqiVyB$Nk#O5Fms+X0PKu3j;aGGc`R5jp-o08Xw56AvF!Q{i)yhj54600?a;3yVk1 zy|nZSkKr8+Oi>+ym$&7ql&iI?fm^GgYAGIKJs!v03>9 zad@+Ax){Z`b?^|DE<3dWT8TS(C#uDr-8_6oa~tNRO_cY+Xgdgmh8|JFLP_;sP;-{* zk;v?Y4eg*`n($oU44~=hR{ij*VO4Fn#~A$gCX|GWjy8ks3?LP$f{s9-CICbNC?q^M zXjZ}ZWfy--_fk?G#H|YT2FL=iQj-VXs-ZEQuVFp=4UjO{pks1PM{zScD$O-EvgCF&EnX9(;oKmL}`#Alp`_Bn7q zu2ICCs~f0u=KP(gOP@lQi^6j660pVv>W3Sb0bB|rVtwo6qK+FYx0V4uBk|_de1eT$ zvh!Itf#vaUmal`rD-s6%fTkv3IU@;-xc_z+wRmVBzNemBRb2HfF|OdS#cvOudqaXV zDv{@SkmDYbVdcIVK;%aF@HW+>SDIm&fXF@SJE?5{t~R^yS-3_2YjZwO5TG;^+>6+| z)sm+tAq5Hs$eIJV*G!?Z!HJh$G2PU_K@~8Ct7Xr={=g*^a<{9Wg!N@Y$bl5}fJOO@ ze7L)%d*;zzy5B)qCy`Njk}Gs!7muSA(U>B(?du*C|0tCsyx@aFbO+()RUX%qNGf>^7O= zis`%ILETA#zktGlj2TM(qY-+E#Wo@FTRmqS9^j?cZhTBy#wYgU0ZKzI*yLM#*ZtyB zJ1JnAfxt9V_x{!!diRzNZxDExdJs0JFdQ)O{fAXV%PMvtIpkTDw~}B1TDz)6!M3yG zS_qE3MPzUv^H`7^@&%2Z0BBBVKx3GEQZLZ33n+)pQOT251##D9b+)-J>y3y+(+b

- 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 literal 18916 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 N#mMY(rJ-}ge*tq>6n_8! diff --git a/platformio.ini b/platformio.ini index 26216f5..85a6c04 100644 --- a/platformio.ini +++ b/platformio.ini @@ -101,6 +101,10 @@ board_build.flash_mode = opi board_upload.flash_size = 32MB board_build.arduino.memory_type = opi_opi board_build.filesystem = littlefs +; Default partition table reserves ~1.5MB for SPIFFS — not enough for three +; 960 KB setup-screen .bin files (2.88 MB minimum + LittleFS metadata). +; 16MB preset gives ~3.5 MB to the filesystem, tight but works. +board_build.partitions = default_16MB.csv extra_scripts = pre:scripts/data_dir.py build_src_filter = + diff --git a/scripts/gen_screens_13e6.py b/scripts/gen_screens_13e6.py index 1e272bb..df41275 100644 --- a/scripts/gen_screens_13e6.py +++ b/scripts/gen_screens_13e6.py @@ -3,17 +3,18 @@ Generate 1200×1600 portrait setup-screen backgrounds for the Waveshare 13.3" Spectra-6 panel. -Layout is a single-column vertical stack — much simpler than the 800×480 -three-panel design in gen_screens.py — chosen for the end-to-end port -MVP. Polish the visual treatment later once the provisioning flow is -proven on real hardware. +Layout mirrors the 7.3" gen_screens.py (yellow header + instructions + +QR codes) but adapted for portrait: a single yellow header band on top, +then a two-column body — instructions + manual QR on the left, the two +runtime QR codes on the right. No orientation chooser (13.3" setup is +portrait-only — see project memory). Run from the firmware/ directory: python3 scripts/gen_screens_13e6.py -Constants used by src/panels/waveshare13e6/v1/epd_driver.cpp: - AP_QR_X, AP_QR_Y, AP_QR_CELL - SETUP_QR_X, SETUP_QR_Y, SETUP_QR_CELL +Exports the QR overlay constants the firmware uses to overlay the +runtime QR images on the static .bin backgrounds; the driver must hold +the same numbers. """ from PIL import Image, ImageDraw, ImageFont @@ -24,7 +25,7 @@ MANUAL_URL = "https://pictureframe.edholm.me/help" W, H = 1200, 1600 -# ── Spectra-6 palette ───────────────────────────────────────────────────────── +# ── Spectra-6 palette ──────────────────────────────────────────────────────── BLACK = 0x0; BK = (26, 26, 26 ) WHITE = 0x1; WH = (245, 245, 240) YELLOW = 0x2; YL = (240, 208, 0 ) @@ -65,32 +66,42 @@ def ttf(name, size): return ImageFont.load_default() -F_HEADER = ttf("DejaVuSans-Bold.ttf", 44) -F_TITLE = ttf("DejaVuSans-Bold.ttf", 60) -F_LABEL = ttf("DejaVuSans-Bold.ttf", 32) -F_STEP = ttf("DejaVuSans.ttf", 32) -F_STEP_B = ttf("DejaVuSans-Bold.ttf", 32) -F_FOOT = ttf("DejaVuSans.ttf", 28) -F_NUM = ttf("DejaVuSans-Bold.ttf", 30) -F_TINY = ttf("DejaVuSans-Bold.ttf", 20) +F_BAR = ttf("DejaVuSans-Bold.ttf", 34) # header band text +F_CHIP = ttf("DejaVuSans-Bold.ttf", 30) # SSID chip +F_HEAD = ttf("DejaVuSans-Bold.ttf", 78) # "Connect to WiFi" heading +F_TITLE = ttf("DejaVuSans-Bold.ttf", 60) # "Almost ready" on setup screen +F_LABEL = ttf("DejaVuSans-Bold.ttf", 36) # column section labels +F_STEPN = ttf("DejaVuSans-Bold.ttf", 32) # step number inside black box +F_STEP_B = ttf("DejaVuSans-Bold.ttf", 30) # bold step body +F_STEP = ttf("DejaVuSans.ttf", 30) # step body +F_FOOT = ttf("DejaVuSans.ttf", 26) # captions under QR +F_TINY = ttf("DejaVuSans-Bold.ttf", 22) # progress-bar labels +F_URL = ttf("DejaVuSans.ttf", 22) # URL bar mono -# ── QR overlay regions — must match the panel driver ────────────────────────── -# Cell sizes are chosen so each QR fits comfortably in its vertical band with -# room for label + caption. Centered horizontally on a 1200-wide canvas. -AP_QR_MODS = 37 # version 5, ECC_LOW -AP_QR_CELL = 16 # 37 × 16 = 592 px square +# ── Layout constants ───────────────────────────────────────────────────────── +HEADER_H = 130 # header band height +BODY_Y = HEADER_H +DIV_X = 600 # vertical divider between left + right columns +LEFT_X = 0; LEFT_W = 600 +RIGHT_X = 602; RIGHT_W = W - RIGHT_X # 598 +LEFT_PAD = 36 +RIGHT_PAD = 36 + + +# ── QR overlay regions — MUST match the panel driver ───────────────────────── +# Dynamic QRs (left as WHITE rectangles in the .bin so firmware can overlay). +AP_QR_MODS = 37 # version 5, ECC_LOW +AP_QR_CELL = 14 # 37 × 14 = 518 px AP_QR_PX = AP_QR_MODS * AP_QR_CELL -AP_QR_X = (W - AP_QR_PX) // 2 # 304 -AP_QR_Y = 220 +AP_QR_X = RIGHT_X + (RIGHT_W - AP_QR_PX) // 2 # 642 +AP_QR_Y = BODY_Y + 100 # 230 -SETUP_QR_MODS = 41 # version 6, ECC_LOW -SETUP_QR_CELL = 14 # 41 × 14 = 574 px square +SETUP_QR_MODS = 41 # version 6, ECC_LOW +SETUP_QR_CELL = 16 # 41 × 16 = 656 px SETUP_QR_PX = SETUP_QR_MODS * SETUP_QR_CELL -SETUP_QR_X = (W - SETUP_QR_PX) // 2 # 313 -SETUP_QR_Y = 450 - -HEADER_H = 120 +SETUP_QR_X = (W - SETUP_QR_PX) // 2 # 272 +SETUP_QR_Y = BODY_Y + 360 # 490 def text_center(draw, cx, y, text, font, fill): @@ -104,29 +115,220 @@ def leave_qr_white(draw, qr_x, qr_y, qr_px): def draw_qr_frame(draw, qx, qy, qp, accent): - """Two-layer decorative border around a QR placeholder.""" + """Two-layer decorative border around a QR — accent outer + black inner.""" draw.rectangle([qx - 12, qy - 12, qx + qp + 11, qy + qp + 11], outline=accent, width=6) draw.rectangle([qx - 4, qy - 4, qx + qp + 3, qy + qp + 3], outline=BK, width=4) -# ── AP SCREEN (Step 1/2 — WiFi join) ────────────────────────────────────────── -def gen_ap(accent=YL, header_text="SETUP MODE — STEP 1 OF 2", - qr_caption="Scan to join PictureFrame"): +def draw_header(draw, accent, header_text, ssid_text): + """Yellow/red band along the top with a section title + SSID chip.""" + draw.rectangle([0, 0, W - 1, HEADER_H - 1], fill=accent) + draw.text((LEFT_PAD, 40), header_text, font=F_BAR, fill=BK) + + if ssid_text: + bb = draw.textbbox((0, 0), ssid_text, font=F_CHIP) + chip_w = bb[2] - bb[0] + 36 + chip_x = W - chip_w - LEFT_PAD + draw.rectangle([chip_x, 25, chip_x + chip_w, HEADER_H - 25], fill=BK) + draw.text((chip_x + 18, 38), ssid_text, font=F_CHIP, fill=accent) + + +def draw_divider(draw): + """Vertical divider between the two body columns.""" + draw.rectangle([DIV_X, BODY_Y + 20, DIV_X + 1, H - 30], fill=BK) + + +def up_arrow(draw, cx, cy, half_w=18, h=34, color=BK): + """Solid filled triangle pointing up, centered on (cx, cy).""" + draw.polygon([ + (cx, cy - h // 2), + (cx - half_w, cy + h // 2), + (cx + half_w, cy + h // 2), + ], fill=color) + + +def left_arrow(draw, cx, cy, half_h=18, w=34, color=BK): + """Solid filled triangle pointing left, centered on (cx, cy).""" + draw.polygon([ + (cx - w // 2, cy), + (cx + w // 2, cy - half_h), + (cx + w // 2, cy + half_h), + ], fill=color) + + +def paste_rotated_text(img, text, font, fill, anchor_xy, ccw_degrees=90): + """ + Render `text` horizontally onto a transparent overlay, rotate ccw, and + paste it onto `img` at `anchor_xy` (top-left of the rotated bounding + box). Used for vertical labels on orientation diagrams — PIL's + ImageDraw.text() can't rotate, so we render-then-rotate. + """ + bb = font.getbbox(text) + tw, th = bb[2] - bb[0], bb[3] - bb[1] + pad = 4 + layer = Image.new("RGBA", (tw + pad * 2, th + pad * 2), (0, 0, 0, 0)) + ImageDraw.Draw(layer).text((pad - bb[0], pad - bb[1]), text, font=font, fill=fill) + rotated = layer.rotate(ccw_degrees, expand=True, resample=Image.BILINEAR) + img.paste(rotated, anchor_xy, rotated) + + +def orientation_diagrams(img, cx, top_y, label_color=None): + """ + Side-by-side PORTRAIT / LANDSCAPE diagrams illustrating the two ways + the user can hang the frame. Drawn in current portrait-view coords: + + PORTRAIT = upright tall rect, ribbon along the bottom short edge, + up-arrow inside. + LANDSCAPE = pre-rotated 90° CCW from upright landscape. The frame + rotation portrait→landscape is 90° CW (ribbon moves + bottom→left as viewed by the user); the CCW pre-rotation + cancels that, so when the user picks the frame up and + rotates it 90° CW into landscape the diagram lands + upright (wide rect, ribbon-left, up-arrow). + In the portrait rendering that means: tall rect, ribbon + along bottom edge (was the LEFT edge upright), LEFT- + pointing arrow (was UP upright), and the "LANDSCAPE" + label rotated 90° CCW so it runs up the long edge — + reads horizontally once the frame is mounted landscape. + """ + if label_color is None: + label_color = BK + draw = ImageDraw.Draw(img) + + # Section heading + text_center(draw, cx, top_y, "FRAME", F_TINY, label_color) + text_center(draw, cx, top_y + 28, "ORIENTATION", F_TINY, label_color) + + # Same external dimensions for both diagrams (the LANDSCAPE is a 90°-CCW + # rotation of an upright wide rect — its bounding box is square'd to + # match portrait so the pair sits in a clean two-up grid). + diag_w, diag_h = 130, 200 + ribbon_thick = 14 + pair_gap = 100 # extra room so the rotated label doesn't crowd the divider + pair_w = diag_w * 2 + pair_gap + base_y = top_y + 100 + + pt_x = cx - pair_w // 2 + ls_x = pt_x + diag_w + pair_gap + pt_y = base_y + ls_y = base_y + diag_bottom = base_y + diag_h + + # PORTRAIT — upright tall rect, ribbon along bottom short edge. + draw.rectangle([pt_x, pt_y, pt_x + diag_w - 1, pt_y + diag_h - 1], + outline=BK, width=3) + draw.rectangle([pt_x, pt_y + diag_h - ribbon_thick, + pt_x + diag_w - 1, pt_y + diag_h - 1], fill=BK) + up_arrow(draw, pt_x + diag_w // 2, + pt_y + (diag_h - ribbon_thick) // 2) + text_center(draw, pt_x + diag_w // 2, diag_bottom + 14, "PORTRAIT", F_TINY, BK) + + # LANDSCAPE — pre-rotated 90° CCW from upright. + # Upright landscape: wide rect, ribbon along LEFT long edge, UP arrow. + # After 90° CCW (in portrait rendering): tall rect, ribbon along BOTTOM + # short edge, LEFT-pointing arrow. Label runs up the LEFT long edge, + # rotated 90° CCW so it reads L→R once the frame is rotated to landscape. + draw.rectangle([ls_x, ls_y, ls_x + diag_w - 1, ls_y + diag_h - 1], + outline=BK, width=3) + draw.rectangle([ls_x, ls_y + diag_h - ribbon_thick, + ls_x + diag_w - 1, ls_y + diag_h - 1], fill=BK) + left_arrow(draw, ls_x + diag_w // 2, + ls_y + (diag_h - ribbon_thick) // 2) + # Rotated label, anchored just left of the diagram's left long edge. + label_text = "LANDSCAPE" + bb = F_TINY.getbbox(label_text) + label_w = bb[2] - bb[0] + label_h = bb[3] - bb[1] + # Rotated label is `label_w` tall, `label_h` wide. Centred vertically + # against the rect, sitting just to its left. + rotated_x = ls_x - label_h - 16 + rotated_y = ls_y + (diag_h - label_w) // 2 + paste_rotated_text(img, label_text, F_TINY, BK, (rotated_x, rotated_y), + ccw_degrees=90) + + +# ═══════════════════════════════════════════════════════════════════════════════ +# AP SCREEN — yellow (or red retry) accent, Step 1 of 2 +# ═══════════════════════════════════════════════════════════════════════════════ +def gen_ap(accent=YL, + header_text="SETUP MODE — STEP 1 OF 2", + qr_label="SCAN TO CONNECT"): img = Image.new("RGB", (W, H), WH) draw = ImageDraw.Draw(img) - # Status header band - draw.rectangle([0, 0, W - 1, HEADER_H - 1], fill=accent) - text_center(draw, W // 2, 38, header_text, F_HEADER, BK) + draw_header(draw, accent, header_text, "PictureFrame-91F8") + draw_divider(draw) - # WiFi QR step - text_center(draw, W // 2, AP_QR_Y - 60, "STEP 1 — JOIN WIFI", F_LABEL, BK) + # ── LEFT COLUMN ────────────────────────────────────────────────────────── + # Big "Connect to WiFi" heading with accent underline. + head_y = BODY_Y + 30 + draw.text((LEFT_PAD, head_y), "Connect to", font=F_HEAD, fill=BK) + draw.text((LEFT_PAD, head_y + 90), "WiFi", font=F_HEAD, fill=BK) + bb = draw.textbbox((0, 0), "WiFi", font=F_HEAD) + underline_y = head_y + 90 + bb[3] + 6 + draw.rectangle([LEFT_PAD, underline_y, + LEFT_PAD + bb[2] + 4, underline_y + 6], fill=accent) + + # 5 numbered steps — same instructions as the 7.3" but with the larger + # type that fits comfortably on a 13.3" portrait body. + steps = [ + ("Plug in the frame", ""), + ("Unlock your phone", ""), + ("Scan QR 1", "joins your phone to PictureFrame"), + ("Scan QR 2", "opens the setup page"), + ("Type your home WiFi", "password and tap Connect"), + ] + step_y0 = head_y + 240 + step_pitch = 92 + box = 50 # numbered black box size + for i, (l1, l2) in enumerate(steps): + by = step_y0 + i * step_pitch + draw.rectangle([LEFT_PAD, by, LEFT_PAD + box, by + box], fill=BK) + text_center(draw, LEFT_PAD + box // 2, by + 8, + str(i + 1), F_STEPN, accent) + draw.text((LEFT_PAD + box + 22, by - 4), l1, font=F_STEP_B, fill=BK) + if l2: + draw.text((LEFT_PAD + box + 22, by + 32), l2, font=F_STEP, fill=BK) + + # Orientation diagrams — tucked between the steps and the manual QR so + # the user sees both possible hanging positions before they commit. + orientation_diagrams(img, LEFT_X + LEFT_W // 2, step_y0 + len(steps) * step_pitch + 60) + + # Manual QR bottom-left — covers "captive portal didn't open" + general + # troubleshooting. Same intent as the 7.3" but bigger box, more room. + manual_qr = qrcode.QRCode( + version=None, + error_correction=qrcode.constants.ERROR_CORRECT_L, + box_size=7, + border=2, + ) + manual_qr.add_data(MANUAL_URL) + manual_qr.make(fit=True) + manual_img = manual_qr.make_image(fill_color=BK, back_color=WH).convert("RGB") + mw, mh = manual_img.size + manual_x = LEFT_PAD + manual_y = H - mh - 60 + img.paste(manual_img, (manual_x, manual_y)) + + # Side label aligned with manual QR. + label_x = manual_x + mw + 28 + label_y = manual_y + (mh - 80) // 2 + draw.text((label_x, label_y), "Need help?", font=F_STEP_B, fill=BK) + draw.text((label_x, label_y + 38), "Scan for setup", font=F_STEP, fill=BK) + draw.text((label_x, label_y + 70), "& troubleshoot", font=F_STEP, fill=BK) + + # ── RIGHT COLUMN ───────────────────────────────────────────────────────── + rcx = RIGHT_X + RIGHT_W // 2 + + # Step 1 — WiFi join QR (dynamic, firmware overlay) + text_center(draw, rcx, AP_QR_Y - 56, "STEP 1 — JOIN WIFI", F_LABEL, BK) draw_qr_frame(draw, AP_QR_X, AP_QR_Y, AP_QR_PX, accent) leave_qr_white(draw, AP_QR_X, AP_QR_Y, AP_QR_PX) - text_center(draw, W // 2, AP_QR_Y + AP_QR_PX + 16, qr_caption, F_FOOT, BK) + text_center(draw, rcx, AP_QR_Y + AP_QR_PX + 16, qr_label, F_FOOT, BK) - # URL QR step — static, baked into the bg. Scanning it opens Safari, - # which forces iOS to render the captive portal. + # Step 2 — URL QR (static "http://192.168.4.1/", baked into bg). Scanning + # this in iOS Safari forces the captive portal to render — works around + # iOS's reluctance to auto-launch CNA from a QR-scan WiFi join. url_qr = qrcode.QRCode( version=None, error_correction=qrcode.constants.ERROR_CORRECT_L, @@ -136,59 +338,93 @@ def gen_ap(accent=YL, header_text="SETUP MODE — STEP 1 OF 2", url_qr.add_data("http://192.168.4.1/") url_qr.make(fit=True) url_img = url_qr.make_image(fill_color=BK, back_color=WH).convert("RGB") - url_w, url_h = url_img.size - url_y = 1180 - url_x = (W - url_w) // 2 + uw, uh = url_img.size + url_x = rcx - uw // 2 + url_y = H - uh - 100 - text_center(draw, W // 2, url_y - 60, "STEP 2 — OPEN PAGE", F_LABEL, BK) - draw.rectangle([url_x - 12, url_y - 12, url_x + url_w + 11, url_y + url_h + 11], + text_center(draw, rcx, url_y - 56, "STEP 2 — OPEN PAGE", F_LABEL, BK) + draw.rectangle([url_x - 12, url_y - 12, url_x + uw + 11, url_y + uh + 11], outline=accent, width=6) - draw.rectangle([url_x - 4, url_y - 4, url_x + url_w + 3, url_y + url_h + 3], + draw.rectangle([url_x - 4, url_y - 4, url_x + uw + 3, url_y + uh + 3], outline=BK, width=4) img.paste(url_img, (url_x, url_y)) - text_center(draw, W // 2, url_y + url_h + 16, "http://192.168.4.1/", F_FOOT, BK) + text_center(draw, rcx, url_y + uh + 12, "http://192.168.4.1/", F_FOOT, BK) return img def gen_ap_retry(): - """Step 1/2 with red accent + retry messaging.""" + """Red-accented retry screen, served after a failed WiFi-join attempt.""" return gen_ap( accent=RD, header_text="CONNECTION FAILED — TRY AGAIN", - qr_caption="Connection failed — try again", + qr_label="Connection failed — try again", ) -# ── SETUP SCREEN (post-WiFi, scan-to-claim) ─────────────────────────────────── +# ═══════════════════════════════════════════════════════════════════════════════ +# SETUP SCREEN — green accent, post-WiFi setup-claim QR +# Single-column centred layout: heading + numbered steps + big setup QR + MAC. +# No two-column split here because the QR is much bigger (16-px cells × 41 +# modules = 656 px) and a side column would crowd it. +# ═══════════════════════════════════════════════════════════════════════════════ def gen_setup(): img = Image.new("RGB", (W, H), WH) draw = ImageDraw.Draw(img) - draw.rectangle([0, 0, W - 1, HEADER_H - 1], fill=GR) - text_center(draw, W // 2, 38, "WIFI CONNECTED — STEP 2 OF 2", F_HEADER, WH) + draw_header(draw, GR, "WIFI CONNECTED — STEP 2 OF 2", "192.168.x.x") - text_center(draw, W // 2, 200, "Almost ready", F_TITLE, BK) - text_center(draw, W // 2, 290, "Scan the QR to link this frame", F_STEP, BK) - text_center(draw, W // 2, 332, "to your pictureframe.edholm.me account.", F_STEP, BK) + # Centered heading + text_center(draw, W // 2, BODY_Y + 30, "Almost ready", F_HEAD, BK) + bb = draw.textbbox((0, 0), "Almost ready", font=F_HEAD) + underline_w = bb[2] + 4 + text_w = bb[2] - bb[0] + underline_x = (W - text_w) // 2 + underline_y = BODY_Y + 30 + bb[3] + 6 + draw.rectangle([underline_x, underline_y, + underline_x + text_w, underline_y + 6], fill=GR) - text_center(draw, W // 2, SETUP_QR_Y - 60, "SCAN TO FINISH", F_LABEL, BK) + text_center(draw, W // 2, BODY_Y + 170, "Scan the QR to link this frame", F_STEP_B, BK) + text_center(draw, W // 2, BODY_Y + 210, "to your pictureframe.edholm.me account.", F_STEP, BK) + + # Setup QR with decorative border + green/black double frame draw_qr_frame(draw, SETUP_QR_X, SETUP_QR_Y, SETUP_QR_PX, GR) leave_qr_white(draw, SETUP_QR_X, SETUP_QR_Y, SETUP_QR_PX) - - # MAC chip below QR — populated at runtime by the firmware would be nicer, - # but the firmware doesn't write text yet on this panel; the link-target - # URL is what the user actually scans, so the chip stays a static "your - # frame ID will appear in the QR" placeholder for now. text_center(draw, W // 2, - SETUP_QR_Y + SETUP_QR_PX + 16, - "Your frame ID is encoded in the QR above.", + SETUP_QR_Y - 56, + "SCAN TO FINISH", + F_LABEL, BK) + + # MAC chip below QR — frame's identifier so the user knows which device + # they're claiming. Static placeholder until firmware writes text here. + mac = "1C:C3:AB:D1:91:F8" + bb = draw.textbbox((0, 0), mac, font=F_CHIP) + chip_w = bb[2] - bb[0] + 32 + chip_x = (W - chip_w) // 2 + chip_y = SETUP_QR_Y + SETUP_QR_PX + 30 + draw.rectangle([chip_x, chip_y, chip_x + chip_w, chip_y + 50], fill=BK) + text_center(draw, W // 2, chip_y + 14, mac, F_CHIP, WH) + + text_center(draw, W // 2, chip_y + 80, + "Your frame's MAC — handy for support", F_FOOT, BK) + # Progress track at the bottom + track_y = H - 90 + track_h = 14 + seg_pad = 20 + segs = [("WiFi", GR), ("Account", BK), ("Frame ready", (200, 200, 195))] + seg_w = (W - LEFT_PAD * 2 - seg_pad * 2) // 3 + text_center(draw, W // 2, track_y - 36, "SETUP PROGRESS", F_TINY, BK) + for i, (label, color) in enumerate(segs): + sx = LEFT_PAD + i * (seg_w + seg_pad) + draw.rectangle([sx, track_y, sx + seg_w, track_y + track_h], fill=color) + text_center(draw, sx + seg_w // 2, track_y + track_h + 10, label, F_FOOT, BK) + return img -# ── Save ────────────────────────────────────────────────────────────────────── +# ── Save ───────────────────────────────────────────────────────────────────── def save_bin(img, path, preview_path): data = pack(img) with open(path, "wb") as f: diff --git a/src/panels/waveshare13e6/v1/epd_driver.cpp b/src/panels/waveshare13e6/v1/epd_driver.cpp index 93ecdeb..d65a657 100644 --- a/src/panels/waveshare13e6/v1/epd_driver.cpp +++ b/src/panels/waveshare13e6/v1/epd_driver.cpp @@ -115,11 +115,13 @@ void epd_setup_pins() { digitalWrite(PIN_CS_S, HIGH); digitalWrite(PIN_RST, HIGH); - // FSPI on S3, manual CS. 10 MHz is well under the panel's documented - // 20 MHz ceiling and gives plenty of margin on the long traces between - // the module and the connector. + // FSPI on S3, manual CS. Matches the 7.3" production speed (4 MHz) — + // tried 10 MHz first and the panel showed a yellow cast across the + // body, suggesting bit corruption on long bursts (likely PSRAM-DMA + // cache coherency or SI margin issues on the long traces inside the + // all-in-one module). SPI.begin(PIN_SCK, -1, PIN_MOSI, -1); - SPI.beginTransaction(SPISettings(10000000, MSBFIRST, SPI_MODE0)); + SPI.beginTransaction(SPISettings(4000000, MSBFIRST, SPI_MODE0)); } void epd_init() { @@ -193,19 +195,44 @@ void epd_sleep() { // ── Draw helpers ─────────────────────────────────────────────────────────────── -// Push one half's framebuffer slice to its CS line. The slice is the -// HALF_BYTES_ROW × H bytes for that half, laid out row-major-contiguous. -static void push_half(int cs_pin, const uint8_t* half_fb) { +// DMA-safe scratch buffer (internal SRAM). SPI.writeBytes on ESP32-S3 uses +// GDMA for bulk transfers; DMA can't reliably read from PSRAM-backed +// buffers because the CPU's cache may hold writes that haven't reached +// PSRAM yet — symptom is a yellow/random cast across the panel. Pushing +// from internal SRAM in chunks sidesteps that entirely. 8 KB is a +// per-half-row sweet spot (~27 rows of 300 bytes), enough that the +// per-transfer overhead is negligible. +static constexpr size_t DMA_CHUNK = 8192; +static uint8_t* g_dma_scratch = nullptr; + +static void ensure_dma_scratch() { + if (!g_dma_scratch) { + g_dma_scratch = (uint8_t*)heap_caps_malloc( + DMA_CHUNK, MALLOC_CAP_INTERNAL | MALLOC_CAP_DMA); + } +} + +// Push one half's framebuffer slice to its CS line via DMA-safe chunks. +// half_fb points into PSRAM (the full framebuffer); we copy CHUNK bytes +// into internal SRAM, then SPI.writeBytes that. Repeat until done. +static void push_half(int cs_pin, const uint8_t* half_fb, size_t bytes) { + ensure_dma_scratch(); + if (!g_dma_scratch) return; + begin_cmd(cs_pin, 0x10); - send_data_n(half_fb, (size_t)HALF_BYTES_ROW * H); + for (size_t off = 0; off < bytes; off += DMA_CHUNK) { + size_t n = (bytes - off < DMA_CHUNK) ? (bytes - off) : DMA_CHUNK; + memcpy(g_dma_scratch, half_fb + off, n); + SPI.writeBytes(g_dma_scratch, n); + } cs(cs_pin, HIGH); } // Take a full-frame row-major framebuffer (BYTES_PER_ROW × H) and push -// left-then-right halves. Needs a scratch buffer to deinterleave halves -// from the row-major layout — the SPI bus needs contiguous bytes per CS. +// left-then-right halves. Deinterleaves into a PSRAM scratch slice so +// each half is row-contiguous, then push_half streams it through the +// DMA-safe internal-SRAM chunk buffer. static void push_full_frame(const uint8_t* fb) { - // Allocate a half-slice scratch buffer in PSRAM. 300 × 1600 = 480 KB. constexpr size_t HALF_BYTES = (size_t)HALF_BYTES_ROW * H; uint8_t* slice = (uint8_t*)heap_caps_malloc(HALF_BYTES, MALLOC_CAP_SPIRAM); if (!slice) return; @@ -215,14 +242,14 @@ static void push_full_frame(const uint8_t* fb) { fb + (size_t)y * BYTES_PER_ROW, HALF_BYTES_ROW); } - push_half(PIN_CS_M, slice); + push_half(PIN_CS_M, slice, HALF_BYTES); for (uint16_t y = 0; y < H; y++) { memcpy(slice + (size_t)y * HALF_BYTES_ROW, fb + (size_t)y * BYTES_PER_ROW + HALF_BYTES_ROW, HALF_BYTES_ROW); } - push_half(PIN_CS_S, slice); + push_half(PIN_CS_S, slice, HALF_BYTES); heap_caps_free(slice); } @@ -330,19 +357,41 @@ static void draw_from_lfs(const char* path, uint8_t fallback_color, QRCode* qr, int qr_x, int qr_y, int qr_cell) { File f = LittleFS.open(path, "r"); if (!f || f.size() != FB_BYTES) { + Serial.printf("[epd13e6] %s: open=%d size=%u -> fill 0x%X\n", + path, (int)(bool)f, f ? (unsigned)f.size() : 0u, + fallback_color); if (f) f.close(); epd_fill(fallback_color); return; } uint8_t* fb = fb_alloc(); - if (!fb) { f.close(); epd_fill(fallback_color); return; } + if (!fb) { + Serial.printf("[epd13e6] fb_alloc FAILED (PSRAM free=%u)\n", + (unsigned)ESP.getFreePsram()); + f.close(); + epd_fill(fallback_color); + return; + } if (f.read(fb, FB_BYTES) != FB_BYTES) { + Serial.println("[epd13e6] read short"); fb_release(fb); f.close(); epd_fill(fallback_color); return; } f.close(); + // Sample first 8 bytes of each quarter of the framebuffer so we can + // verify what we're about to push matches the on-disk .bin. If the + // panel shows wrong colors with these sample bytes looking right, + // corruption is downstream of the CPU. + Serial.printf("[epd13e6] fb sample: head=%02x%02x%02x%02x%02x%02x%02x%02x ", + fb[0], fb[1], fb[2], fb[3], fb[4], fb[5], fb[6], fb[7]); + size_t q = FB_BYTES / 4; + Serial.printf("q1=%02x%02x%02x%02x q2=%02x%02x%02x%02x q3=%02x%02x%02x%02x\n", + fb[q+0], fb[q+1], fb[q+2], fb[q+3], + fb[2*q+0], fb[2*q+1], fb[2*q+2], fb[2*q+3], + fb[3*q+0], fb[3*q+1], fb[3*q+2], fb[3*q+3]); + const int qr_px = qr->size * qr_cell; const int y0 = max(qr_y, 0); const int y1 = min(qr_y + qr_px, (int)H); @@ -370,13 +419,13 @@ static void draw_from_lfs(const char* path, uint8_t fallback_color, // firmware paints the live QR into it. Mismatch = the QR draws over // decorative borders or the QR placeholder shows through. void epd_draw_ap_screen(QRCode* qr) { - draw_from_lfs("/ap_bg.bin", COLOR_YELLOW, qr, 304, 220, 16); + draw_from_lfs("/ap_bg.bin", COLOR_YELLOW, qr, 642, 230, 14); } void epd_draw_ap_screen_retry(QRCode* qr) { - draw_from_lfs("/ap_bg_retry.bin", COLOR_RED, qr, 304, 220, 16); + draw_from_lfs("/ap_bg_retry.bin", COLOR_RED, qr, 642, 230, 14); } void epd_draw_setup_screen(QRCode* qr) { - draw_from_lfs("/setup_bg.bin", COLOR_GREEN, qr, 313, 450, 14); + draw_from_lfs("/setup_bg.bin", COLOR_GREEN, qr, 272, 490, 16); }